Tecniche di riduzione dei dati per i modelli di importazione

Questo articolo è destinato ai modelli di dati di Power BI Desktop che sviluppano modelli di importazione. Descrive diverse tecniche per ridurre i dati caricati nei modelli di importazione.

I modelli di importazione vengono caricati con dati compressi e ottimizzati e quindi archiviati su disco dal motore di archiviazione VertiPaq. Quando i dati di origine vengono caricati in memoria, è possibile visualizzare la 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, se persistente 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. Quattro motivi interessanti includono:

  • Le dimensioni del modello più grandi potrebbero 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. I modelli semantici erano noti in precedenza come set di dati.
  • Le dimensioni del modello più piccole riducono la contesa per le risorse di capacità, in particolare la memoria. Consente il caricamento simultaneo di più modelli per periodi di tempo più lunghi, con conseguente riduzione delle percentuali 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à.
  • I conteggi delle righe di tabella più piccoli possono comportare valutazioni di calcolo più veloci, che possono offrire prestazioni complessive migliori per le query.

In questo articolo sono illustrate otto diverse tecniche di riduzione dei dati. Queste tecniche includono:

Rimuovere le colonne non necessarie

Le colonne della tabella del modello servono due scopi principali:

  • Creazione di report per ottenere progettazioni di report che consentono di filtrare, raggruppare e riepilogare i dati del modello
  • Struttura del modello, supportando le relazioni del modello, i calcoli del modello, i ruoli di sicurezza e persino la formattazione dei colori dei dati

Le colonne che non servono a questi scopi possono essere probabilmente rimosse. La rimozione di colonne viene definita filtro verticale.

È consigliabile progettare modelli con esattamente il numero corretto di colonne in base ai requisiti noti per la creazione di report. I requisiti possono cambiare nel tempo, ma tenere presente che è più facile aggiungere colonne in un secondo momento rispetto a rimuoverle in un secondo momento. La rimozione di colonne può interrompere i report o la struttura del modello.

Rimuovere righe non necessarie

Le tabelle del modello devono essere caricate con il minor numero possibile di righe. Può essere ottenuto caricando set di righe filtrati nelle tabelle del modello per due motivi diversi: per filtrare in base all'entità o in base all'ora. La rimozione di righe viene definita filtro orizzontale.

Il filtro in base all'entità comporta il caricamento di un subset di dati di origine nel modello. Ad esempio, invece di caricare i fatti di vendita per tutte le aree di vendita, 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 nella servizio Power BI e la creazione di report "duplicati" che si connettono a ogni modello semantico). È possibile sfruttare l'uso dei parametri di Power Query e dei file modello di Power BI per semplificare la gestione e la pubblicazione. Per altre informazioni, vedere la voce di blog Deep Dive into Query Parameters and Power BI Templates (Approfondimenti sui parametri di query e i modelli di Power BI)

Il filtro in base al tempo comporta la limitazione della quantità di cronologia dei dati caricata nelle tabelle di tipo fatto (e la 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 negli ultimi cinque anni). Tenere inoltre presente che le modifiche retrospettive ai filtri temporali non interrompono i report; si ottiene solo meno (o più) cronologia dei dati disponibile nei report.

Raggruppa per e riepiloga

Forse la tecnica più efficace per ridurre le dimensioni di un modello consiste nel caricare dati pre-riepilogati. Questa tecnica può essere usata per aumentare la granularità delle tabelle di tipo fatto. C'è un compromesso distinto, tuttavia, causando la perdita di dettagli.

Ad esempio, una tabella dei fatti di vendita di origine archivia una riga per riga di ordine. È possibile ottenere una riduzione significativa dei dati riepilogando tutte le metriche di vendita, il raggruppamento per data, cliente e prodotto. Considerare quindi che una riduzione dei dati ancora più significativa può essere ottenuta raggruppando per data a livello di mese. Potrebbe ottenere una possibile riduzione del 99% delle dimensioni del modello, ma la creazione di report a livello di giorno, o a livello di ordine individuale, non è più possibile. La scelta di riepilogare i dati di tipo fatto comporta sempre compromessi. Il compromesso può essere mitigato da una progettazione di modelli misti e questa opzione è descritta nella tecnica Passa alla modalità mista.

Ottimizzare i tipi di dati delle colonne

Il motore di archiviazione VertiPaq usa strutture di dati separate per ogni colonna. Per impostazione predefinita, queste strutture di dati ottengono le ottimizzazioni più elevate per i dati delle colonne numeriche, che usano la codifica dei valori. Il testo e altri dati non numerici, tuttavia, usano la codifica hash. Richiede al motore di archiviazione di 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 di 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". È possibile rimuovere il prefisso e il valore del numero di ordine convertito in numero intero. Per le tabelle di grandi dimensioni, può comportare una riduzione significativa dei dati, soprattutto quando la colonna contiene valori di cardinalità univoci o elevati.

In questo esempio è consigliabile impostare la proprietà Default Summarizezation della colonna su "Non riepilogare". Consente di ridurre al minimo il riepilogo inappropriato dei valori dei numeri di ordine.

Preferenza per le colonne personalizzate

Il motore di archiviazione VertiPaq archivia le colonne calcolate del modello (definite in DAX) esattamente come le normali colonne di origine di Power Query. Tuttavia, le strutture di dati vengono archiviate leggermente diversamente 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 alle colonne calcolate di Power Query (definite in M).

La preferenza deve creare colonne personalizzate in Power Query. Quando l'origine è un database, è possibile ottenere una maggiore efficienza del carico in due modi. Il calcolo può essere definito nell'istruzione SQL (usando il linguaggio di query nativo del provider) oppure può essere materializzato come colonna nell'origine dati.

In alcuni casi, tuttavia, le colonne calcolate del modello possono essere la scelta migliore. Può essere il caso in cui la formula prevede la valutazione delle misure o richiede funzionalità di modellazione specifiche supportate solo nelle funzioni DAX. Per informazioni su un esempio di questo esempio, vedere l'articolo Informazioni sulle funzioni per le gerarchie padre-figlio in DAX .

Disabilitare il caricamento delle query di Power Query

Le query di Power Query destinate supportano l'integrazione dei dati con altre query non devono essere caricate nel modello. Per evitare di caricare la query nel modello, assicurarsi di disabilitare il carico delle query in queste istanze.

Screenshot of Power Query showing

Disabilitare la data/ora automatica

Power BI Desktop include un'opzione denominata Data/ora automatica. Se abilitata, 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 infatti tabelle calcolate che aumentano le dimensioni del modello. Per indicazioni sull'uso di questa opzione, vedere l'articolo Indicazioni sulla data/ora automatica in Power BI Desktop .

Passare alla modalità mista

In Power BI Desktop, una progettazione in modalità mista produce un modello composito. Essenzialmente, consente di determinare la modalità di archiviazione per ogni tabella. Di conseguenza, ogni tabella può avere la proprietà Mode Archiviazione impostata come Import o DirectQuery (Dual è un'altra opzione).

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. Si consideri che questo approccio di progettazione potrebbe funzionare correttamente insieme alla tecnica Group by e summarize introdotta in precedenza. Ad esempio, i dati di vendita riepilogati possono essere usati per ottenere report "riepilogo" ad alte prestazioni. Una pagina di drill-through potrebbe visualizzare vendite granulari per un contesto di filtro specifico (e ristretto), visualizzando tutti gli ordini di vendita nel contesto. In questo esempio, la pagina drill-through include oggetti visivi basati su una tabella DirectQuery per recuperare i dati degli ordini di vendita.

Esistono tuttavia molte implicazioni relative alla sicurezza e alle prestazioni correlate ai modelli compositi. Per altre informazioni, vedere l'articolo Usare modelli compositi in Power BI Desktop .

Per altre informazioni sulla progettazione di modelli di importazione di Power BI, vedere gli articoli seguenti: