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 i dati delle tabelle nella cache 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:
Le prestazioni delle query: Quando gli utenti interagiscono con gli elementi visivi nei report di Power BI, le query DAX (Data Analysis Expressions) vengono inviate al modello semantico. Impostando correttamente la modalità di archiviazione, la memorizzazione nella cache dei dati in memoria può accrescere le prestazioni delle query e l'interattività 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.
l'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.
Prescrizioni quasi in tempo reale: le tabelle con prescrizioni quasi in tempo reale potrebbero trarre vantaggio dall'evitare la 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 Import, 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 le tabelle. In una relazione molti-a-molti, non sono richiesti 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.
modalità di archiviazione: Con la modalità di archiviazione, è ora possibile specificare quali elementi visivi 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, come i filtri dei dati, generavano query inviate alle origini back-end.
Usare la proprietà Modalità di archiviazione
La proprietà modalità di archiviazione è una proprietà che è possibile impostare su ogni tabella del modello e controlla come Power BI memorizza nella cache i dati della tabella.
Per impostare la proprietà modalità di archiviazione, o visualizzarne l'impostazione corrente:
In visualizzazione Modello selezionare la tabella le cui proprietà si desidera visualizzare o impostare.
Nel riquadro Proprietà, espandere la sezione Avanzate ed espandere l'elenco a discesa Modalità di archiviazione.
Impostare la proprietà modalità di archiviazione su uno dei tre valori seguenti:
Importa: 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 interrogazioni che invii all'origine dati utilizzano il linguaggio di query specifico per tale origine dati, ad esempio SQL.
doppia: Le tabelle con questa impostazione possono agire come memorizzate nella cache o meno, 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 nella fonte di dati.
Cambiare la modalità di archiviazione di una tabella in Import è un'operazione irreversibile. Dopo aver impostato questa proprietà, non può essere modificata in un secondo momento né in DirectQuery né in Dual.
Nota
È possibile usare modalità di archiviazione dual sia in Power BI Desktop che nel 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.
Si supponga che tutte le tabelle in questo modello siano inizialmente impostate su DirectQuery. Se si modifica quindi la modalità di archiviazione
È possibile impostare le tabelle delle dimensioni (Customer, Geographye 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 necessarie che devono essere impostate su Dual, quindi non devi farlo.
La logica di propagazione attraversa solo un solo lato di relazioni uno-a-molti.
Esempio di utilizzo della modalità di archiviazione
Immagina di applicare le seguenti impostazioni delle proprietà della modalità di archiviazione:
Tavolo | Modalità di archiviazione |
---|---|
Vendite | DirectQuery |
Risposta al sondaggio | Importazione |
Data | Duale |
Cliente | Duale |
Geografia | Duale |
L'impostazione di queste proprietà della modalità di archiviazione comporta i comportamenti seguenti, presupponendo che la tabella Sales
Power BI Desktop memorizza nella cache le tabelle delle dimensioni, Date, Customere Geography, quindi i tempi di caricamento dei report iniziali sono veloci quando recuperano i valori dei filtri 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 SE Inizio Query
- Esecuzione della query\DirectQuery Inizio
Per ogni evento Query Begin, controllare gli altri eventi con lo stesso ActivityID. Ad esempio, se non è presente un evento
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 Data, che è in modalità Dual. Di conseguenza, la query deve raggiungere la cache:
La query seguente fa riferimento a una sola colonna della tabella Sales, in modalità DirectQuery. Di conseguenza, non dovrebbe raggiungere la cache:
La query seguente è interessante perché combina entrambe le colonne. Questa query non raggiunge la cache. Inizialmente ci si potrebbe aspettare di recuperare i valori di CalendarYear dalla cache e i valori di SalesAmount dall'origine e quindi combinare i risultati, ma questo approccio è meno efficiente di inviare l'operazione di aggregazione SUM/GROUP BY al sistema di origine. Se l'operazione viene trasferita alla sorgente, il numero di righe restituite sarà probabilmente inferiore.
Nota
Questo comportamento è diverso dalle relazioni molti a molti in Power BI Desktop quando si combinano tabelle memorizzate 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 rappresenta 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 nella relazioni molti-a-molti in Power BI Desktop.
Vista tabella
Se almeno una tabella nel modello semantico ha la modalità di archiviazione impostata su Importa o Doppia, la scheda tabella di visualizzazione è visualizzabile.
Quando si selezionano le tabelle duali e importate nella vista Tabella , 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.
Contenuto correlato
Per altre informazioni sui modelli compositi e DirectQuery, vedere gli articoli seguenti: