Tecniche di riduzione dei dati per i modelli di importazione
Questo articolo è destinato a esperti di modellazione di dati in Power BI Desktop che sviluppano modelli di importazione. Illustra le varie tecniche che consentono di ridurre i dati caricati nei modelli di importazione.
I modelli di importazione vengono caricati con dati compressi e ottimizzati e quindi archiviati su disco tramite il motore di archiviazione VertiPaq. Quando i dati di origine vengono caricati in memoria, è possibile ottenere una compressione di 10 volte ed è quindi ragionevole aspettarsi che 10 GB di dati di origine possano essere compressi a circa 1 GB di dimensioni. Inoltre, in caso di persistenza su disco, è possibile ottenere una riduzione del 20% aggiuntiva.
Nonostante l’efficienza ottenuta dal motore di archiviazione VertiPaq, è importante cercare di ridurre al minimo i dati da caricare nei modelli. È particolarmente vero per i modelli di grandi dimensioni o i modelli che si prevede cresceranno per diventare grandi nel corso del tempo. Di seguito sono elencati i quattro motivi principali:
- Le dimensioni più grandi dei modelli possono non essere supportate dalla capacità. La capacità condivisa può ospitare modelli di dimensioni fino a 1 GB, mentre le capacità Premium possono ospitare modelli di dimensioni maggiori a seconda dello SKU. Per altre informazioni, vedere l’articolo Supporto di Power BI Premium per modelli semantici di grandi dimensioni.
- Le dimensioni più piccole dei modelli riducono la contesa per le risorse di capacità, in particolare della memoria. In questo modo è possibile caricare simultaneamente più modelli per periodi di tempo più lunghi, con conseguente riduzione del tasso di rimozione.
- I modelli più piccoli ottengono un aggiornamento dei dati più rapido, con conseguente riduzione della latenza di report, velocità effettiva di aggiornamento del modello semantico più elevata e minore pressione sulle risorse del sistema di origine e della capacità.
- Un numero minore di righe di tabella può risultare in una maggiore velocità di valutazione dei calcoli, con conseguente miglioramento delle prestazioni generali delle query.
Importante
A volte questo articolo si riferisce a Power BI Premium o alle relative sottoscrizioni di capacità (SKU P). Tenere presente che Microsoft sta attualmente consolidando le opzioni di acquisto e ritirando gli SKU di Power BI Premium per capacità. I clienti nuovi ed esistenti devono invece prendere in considerazione l'acquisto di sottoscrizioni con capacità Fabric (SKU F).
Per altre informazioni, vedere Aggiornamento importante disponibile per le licenze Power BI Premium e Domande frequenti su Power BI Premium.
In questo articolo sono illustrate otto tecniche diverse per la riduzione dei dati. Queste tecniche includono:
- Rimuovere le colonne non necessarie
- Rimuovere le righe inutili
- Raggruppare e riepilogare
- Ottimizzare i tipi di dati delle colonne
- Preferire le colonne personalizzate
- Disabilitare il caricamento di query di Power Query
- Disabilitare la data/ora automatica
- Passare alla modalità mista
Rimuovere le colonne non necessarie
Le colonne delle tabelle del modello hanno due scopi principali:
- La creazione di report, per ottenere strutture di report appropriate per filtrare, raggruppare e riepilogare i dati del modello
- La struttura del modello, ovvero supportare le relazioni tra modelli, i calcoli del modello, i ruoli di sicurezza e anche la formattazione a colori dei dati
Le colonne che non servono a questi scopi possono probabilmente essere rimosse. La rimozione di colonne è definita filtraggio verticale.
È consigliabile progettare modelli con il numero esatto di colonne in base ai requisiti di reporting noti. I requisiti possono cambiare nel tempo, ma tenere presente che è più facile aggiungere colonne in un secondo momento piuttosto che rimuoverle. La rimozione di colonne può causare interruzioni nei report o nella struttura del modello.
Rimuovere le righe inutili
Le tabelle del modello devono essere caricate con il minor numero di righe possibile. Questa operazione può essere eseguita caricando set di righe filtrati nelle tabelle del modello per due motivi diversi, ovvero per filtrare i dati in base all'entità o in base al tempo. La rimozione di righe è definita filtraggio orizzontale.
Il filtraggio in base all'entità consiste nel caricamento di un subset dei dati di origine nel modello. Ad esempio, anziché caricare i fatti di vendita per tutte le aree di vendita, è possibile caricare solo i fatti per una singola area. Questo approccio di progettazione comporterà molti modelli più piccoli e può anche eliminare la necessità di definire la Sicurezza a livello di riga ma richiederà la concessione di autorizzazioni specifiche del modello semantico nel servizio Power BI e la creazione di report “duplicati” che si connettono a ogni modello semantico. Per semplificare la gestione e la pubblicazione è possibile sfruttare l'uso di parametri di Power Query e di file di modello di Power BI. Per altre informazioni, vedere la voce del blog Approfondimento sui parametri di query e i modelli di Power BI
Il filtraggio in base al tempo consiste nella limitazione della cronologia dei dati caricata nelle tabelle di tipo fatto e nella limitazione delle righe di data caricate nelle tabelle delle date del modello. È consigliabile non caricare automaticamente tutta la cronologia disponibile a meno che non si tratti di un requisito noto per la creazione di report. È utile comprendere che i filtri di Power Query basati sul tempo possono essere parametrizzati e anche impostati per usare periodi di tempo relativi, rispetto alla data di aggiornamento, ad esempio gli ultimi cinque anni. Tenere inoltre presente che le modifiche retrospettive ai filtri temporali non causeranno interruzioni ai report. Si otterrà solo meno, o più, cronologia dei dati disponibile nei report.
Raggruppare e riepilogare
La tecnica più efficace per ridurre la dimensione di un modello è quella di caricare dati già riepilogati. Questa tecnica può essere usata per aumentare la granularità delle tabelle di tipo fatto. C’è un compromesso distintivo, tuttavia, che causa la perdita di dettagli.
In una tabella dei fatti di vendita di origine, ad esempio, viene archiviata una riga per ogni riga di ordine. Per ottenere una riduzione significativa dei dati è possibile riepilogare tutte le metriche relative alle vendite, raggruppando per data, cliente e prodotto. Considerare quindi che una riduzione dei dati ancora più significativa può essere ottenuta raggruppando i dati per data a livello di mese. In questo modo si può ottenere una riduzione della dimensione del modello pari al 99%, ma la generazione di report a livello di giorno o di singolo ordine non è più possibile. La decisione di riepilogare i dati di tipo fatto presuppone sempre un compromesso, che può essere attenuato da un struttura del modello di tipo misto. Questa opzione viene descritta nell'argomento Passare alla modalità mista.
Ottimizzare i tipi di dati delle colonne
Il motore di archiviazione VertiPaq usa strutture di dati separate per ogni colonna. Queste strutture raggiungono il massimo livello di ottimizzazione per i dati delle colonne numeriche, che usano la codifica basata su valori. Il testo e altri dati non numerici, tuttavia, usano la codifica basata su hash. Di conseguenza, il motore di archiviazione deve assegnare un identificatore numerico a ogni valore di testo univoco contenuto nella colonna. Si tratta dell’identificatore numerico, che viene quindi archiviato nella struttura dei dati, che richiede una ricerca hash durante l’archiviazione e l’esecuzione di query.
In alcune istanze specifiche è possibile convertire i dati del testo di origine in valori numerici. Ad esempio, un numero di ordine di vendita può essere preceduto in modo coerente da un valore di testo, ad esempio “SO123456”. Il prefisso può essere rimosso e il valore del numero di ordine viene convertito in un numero intero. Per le tabelle di grandi dimensioni, questo può determinare una riduzione significativa dei dati, soprattutto quando la colonna contiene valori univoci o a cardinalità elevata.
In questo esempio, è consigliabile impostare la proprietà della colonna Esecuzione del riepilogo predefinita su "Non riepilogare". Consente di ridurre al minimo il riepilogo inappropriato dei valori dei numeri di ordine.
Preferire le colonne personalizzate
Il motore di archiviazione VertiPaq archivia le colonne calcolate del modello (definite in DAX) esattamente come le normali colonne che hanno origine da Power Query. Le strutture di dati, tuttavia, vengono archiviate in modo leggermente diverso e in genere ottengono una compressione meno efficiente. Vengono compilate anche dopo il caricamento di tutte le tabelle di Power Query, che possono comportare tempi di aggiornamento dei dati estesi. È quindi meno efficiente aggiungere colonne di tabella come colonne calcolate rispetto a colonne calcolate di Power Query, definite in M.
La soluzione migliore dovrebbe essere quella di creare colonne personalizzate in Power Query. Quando l'origine è un database, è possibile ottenere maggiore efficienza nel caricamento in due modi. Il calcolo può essere definito nell'istruzione SQL (tramite il linguaggio di query nativo del provider) oppure può essere materializzato come colonna.
In molti casi, tuttavia, le colonne calcolate del modello potrebbero rappresentare la scelta ideale. Questo può avvenire quando la formula implica la valutazione di misure oppure richiede specifiche funzionalità di modellazione supportate solo nelle funzioni DAX. Per informazioni su un evento di questo tipo, vedere l'articolo Informazioni sulle funzioni per le gerarchie padre-figlio in DAX.
Disabilitare il caricamento di query di Power Query
Le query di Power Query da intendersi come supporto di integrazione dei dati con altre query non devono essere caricate nel modello. Per evitare il caricamento della query nel modello, assicurarsi di disabilitare il caricamento di query in queste istanze.
Disabilitare la data/ora automatica
Power BI Desktop include un'opzione denominata Data/ora automatica. Se abilitata, l’opzione crea una tabella di data/ora automatica nascosta per le colonne di data per supportare gli autori di report durante la configurazione di filtri, raggruppamenti e azioni di drill-down per periodi di tempo del calendario. Le tabelle nascoste sono in realtà tabelle calcolate che aumenteranno le dimensioni del modello. Per istruzioni sull'uso di questa opzione, vedere l'articolo relativo alle linee guida per la data/ora automatica in Power BI Desktop.
Passare alla modalità mista
In Power BI Desktop, una progettazione in modalità mista ha l'effetto di produrre un modello composito. Consente essenzialmente di determinare la modalità di archiviazione per ogni tabella. Ogni tabella può quindi avere una specifica proprietà Modalità di archiviazione impostata come Importa o DirectQuery (un'altra opzione possibile è Doppia).
Una tecnica efficace per ridurre le dimensioni del modello consiste nell'impostare la proprietà Modalità di archiviazione per le tabelle di tipo fatto più grandi su DirectQuery. Tenere presente che questo approccio di progettazione potrebbe funzionare bene insieme alla tecnica Raggruppare e riepilogare introdotta in precedenza. Ad esempio, i dati di vendita riepilogati potrebbero essere usati per ottenere report di riepilogo con prestazioni elevate. Una pagina di drill-through potrebbe visualizzare le vendite granulari per un contesto di filtro specifico (e limitato), visualizzando tutti gli ordini di vendita nel contesto. In questo esempio, la pagina drill-through includerebbe oggetti visivi basati su una tabella DirectQuery per recuperare i dati degli ordini di vendita.
Esistono tuttavia molte implicazioni in materia di sicurezza e prestazioni correlate ai modelli compositi. Per altre informazioni, vedere l'articolo Usare modelli compositi in Power BI Desktop.
Contenuto correlato
Per altre informazioni sulla struttura di un modello di importazione di Power BI, vedere gli articoli seguenti: