Cosè il sé in Python: esempi del mondo reale
Cos'è il sé in Python: esempi del mondo reale
Questa esercitazione illustrerà la materializzazione per le cache di dati in DAX Studio. Questo post mostrerà come influisce sul tuo calcolo durante la generazione di risultati con la tua query. Imparerai quale materializzazione è migliore per massimizzare le prestazioni di DAX.
Esistono due idee di materializzazione: materializzazione precoce e materializzazione tardiva .
Sommario
Prima materializzazione
La materializzazione anticipata si verifica quando il numero di righe materializzate è maggiore del numero di righe necessarie per l'output.
Se il tuo output è una tabella per anno solare e hai cinque anni di dati, non è necessario portare molte righe materializzate. La best practice consiste nell'avere un numero di righe materializzate uguale al numero di righe necessarie. Tuttavia, non è sempre così perché dipende dalla complessità del tuo DAX e dalla configurazione dei dati.
Ricorda sempre che i dati sono costituiti da colonne. Quindi, quando il motore delle formule deve lavorare su una tabella, le colonne vengono riunite in un formato tabella, che è la materializzazione. In un'idea di materializzazione iniziale, il motore di archiviazione invia la cache dei dati al motore delle formule. Il motore delle formule lavora quindi su quella cache ed esegue processi complessi.
La materializzazione anticipata può essere causata dalla presenza di join complessi o da una relazione molti-a-molti nei modelli di dati. Può anche essere causato dalla presenza di filtri o iteratori complessi.
Non è sbagliato avere misure complesse; devi solo configurarli correttamente per sfruttare il più possibile il motore di archiviazione.
Materializzazione tardiva
La materializzazione tardiva è quando il numero di righe materializzate è uguale o vicino al numero di righe necessarie per l'output.
Il motore di archiviazione fa quasi tutto il lavoro senza lasciare nulla al motore di formula. Questo rende l'intero calcolo più veloce.
Questi sono esempi di query di materializzazione precoce e tardiva:
Prima di eseguire queste query, assicurati di svuotare la cache. Questo farà sì che le tue query vengano eseguite sulla cache a freddo. Se esegui DAX senza svuotare la cache, otterrai questo risultato:
Il tempo di esecuzione totale è di soli 1861 millisecondi perché utilizzava già una cache. Quindi svuota sempre la cache prima di eseguire le query.
Se esegui la query Early Materialization, puoi vedere che il tempo totale impiegato è di 9485 millisecondi. Ha generato una cache di dati e un output di una riga, ma ha restituito 25 milioni di righe.
Non è necessario materializzare 25 milioni di righe per ottenere un risultato di una riga perché richiede tempo e rallenta le prestazioni di DAX.
Se esegui la query Late Materialization, puoi vedere che l'intero calcolo ha richiesto solo 1340 millisecondi. Ha anche generato 2 cache di dati, ognuna delle quali ha restituito 5003 righe.
Se guardi il Physical Query Plan, puoi vedere 5000 righe. Non hanno lo stesso numero di righe. Il risultato dei tempi del server a volte avrà una piccola discrepanza rispetto al numero esatto di righe nel piano di query.
Quindi, lavorando su una cache di dati con 25 milioni di righe, ora hai due cache di dati con 5003 righe. Ecco perché lavorare con la materializzazione successiva ottiene risultati più rapidi rispetto alla materializzazione iniziale.
All'interno di ogni query di materializzazione
Osservando semplicemente la query, puoi già vedere che la materializzazione successiva è più veloce. La query Early Materialization conta le righe di una tabella di riepilogo.
La tabella che viene riepilogata e materializzata è più grande di un semplice di sulla tabella, che è ciò che sta facendo la query Late Materialization.
Se la tua query è lenta, inizia osservando quante righe vengono estratte nella tua query e quante sono necessarie per l'output. Puoi anche andare al Logical Query Plan e seguire il flusso di lavoro che sta avvenendo all'interno del calcolo.
Che cos'è DAX Studio in LuckyTemplates Desktop
Esercitazione su DAX: contesto e
misura del motore di calcolo in LuckyTemplates: suggerimenti e tecniche per l'ottimizzazione
Conclusione
La materializzazione si verifica quando le query estraggono colonne o righe dal modello di dati. Questo processo avviene naturalmente quando il tuo motore ottiene i dati dal tuo modello di dati per fornire risultati per la tua query.
Tuttavia, possono verificarsi problemi se DAX estrae un numero di righe eccessivo rispetto a quello necessario per il risultato. Questo problema può essere risolto semplificando il DAX per eseguire processi specifici.
Cos'è il sé in Python: esempi del mondo reale
Imparerai come salvare e caricare oggetti da un file .rds in R. Questo blog tratterà anche come importare oggetti da R a LuckyTemplates.
In questa esercitazione sul linguaggio di codifica DAX, scopri come usare la funzione GENERATE e come modificare dinamicamente il titolo di una misura.
Questo tutorial illustrerà come utilizzare la tecnica di visualizzazione dinamica multi-thread per creare approfondimenti dalle visualizzazioni di dati dinamici nei report.
In questo articolo, esaminerò il contesto del filtro. Il contesto del filtro è uno degli argomenti principali che qualsiasi utente di LuckyTemplates dovrebbe inizialmente conoscere.
Voglio mostrare come il servizio online di LuckyTemplates Apps può aiutare nella gestione di diversi report e approfondimenti generati da varie fonti.
Scopri come elaborare le modifiche al margine di profitto utilizzando tecniche come la ramificazione delle misure e la combinazione di formule DAX in LuckyTemplates.
Questo tutorial discuterà delle idee di materializzazione delle cache di dati e di come influiscono sulle prestazioni dei DAX nel fornire risultati.
Se finora utilizzi ancora Excel, questo è il momento migliore per iniziare a utilizzare LuckyTemplates per le tue esigenze di reportistica aziendale.
Che cos'è il gateway LuckyTemplates? Tutto quello che devi sapere