Implementare le aggregazioni
Quando un modello semantico serve report su tabelle dei fatti enormi (tabelle con centinaia di milioni o miliardi di righe), anche DAX ottimizzato e cardinalità ridotta potrebbero non essere sufficienti. Le aggregazioni consentono di riepilogare in anticipo i dati in modo che le query comuni restituiscono risultati da una cache in memoria ridotta e veloce anziché analizzare l'intera tabella dei dettagli.
Comprendere quando le aggregazioni sono utili
Le aggregazioni sono più utili quando esistono tre condizioni:
- Grandi tabelle dei fatti Tabelle con centinaia di milioni di righe che non possono essere caricate in modo efficiente in memoria completa.
- Modelli di query comuni. Gli utenti eseguono spesso query a livello di riepilogo (per mese, per area, per categoria di prodotti) anziché a livello di singola transazione.
- DirectQuery o modelli compositi. I dati di dettaglio si trovano in un'origine esterna e le query di andata e ritorno sono lente.
Le aggregazioni funzionano archiviando i dati di riepilogo precalcolati in una tabella in modalità importazione che il motore di query verifica per primo. Se è possibile rispondere alla query dall'aggregazione, il risultato viene restituito immediatamente dalla memoria. In caso contrario, la query viene reindirizzata alla tabella di dettaglio.
Si pensi ad aggregazioni come una sintesi esecutiva all'inizio di un lungo report. La maggior parte dei lettori ottiene ciò di cui hanno bisogno dal riepilogo. Solo coloro che hanno bisogno di dettagli completi leggono l'intero documento.
Usare le aggregazioni definite dall'utente
Le aggregazioni definite dall'utente offrono il controllo completo sugli elementi riepilogati e archiviati. Per implementarle:
- Creare una tabella di aggregazione. In Power Query creare una tabella che riepiloga la tabella dei fatti in base alla granularità desiderata. Ad esempio, riepilogare le vendite giornaliere in base alla categoria di prodotti e all'area anziché alle singole transazioni.
- Configurare la mappatura delle aggregazioni. Nella visualizzazione modello di Power BI Desktop selezionare la tabella di aggregazione e aprire Gestisci aggregazioni. Eseguire il mapping di ogni colonna alla colonna della tabella di dettaglio corrispondente e specificare la funzione di aggregazione (Sum, Count, Min, Max, GroupBy).
- Nascondere la tabella di aggregazione. Le tabelle di aggregazione devono essere nascoste agli autori di report. Il motore di query li usa automaticamente: gli utenti non devono sapere che esistono.
- Impostare le modalità di archiviazione. La tabella di aggregazione usa la modalità di importazione per l'accesso rapido in memoria. La tabella dei dettagli usa in genere DirectQuery, quindi non è necessario caricare miliardi di righe in memoria.
Quando un oggetto visivo esegue query sui dati corrispondenti alla granularità e alla funzione dell'aggregazione, il motore restituisce il risultato dalla tabella di importazione. Quando la query richiede una granularità più fine, passa alla tabella dei dettagli DirectQuery in modo trasparente.
Note
Le aggregazioni definite dall'utente richiedono un modello composito (tabelle con modalità di archiviazione mista). La tabella di aggregazione è Import e la tabella dei dettagli è DirectQuery. Entrambe le tabelle necessitano di relazioni corrispondenti alle stesse tabelle delle dimensioni.
Usare le aggregazioni automatiche
Le aggregazioni automatiche semplificano questo processo usando Machine Learning per determinare cosa riepilogare. Anziché creare e mappare manualmente le tabelle di aggregazione, Power BI analizza il log delle query e crea, aggiorna e rimuove automaticamente le aggregazioni in base ai modelli di utilizzo effettivi.
Per abilitare le aggregazioni automatiche:
- Aprire le Impostazioni del modello semantico nel servizio Power BI.
- Abilitare la formazione delle aggregazioni automatiche.
- Pianificare uno o più aggiornamenti.
Con il primo ciclo di training e aggiornamento, Power BI valuta il log delle query (che archivia sette giorni di dati di query) e crea tabelle di aggregazione in memoria. Il sistema si adatta continuamente: man mano che i modelli di query cambiano, le aggregazioni si adattano per classificare in ordine di priorità i riepiloghi richiesti più frequentemente.
Le aggregazioni automatiche hanno diversi requisiti:
- Una capacità Premium, Premium per utente o Fabric
- Modalità di archiviazione DirectQuery per le tabelle che richiedono l'aggregazione
- Origini dati supportate (database SQL di Azure, Synapse, Databricks, Snowflake e altri)
È possibile usare aggregazioni sia definite dall'utente che automatiche nello stesso modello. Le aggregazioni definite dall'utente gestiscono modelli statici noti, mentre le aggregazioni automatiche si adattano alla modifica del comportamento delle query.
Monitorare l'efficacia delle aggregazioni
Dopo aver implementato le aggregazioni, verificare che vengano usate:
- Controllare la cronologia degli aggiornamenti. Nelle impostazioni del modello, la cronologia degli aggiornamenti mostra la quantità di memoria usata dalla cache di aggregazione e il numero di query usate.
- Usare Log Analytics di Azure. Se la capacità è connessa a Log Analytics di Azure, è possibile analizzare la percentuale di query gestite dalle aggregazioni rispetto alle query che raggiungono direttamente l'origine dati. In questo modo è possibile visualizzare in dettaglio i tassi di riscontri delle aggregazioni a livello di query DAX e SQL.
Se le query sono prive di aggregazione (ricadendo su DirectQuery), esaminare i pattern di query. L'aggregazione potrebbe non coprire la granularità o la funzione richiesta dagli utenti.
Aggregazioni e Direct Lake
In Microsoft Fabric, i modelli semantici che usano la modalità Direct Lake Storage leggono direttamente dalle tabelle Delta in OneLake senza importare dati in memoria o inviare query DirectQuery. Direct Lake è già veloce per molti scenari perché evita il sovraccarico dell'importazione dei dati e dei round trip di query esterne.
Le aggregazioni possono integrare Direct Lake quando:
- La tabella Delta sottostante è molto grande e le query comuni richiedono solo risultati a livello di riepilogo.
- È necessario ridurre la quantità di dati caricati in segmenti di colonna per i modelli sottoposti a query frequenti.
Per la maggior parte dei modelli Direct Lake, iniziare testando le prestazioni senza aggregazioni. Aggiungerli solo quando la misurazione mostra una necessità chiara.