Gestire la modalità di archiviazione in Power BI Desktop

In Microsoft Power BI Desktop è possibile specificare la modalità di archiviazione di una tabella. La modalità di archiviazione consente di controllare se Power BI Desktop memorizza nella cache i dati della tabella in memoria per i report. La memorizzazione nella cache significa archiviare temporaneamente i dati in memoria.

L'impostazione della modalità di archiviazione offre molti vantaggi. È possibile impostare la modalità di archiviazione per ogni tabella singolarmente nel modello. Questa azione abilita un singolo modello semantico, che offre i vantaggi seguenti:

  • Prestazioni delle query: quando gli utenti interagiscono con gli oggetti visivi nei report di Power BI, le query DAX (Data Analysis Expressions) vengono inviate al modello semantico. La memorizzazione nella cache dei dati in memoria impostando correttamente la modalità di archiviazione può aumentare le prestazioni e l'interattività delle query dei report.

  • Modelli semantici di grandi dimensioni: le tabelle non memorizzate nella cache non utilizzano memoria a scopo di memorizzazione nella cache. È possibile abilitare l'analisi interattiva su modelli semantici di grandi dimensioni troppo grandi o costosi da memorizzare completamente nella cache in memoria. È possibile scegliere quali tabelle vale la pena memorizzare nella cache e quali no.

  • Ottimizzazione dell'aggiornamento dati: non è necessario aggiornare le tabelle non memorizzate nella cache. È possibile ridurre i tempi di aggiornamento memorizzando nella cache solo i dati necessari per soddisfare i contratti di servizio e i requisiti aziendali.

  • Requisiti quasi in tempo reale: le tabelle con requisiti quasi in tempo reale potrebbero trarre vantaggio dalla mancata memorizzazione nella cache, per ridurre la latenza dei dati.

  • Writeback: il writeback consente agli utenti aziendali di esplorare gli scenari di simulazione modificando i valori delle celle. Le applicazioni personalizzate possono applicare modifiche all'origine dati. Le tabelle che non sono memorizzate nella cache possono visualizzare immediatamente le modifiche, consentendo l'analisi immediata degli effetti.

L'impostazione della modalità di archiviazione in Power BI Desktop è una delle tre funzionalità correlate:

  • Modelli compositi: consente a un report di avere due o più connessioni dati, incluse le connessioni DirectQuery o Importa, in qualsiasi combinazione. Per altre informazioni, vedere Usare modelli compositi in Power BI Desktop.

  • Relazioni molti-a-molti: con i modelli compositi è possibile stabilire relazioni molti-a-molti tra tabelle. In una relazione molti-a-molti, i requisiti vengono rimossi per i valori univoci nelle tabelle. Rimuove anche le soluzioni alternative precedenti, ad esempio l'introduzione di nuove tabelle solo per stabilire relazioni. Per altre informazioni, vedere Relazioni molti-a-molti in Power BI Desktop.

  • Archiviazione modalità: con la modalità di archiviazione è ora possibile specificare gli oggetti visivi che richiedono una query per le origini dati back-end. Gli oggetti visivi che non richiedono una query vengono importati anche se sono basati su DirectQuery. Questa funzionalità consente di migliorare le prestazioni e ridurre il carico back-end. In precedenza, anche oggetti visivi semplici, ad esempio filtri dei dati, avviavano query inviate alle origini back-end.

Usare la proprietà modalità Archiviazione

La proprietà modalità Archiviazione è una proprietà che è possibile impostare su ogni tabella del modello e controlla il modo in cui Power BI memorizza nella cache i dati della tabella.

Per impostare la proprietà Archiviazione mode o visualizzarne l'impostazione corrente:

  1. In Visualizzazione modello selezionare la tabella le cui proprietà si desidera visualizzare o impostare.

  2. Nel riquadro Proprietà espandere la sezione Avanzate ed espandere l'elenco a discesa Archiviazione modalità.

    Screenshot of Relationship view highlight the option drop-down to change the storage mode.

Impostare la proprietà Archiviazione mode su uno dei tre valori seguenti:

  • Importazione: le tabelle importate con questa impostazione vengono memorizzate nella cache. Le query inviate al modello semantico di Power BI che restituiscono dati dalle tabelle di importazione possono essere soddisfatte solo dai dati memorizzati nella cache.

  • DirectQuery: le tabelle con questa impostazione non vengono memorizzate nella cache. Le query inviate al modello semantico di Power BI, ad esempio le query DAX, e che restituiscono dati dalle tabelle DirectQuery possono essere soddisfatte solo eseguendo query su richiesta all'origine dati. Le query inviate all'origine dati usano il linguaggio di query per tale origine dati, ad esempio SQL.

  • Doppia: le tabelle con questa impostazione possono fungere da cache o non memorizzate nella cache, a seconda del contesto della query inviata al modello semantico di Power BI. In alcuni casi, si eseguono query dai dati memorizzati nella cache. In altri casi, è possibile soddisfare le query eseguendo una query su richiesta nell'origine dati.

La modifica della modalità Archiviazione di una tabella in Importa è un'operazione irreversibile. Dopo aver impostato questa proprietà, non può essere modificata in un secondo momento in DirectQuery o Dual.

Nota

È possibile usare la modalità di archiviazione doppia sia in Power BI Desktop che nella servizio Power BI.

Vincoli per le tabelle DirectQuery e Dual

Le tabelle doppie hanno gli stessi vincoli funzionali delle tabelle DirectQuery. Questi vincoli includono trasformazioni M limitate e funzioni DAX limitate nelle colonne calcolate. Per altre informazioni, vedere Limitazioni di DirectQuery.

Propagazione dell'impostazione Doppia

Si consideri il modello seguente, in cui tutte le tabelle provengono da una singola origine che supporta Import e DirectQuery.

Screenshot of the example Relationship view for storage mode.

Si supponga che tutte le tabelle di questo modello siano inizialmente impostate su DirectQuery. Se si modifica quindi la modalità Archiviazione della tabella SurveyResponse in Importa, viene visualizzata la finestra di avviso seguente:

Screenshot showing a warning window that describes the results of changing the storage mode to Import.

È possibile impostare le tabelle delle dimensioni (Customer, Geography e Date) su Dual per ridurre il numero di relazioni limitate nel modello semantico e migliorare le prestazioni. Le relazioni limitate in genere comportano almeno una tabella DirectQuery in cui non è possibile eseguire il push della logica di join nei sistemi di origine. Poiché le tabelle duali possono fungere da tabelle DirectQuery o Import, questa situazione viene evitata.

La logica di propagazione è progettata per semplificare i modelli che contengono molte tabelle. Si supponga di avere un modello con 50 tabelle e che sia necessario memorizzare nella cache solo determinate tabelle dei fatti (transazionali). La logica in Power BI Desktop calcola il set minimo di tabelle delle dimensioni che devono essere impostate su Dual, quindi non è necessario.

La logica di propagazione attraversa solo il lato delle relazioni uno-a-molti.

Esempio di utilizzo della modalità Archiviazione

Si supponga di applicare le impostazioni delle proprietà della modalità di archiviazione seguenti:

Tabella Modalità di archiviazione
Vendite DirectQuery
SurveyResponse Import
Data Doppio
Customer Doppio
Geografia Doppio

L'impostazione di queste proprietà della modalità di archiviazione comporta i comportamenti seguenti, presupponendo che la tabella Sales abbia un volume di dati significativo:

  • Power BI Desktop memorizza nella cache tabelle delle dimensioni, Date, Customer e Geography, quindi i tempi di caricamento dei report iniziali sono veloci quando recuperano i valori del filtro dei dati da visualizzare.

  • Power BI Desktop non memorizza nella cache la tabella Sales . Power BI Desktop offre i risultati seguenti non memorizzando nella cache questa tabella:

    • I tempi di aggiornamento dei dati sono migliorati e l'utilizzo della memoria viene ridotto.
    • Le query di report basate sulla tabella Sales vengono eseguite in modalità DirectQuery. Queste query potrebbero richiedere più tempo, ma sono più vicine al tempo reale, perché non viene introdotta alcuna latenza di memorizzazione nella cache.
  • Le query di report basate sulla tabella SurveyResponse vengono restituite dalla cache in memoria e pertanto sono relativamente veloci.

Query che hanno raggiunto o perso la cache

