Power Automate si applica a ogni azione nei flussi di lavoro
Scopri l
In questo tutorial imparerai cos'è una cache di dati e perché è importante. Una cache di dati memorizza bit di dati che potrebbero diventare preziosi per un utilizzo futuro.
Se hai bisogno delle stesse informazioni in una misura o azione futura, la cache dei dati fornirà le informazioni di cui hai bisogno. Elimina il fatto che il sistema recuperi nuovamente gli stessi set di dati.
In questo tutorial, esaminerai otto cose importanti da ricordare quando hai a che fare con le cache di dati in LuckyTemplates:
Sommario
Definizione e scopo di una cache di dati
Una cache di dati è una tabella temporanea creata in memoria dal motore di archiviazione . Questa tabella temporanea viene inviata al motore delle formule che quindi itera su queste informazioni ed esegue diverse operazioni in seguito alla query.
Tutta la comunicazione tra il motore delle formule e il motore di archiviazione avviene sempre sotto forma di cache di dati. Il motore delle formule prepara i piani di query e quindi invia le istruzioni al motore di archiviazione. Il motore di archiviazione lo invia quindi al motore di formula che restituisce il risultato all'utente.
Poiché il motore delle formule non ha accesso diretto ai dati archiviati in DirectQuery e VertiPaq, si affida al motore di archiviazione per le cache dei dati.
La cache dei dati inviata dal motore di archiviazione è in un formato non compresso. Ciò significa che la dimensione dei dati memorizzati nello strumento Vertipaq può essere ridotta.
Ma quando è il momento di restituire la cache dei dati al motore delle formule, non può essere compressa perché il motore delle formule non funziona con i set di dati compressi.
Qual è l'impatto di una cache di dati sulla RAM
Se il motore di archiviazione sta inviando enormi blocchi di cache di dati, questo richiederà molto spazio sulla RAM del software. Inoltre, il motore delle formule impiegherà molto tempo per eseguire le iterazioni e produrre un risultato.
Pertanto, quando si scrive il codice DAX, è necessario comprendere che deve essere scritto in modo da ridurre al minimo le righe nella cache dei dati.
Lo scenario migliore consiste nel far corrispondere il numero di righe mostrato nell'oggetto visivo con il numero di righe restituite nella cache dei dati.
La maggior parte delle volte è difficile restituire la stessa quantità di righe. In tal caso, sarà necessario rivedere il codice DAX e suddividerlo in modo da ottimizzare la cache dei dati prodotta dal motore di archiviazione.
Come una cache di dati ottimizza le query
Funzioni non ottimizzate
Alcune delle funzioni nel linguaggio DAX non sono ottimizzate per il motore di archiviazione. Per capire meglio questo, diamo un'occhiata a un esempio.
Ad esempio, nel tuo codice, invece di utilizzare SUMMARIZE, puoi utilizzare la funzione Le funzioni SUMMARIZE e GROUPBY eseguono la stessa operazione. Tuttavia, ci sono notevoli differenze a seconda dello scenario.
La funzione GROUPBY non è ottimizzata per Storage Engine. Se utilizzi la funzione GROUPBY su una tabella dei fatti con 12 milioni di righe, produrrà una cache di dati con lo stesso numero di righe. Questo può essere grande da 600 MB fino a 1 GB.
Questa dimensione può esercitare molta pressione sulla RAM. Quindi, invece di usare GROUPBY, usa . La funzione SUMMARIZE genera una dimensione della cache dei dati inferiore. Puoi abbinarlo a GROUPBY come funzione di primo livello.
Reiterazioni ridotte
Quando si scrivono le misure o le query DAX, è necessario assicurarsi che il codice prodotto dietro le quinte sia adatto al motore di archiviazione.
È necessario scrivere il codice DAX in modo da produrre una cache di dati che possa essere usata anche nelle query successive. Il vantaggio di questa operazione è che invece di eseguire una scansione separata utilizzando VertiPaq , il motore di archiviazione verificherà se è già stata ricevuta una query simile.
Se questo è vero, significa che la sua cache di dati è disponibile in memoria. Quindi, invece di eseguire nuovamente la scansione della query, VertiPaq la restituirà semplicemente dalla memoria cache al motore delle formule.
Se vedi un operatore CALLBACKDATAID nella query del motore di archiviazione, significa che tali query non possono essere memorizzate nella cache. Se nel caso in cui una query simile viene inviata al motore di archiviazione, eseguirà una reiterazione.
Pertanto, VertiPaq dovrà chiamare il motore delle formule per risolvere la query. Ciò aumenta il tempo di esecuzione complessivo perché in questo caso la memoria cache non può essere utilizzata.
Conclusione
La cache dei dati è la tua migliore amica nel linguaggio DAX. Ricordarsi di scrivere il codice DAX in modo da massimizzare lo spazio di archiviazione e ridurre il numero di iterazioni dello strumento VertiPaq. È possibile riutilizzare la cache dei dati già prodotta dallo Storage Engine per ridurre il tempo di esecuzione delle query.
Scopri l
Tecniche di modellazione dei dati per organizzare meglio le misure DAX per un flusso di lavoro più efficiente.
Scopri come utilizzare la funzione di filtro in Power Apps e come incorporarla nelle formule esistenti all
Come commentare più righe in Python: una guida semplice e veloce
Acquisisci familiarità con i connettori Power Automate per la manipolazione di numeri, testo e date/ore.
Ora, è molto facile studiare il budget rispetto all
Imparerai come salvare e caricare oggetti da un file .rds in R. Questo articolo tratta anche come importare oggetti da R a LuckyTemplates.
Scopri tutto su Power Query e il linguaggio M per la trasformazione e la preparazione dei dati nel desktop di LuckyTemplates.
Cos'è il sé in Python: esempi del mondo reale
In questa esercitazione sul linguaggio di codifica DAX, scopri come usare la funzione GENERATE e come modificare dinamicamente il titolo di una misura.