Creare e modificare tabelle elastiche
Una tabella elastica è una tabella gestita da Microsoft Dataverse. Le tabelle elastiche vengono fornite con la stessa esperienza utente e API familiari offerte con le tabelle standard. Condividono molti aspetti e opzioni con le tabelle standard, ma sono dotate di caratteristiche e funzionalità uniche con tecnologia Azure Cosmos DB.
Come per le tabelle standard, le tabelle elastiche sono incluse nell'utilizzo della capacità del database Dataverse.
Guarda questo video per informazioni sulle tabelle elastiche.
Quando considerare le tabelle elastiche Dataverse?
Le tabelle elastiche sono progettate per gestire grandi volumi di dati in tempo reale. Con le tabelle elastiche puoi importare, archiviare e analizzare grandi volumi di dati senza problemi di scalabilità, latenza o prestazioni.
Le tabelle elastiche hanno funzionalità uniche per lo schema flessibile, il ridimensionamento orizzontale e la rimozione automatica dei dati dopo un periodo di tempo.
Le tabelle elastiche si ridimensionano automaticamente per acquisire decine di milioni di righe ogni ora. I processi in background possono raccogliere i segnali IoT, prevedere i requisiti di manutenzione e programmare in modo proattivo i tecnici.
Considera uno scenario in cui Contoso è un rivenditore con milioni di clienti esistenti. Contoso ha un ampio database di clienti e sta cercando di aumentare le vendite mantenendo i clienti. Sulla base della cronologia dei clienti precedenti, stanno cercando di organizzare eventi di vendita flash di 24 ore con diversi coupon mirati ai propri clienti e prodotti. Hanno stimato che il numero di coupon richiesti sarà di oltre 100 milioni per ogni campagna di vendita flash. Piani di marketing per eseguire più campagne di 24 ore rivolte a diversi segmenti di clienti.
Il requisito per l'applicazione di marketing di Contoso è che deve essere in grado di inserire fino a 100 milioni o più dettagli di coupon in poche ore, leggere milioni di coupon all'ora e inviare coupon ai clienti.
Le tabelle elastiche verranno ridimensionate automaticamente per questo scenario di throughput elevato.
Ad esempio, nello scenario precedente, una tabella elastica denominata Coupon con milioni di record può essere associata a tabelle Dataverse standard ad esempio Contatto (informazioni cliente) e Offerta (una tabella standard personalizzata). Poiché le tabelle elastiche sono isolate dalle tabelle standard, le prestazioni dell'applicazione di marketing complessiva non subiranno effetti negativi. Inoltre, la funzionalità time-to-live con tabella elastica (Coupon in questo scenario) consente la rimozione automatica dei dati dopo periodi prefissati e garantisce l'ottimizzazione della capacità di archiviazione.
Utilizzare le tabelle elastiche quando:
- I tuoi dati potrebbero essere non strutturati o semi-strutturati o se il tuo modello di dati potrebbe cambiare costantemente.
- È necessario il ridimensionamento orizzontale automatico.
- Devi gestire un volume elevato di richieste di lettura e scrittura.
Utilizzare le tabelle standard quando:
- La tua applicazione richiede una forte coerenza.
- La tua applicazione richiede la modellazione relazionale e necessita di funzionalità transazionali tra tabelle e durante le fasi di esecuzione del plug-in.
- La tua applicazione richiede collegamenti complessi.
La scelta della tabella dovrebbe essere basata sulle esigenze specifiche della vostra applicazione. Una combinazione di entrambi i tipi di tabelle può essere appropriata.
Ridimensionamento orizzontale e prestazioni
Man mano che i dati aziendali crescono, le tabelle elastiche forniscono una scalabilità automatica illimitata in base al carico di lavoro dell'applicazione, sia per le dimensioni della risorsa di archiviazione che per la velocità effettiva, ad esempio il numero di record creati, aggiornati o eliminati in un determinato intervallo di tempo.
Se lo scenario aziendale richiede un volume molto elevato di scritture di dati, gli autori delle applicazioni possono usare API di richieste multiple Dataverse, ad esempio CreateMultiple
, UpdateMultiple
e DeleteMultiple
per raggiungere maggiore velocità effettiva all'interno dei limiti di limitazione delle richieste di Dataverse. Ulteriori informazioni: Guida per gli sviluppatori: Messaggi operativi in blocco e Ottimizza le prestazioni per le operazioni in blocco
Rimozione automatica dei dati
I criteri di Durata (TTL) garantiscono di lavorare sempre con le informazioni più aggiornate e accurate, ottimizzando le risorse e riducendo i rischi. Il valore TTL live viene impostato in secondi su un record e viene interpretato come un delta dall'ora dell'ultima modifica di un record.
Schema flessibile con colonne JSON
Le tabelle elastiche consentono di archiviare ed eseguire query sui dati con strutture variabili, senza la necessità di schemi o migrazioni predefiniti. Non è necessario scrivere codice personalizzato per mappare i dati importati in uno schema fisso. Ulteriori informazioni: Guida per gli sviluppatori: colonne di query JSON in tabelle elastiche Le tabelle elastiche consentono di archiviare ed eseguire query sui dati con strutture diverse, senza la necessità di schemi o migrazioni predefiniti. Non è necessario scrivere codice personalizzato per mappare i dati importati in uno schema fisso. Ulteriori informazioni: Guida per gli sviluppatori: colonne di query su JSON con tabelle elastiche
Considerazioni sull'utilizzo delle tabelle elastiche
Sebbene le tabelle elastiche siano ottime per gestire grandi volumi di richieste su larga scala, i vantaggi derivano da alcuni compromessi, che dovrebbero essere tenuti a mente:
- Le tabelle elastiche non supportano transazioni con più record. Ciò significa che più operazioni di scrittura che si verificano come parte di una singola esecuzione di richiesta non sono transazionali tra loro. Ad esempio, se hai un passaggio di plug-in sincrono registrato sul passaggio
PostOperation
perCreate message
su una tabella elastica, qualsiasi errore nel tuo plug-in non ripristinerà il record in Dataverse. Le convalide nei preplug-in continueranno a funzionare come previsto poiché vengono eseguite prima della fase principale. - Le tabelle elastiche supportano la coerenza assoluta solo all'interno di una sessione logica. Al di fuori del contesto della sessione, potresti non vedere immediatamente le modifiche a una riga. Ulteriori informazioni: Guida per gli sviluppatori: livello di coerenza
- Le tabelle elastiche non supportano i filtri sulle tabelle correlate durante la creazione di viste, ricerche avanzate o qualsiasi query in generale tramite l'API. Se hai spesso bisogno di filtrare le colonne della tabella correlata, ti consigliamo di denormalizzare le colonne dalle tabelle correlate, che devono essere filtrate nella tabella principale stessa. Considera un rivenditore con due tabelle elastiche: cliente e indirizzo. Un cliente ha molti indirizzi. Desideri restituire i risultati della query per tutti i clienti dalla tabella dei clienti il cui valore di città nella tabella degli indirizzi è New York. In questo esempio, quando si esegue una query sulla tabella dei clienti, desideri applicare un filtro sulla colonna della città della tabella degli indirizzi correlata. Questa tabella non è supportata per le tabelle elastiche. Un modo per farlo funzionare è denormalizzare la colonna della città nella tabella Clienti in modo che tutti i valori della città dei clienti siano presenti nella tabella dei clienti stessa.
Le tabelle elastiche sono dotate di supporto
- Operazioni di creazione, recupero, aggiornamento, eliminazione (CRUD), incluse operazioni multiple per l'API (per una velocità effettiva elevata), eliminazione in blocco e richieste dai plug-in.
- Relazioni:
- Uno-a-molti
- Molti-a-uno quando la tabella N è una tabella standard
- Proprietà dei record, rilevamento delle modifiche, controllo, Mobile Offline e ricerca Dataverse.
- Colonna file con attributo tipo file
Supporto per le funzionalità di sicurezza
Le tabelle elastiche aderiscono al modello di sicurezza Dataverse.
Quando crei una tabella elastica, puoi impostare:
- Di proprietà dell'utente o dell'organizzazione
- Sicurezza a livello di campo
Funzionalità attualmente non supportate con le tabelle elastiche
Funzionalità delle tabelle non attualmente supportate per le tabelle elastiche:
- Regole di business
- Grafici
- Flussi del processo aziendale
- Un connettore Dataverse per Power BI
- Relazioni molti a molti (N:N) su tabelle standard
- Chiave alternativa
- Rilevamento duplicati
- Colonne calcolate e di rollup
- Colonne Valuta
- Confronto di colonne nelle query
- Condivisione tabella
- Indici compositi
- Operazioni a cascata: Elimina, Ricollegamento, Assegna, Condividi, Rimozione condivisione
- Ordinamento di colonne di ricerca
- Query aggregate:
- Valore distinto per
attribute1
mentre orderby su valoreattribute2
- Impaginazione quando si hanno più Distinct
- Distinct con ordine multiplo per
- Ordina per e raggruppa insieme
- Raggruppa per entità collegamento (left outer join)
- Distinct su tabelle di proprietà dell'utente
- Valore distinto per
- Connessioni tabelle
- Team di accesso
- Code
- Attachment
Tipi di dati di colonna attualmente non disponibili con le tabelle elastiche:
- Valuta
- Formula
- Formato numerico intero diverso da Nessuno (Durata, Codice lingua e Fuso orario)
- Ricerca basata sull'opzione Cliente
Creare una tabella elastica
Crei una tabella elastica proprio come qualsiasi altra nuova tabella in Dataverse.
- Accedi a Power Apps e seleziona Tabelle nel riquadro di spostamento a sinistra. Se l'elemento non si trova nel riquadro del pannello laterale, seleziona …Altro, quindi l'elemento desiderato.
- Seleziona Nuova tabella > Imposta proprietà avanzate nella barra dei comandi.
- Nel riquadro delle proprietà a destra, immetti un Nome visualizzato e un Nome plurale.
- Espandi Opzioni avanzate, quindi seleziona Elastico come Tipo di tabella.
- Seleziona le proprietà che vuoi e quindi Salva.
La colonna Tempo per il passaggio allo stato live viene creata automaticamente per una tabella elastica. È possibile aggiungere il valore del periodo di tempo in secondi, come richiesto. I dati vengono rimossi automaticamente dopo il periodo di tempo specificato.
Altre informazioni sulle tabelle: Opzioni avanzate
Problemi noti
- Se Tempo per il passaggio allo stato live (TTL) viene utilizzata su una riga, la riga verrà eliminata dalla tabella elastica quando la durata TTL è scaduta. Se è sincronizzato con un data lake utilizzando Synapse Link per Azure Synapse Link for Dataverse prima della scadenza della durata TTL, non verrà eliminato dal data lake.
- Il ripristino temporizzato non ripristina i record "aggiornati" poiché non viene eseguito il backup degli aggiornamenti. Vengono ripristinati solo i record creati ed eliminati.
- Se una colonna specifica in una tabella elastica viene eliminata, il valore della colonna non viene rimosso dalle righe della tabella se contiene dati. Prima di eliminare una colonna specifica, elimina i dati da tutte le righe della colonna.
Tabelle elastiche a volume elevato e gestione dei limiti di limitazione delle API Dataverse
Utilizza Messaggi per le operazioni in blocco. Ciò ti consente di ottenere una velocità effettiva 10 volte superiore con gli stessi limiti di velocità effettiva Dataverse dell'API. Gli sviluppatori possono fare riferimento a più collegamenti forniti nella sezione seguente.
Per sviluppatori
Le tabelle elastiche hanno comportamenti e capacità diversi rispetto alle tabelle standard quando gli sviluppatori le utilizzano con API Dataverse. I seguenti articoli per sviluppatori descrivono queste differenze:
- Tabelle elastiche
- Creare tabelle elastiche usando codice
- Uso delle tabelle elastiche usando codice
- Colonne di query JSON in tabelle elastiche
- Messaggi per le operazioni in blocco (anteprima)
- Codice di esempio della tabella elastica
- Invia richieste parallele
- Limiti API di protezione del servizio