Se si connette SQL Profiler alla porta di diagnostica per Power BI Desktop, è possibile vedere quali query raggiungono o perdono la cache in memoria eseguendo una traccia basata sugli eventi seguenti:

  • Query Events\Query Begin
  • Elaborazione query\Vertipaq edizione Standard Inizio query
  • Elaborazione query\DirectQuery Begin

Per ogni evento Query Begin , controllare gli altri eventi con lo stesso ActivityID. Ad esempio, se non è presente un evento DirectQuery Begin, ma esiste un evento Vertipaq edizione Standard Query Begin, la query viene risposta dalla cache.

Le query che fanno riferimento a tabelle duali restituiscono dati dalla cache, se possibile; in caso contrario, tornano a DirectQuery.

La query seguente continua dalla tabella precedente. Fa riferimento solo a una colonna della tabella Date , che è in modalità doppia . Di conseguenza, la query deve raggiungere la cache:

Screenshot showing the text of query that refers to the Date table.

La query seguente fa riferimento solo a una colonna della tabella Sales , in modalità DirectQuery . Di conseguenza, non dovrebbe raggiungere la cache:

Screenshot showing the text of query that refers the Sales table.

La query seguente è interessante perché combina entrambe le colonne. Questa query non raggiunge la cache. Inizialmente potrebbe essere previsto di recuperare i valori CalendarYear dalla cache e dai valori SalesAmount dall'origine e quindi combinare i risultati, ma questo approccio è meno efficiente rispetto all'invio dell'operazione SUM/GROUP BY al sistema di origine. Se l'operazione viene spostata verso il basso nell'origine, il numero di righe restituite sarà probabilmente molto inferiore:

Screenshot showing the text of query that refers to both the Date table and the Sales table.

Nota

Questo comportamento è diverso dalle relazioni molti-a-molti in Power BI Desktop quando vengono combinate tabelle memorizzate nella cache e non memorizzate nella cache.

Le cache devono essere mantenute sincronizzate

Le query visualizzate nella sezione precedente mostrano che le tabelle duali talvolta raggiungono la cache e talvolta non lo fanno. Di conseguenza, se la cache non è aggiornata, è possibile restituire valori diversi. L'esecuzione delle query non tenterà di mascherare i problemi di dati, ad esempio filtrando i risultati di DirectQuery in modo che corrispondano ai valori memorizzati nella cache. È responsabilità dell'utente conoscere i flussi di dati e progettare di conseguenza. Esistono tecniche stabilite per gestire tali casi all'origine, se necessario.

La modalità di archiviazione doppia è un'ottimizzazione delle prestazioni. Deve essere usato solo in modi che non comprometteno la capacità di soddisfare i requisiti aziendali. Per un comportamento alternativo, è consigliabile usare le tecniche descritte nelle relazioni molti-a-molti in Power BI Desktop.

Visualizzazione dati

Se almeno una tabella nel modello semantico ha la modalità di archiviazione impostata su Import o Dual, la scheda Visualizzazione dati è visualizzabile.

Screenshot highlighting the Data view icon.

Quando si selezionaNo tabelle Dual e Import nella visualizzazione Dati , vengono visualizzati i dati memorizzati nella cache. Le tabelle DirectQuery non mostrano i dati e viene visualizzato un messaggio che indica che le tabelle DirectQuery non possono essere visualizzate.

Considerazioni e limitazioni

Esistono alcune limitazioni per la versione corrente della modalità di archiviazione e la relativa correlazione con i modelli compositi.

Le origini di connessione dinamica (multidimensionale) seguenti non possono essere usate con modelli compositi:

  • SAP HANA
  • SAP Business Warehouse

Quando ci si connette a tali origini multidimensionali usando DirectQuery, non è possibile connettersi a un'altra origine DirectQuery o combinarla con i dati importati.

Le limitazioni esistenti dell'uso di DirectQuery si applicano ancora quando si usano modelli compositi. Molte di queste limitazioni sono ora per tabella, a seconda della modalità di archiviazione della tabella. Ad esempio, una colonna calcolata in una tabella importata può fare riferimento ad altre tabelle, ma una colonna calcolata in una tabella DirectQuery è ancora limitata per fare riferimento solo alle colonne della stessa tabella. Altre limitazioni si applicano al modello nel suo complesso, se una delle tabelle all'interno del modello è DirectQuery.

Per altre informazioni sui modelli compositi e DirectQuery, vedere gli articoli seguenti: