Gestire la modalità di archiviazione in Power BI DesktopManage storage mode in Power BI Desktop

In Microsoft Power BI Desktop è possibile specificare la modalità di archiviazione delle tabelle.In Microsoft Power BI Desktop, you can specify the storage mode of a table. La modalità di archiviazione consente di controllare se Power BI Desktop memorizza i dati delle tabelle nella cache in memoria per i report.The storage mode lets you control whether Power BI Desktop caches table data in-memory for reports.

L'impostazione della modalità di archiviazione offre numerosi vantaggi.Setting the storage mode provides many advantages. È possibile impostare la modalità di archiviazione singolarmente per ogni tabella nel modello.You can set the storage mode for each table individually in your model. Questa azione abilita un singolo set di dati, che offre i vantaggi seguenti:This action enables a single dataset, which provides the following benefits:

  • Prestazioni delle query: quando gli utenti interagiscono con gli oggetti visivi nei report di Power BI, vengono inviate query DAX (Data Analysis Expressions) al set di dati.Query performance: As users interact with visuals in Power BI reports, Data Analysis Expressions (DAX) queries are submitted to the dataset. La memorizzazione dei dati nella cache in memoria tramite l'impostazione corretta della modalità di archiviazione può migliorare le prestazioni delle query e l'interattività dei report.Caching data into memory by properly setting the storage mode can boost the query performance and interactivity of your reports.

  • Set di dati di grandi dimensioni: le tabelle che non vengono memorizzate nella cache non utilizzano memoria per la memorizzazione nella cache.Large datasets: Tables that aren't cached don't consume memory for caching purposes. È possibile abilitare l'analisi interattiva su set di dati estesi, troppo grandi o onerosi per essere memorizzati completamente nella cache in memoria.You can enable interactive analysis over large datasets that are too large or expensive to completely cache into memory. È possibile scegliere le tabelle che vale o meno la pena di memorizzare nella cache.You can choose which tables are worth caching, and which aren't.

  • Ottimizzazione dell'aggiornamento dei dati: non è necessario aggiornare le tabelle che non vengono memorizzate nella cache.Data refresh optimization: You don't need to refresh tables that aren't cached. È possibile ridurre i tempi di aggiornamento memorizzando nella cache solo i dati necessari per soddisfare i contratti di servizio e i requisiti aziendali.You can reduce refresh times by caching only the data that's necessary to meet your service level agreements and your business requirements.

  • Requisiti di accesso quasi in tempo reale: le tabelle con requisiti di accesso quasi in tempo reale potrebbero trarre vantaggio dal non essere memorizzate nella cache, per ridurre la latenza dei dati.Near-real time requirements: Tables with near-real time requirements might benefit from not being cached, to reduce data latency.

  • Writeback: il writeback consente agli utenti aziendali di sperimentare vari scenari di simulazione modificando i valori delle celle.Writeback: Writeback enables business users to explore what-if scenarios by changing cell values. Le applicazioni personalizzate possono applicare le modifiche all'origine dati.Custom applications can apply changes to the data source. Le tabelle che non vengono memorizzate nella cache possono visualizzare le modifiche immediatamente, consentendo l'analisi istantanea degli effetti.Tables that aren't cached can display changes immediately, which allows instant analysis of the effects.

L'impostazione della modalità di archiviazione in Power BI Desktop corrisponde a una di tre funzionalità correlate:The storage mode setting in Power BI Desktop is one of three related features:

  • Modelli compositi: consente a un report di avere due o più connessioni dati, tra cui connessioni DirectQuery o importazione, in qualsiasi combinazione.Composite models: Allows a report to have two or more data connections, including DirectQuery connections or Import, in any combination. Per altre informazioni, vedere Usare modelli compositi in Power BI Desktop.For more information, see Use composite models in Power BI Desktop.

  • Relazioni molti-a-molti: Con i modelli compositi è possibile stabilire relazioni molti-a-molti tra le tabelle.Many-to-many relationships: With composite models, you can establish many-to-many relationships between tables. In una relazione molti-a-molti vengono rimossi i requisiti per i valori univoci nelle tabelle.In a many-to-many relationship, requirements are removed for unique values in tables. Annulla anche le soluzioni alternative precedenti, ad esempio l'introduzione di nuove tabelle solo per stabilire relazioni.It also removes prior workarounds, such as introducing new tables only to establish relationships. Per altre informazioni, vedere Relazioni molti-a-molti in Power BI Desktop.For more information, see Many-to-many relationships in Power BI Desktop.

  • Modalità di archiviazione: con questa modalità è ora possibile specificare gli oggetti visivi che richiedono una query per origini dati back-end.Storage mode: With storage mode, you can now specify which visuals require a query to back-end data sources. Quelli che non la richiedono vengono importati anche se basati su DirectQuery,Visuals that don't require a query are imported even if they're based on DirectQuery. con conseguente miglioramento delle prestazioni e riduzione del carico per il back-end.This feature helps improve performance and reduce back-end load. In precedenza, anche oggetti visivi semplici, come i filtri dei dati, attivavano query che venivano inviate alle origini di back-end.Previously, even simple visuals, such as slicers, initiated queries that were sent to back-end sources.

Usare la proprietà Modalità di archiviazioneUse the Storage mode property

La proprietà Modalità di archiviazione è una proprietà che è possibile impostare per ogni tabella del modello e controlla il modo in cui Power BI memorizza nella cache i dati della tabella.The Storage mode property is a property that you can set on each table in your model and controls how Power BI caches the table data.

Per impostare la proprietà Modalità di archiviazione o visualizzarne l'impostazione corrente:To set the Storage mode property, or view its current setting:

  1. nella visualizzazione Modello selezionare la tabella di cui si vogliono visualizzare o impostare le proprietà.in Model view, select the table whose properties you want to view or set.

  2. Nel riquadro Proprietà espandere la sezione Avanzate e quindi l'elenco a discesa Modalità di archiviazione.In the Properties pane, expand the Advanced section, and expand the Storage mode drop-down.

    Selezionare la proprietà Modalità di archiviazione

Impostare la proprietà Modalità di archiviazione su uno dei tre valori seguenti:You set the Storage mode property to one of these three values:

  • Import: le tabelle importate con questa impostazione vengono memorizzate nella cache.Import: Imported tables with this setting are cached. Le query inviate al set di dati di Power BI che restituiscono dati dalle tabelle importate possono essere soddisfatte solo dai dati memorizzati nella cache.Queries submitted to the Power BI dataset that return data from Import tables can be fulfilled only from cached data.

  • DirectQuery: le tabelle con questa impostazione non vengono memorizzate nella cache.DirectQuery: Tables with this setting aren't cached. Le query inviate al set di dati di Power BI, ad esempio le query DAX, e che restituiscono dati dalle tabelle in modalità DirectQuery possono essere soddisfatte solo eseguendo query su richiesta sull'origine dati.Queries that you submit to the Power BI dataset—for example, DAX queries—and that return data from DirectQuery tables can be fulfilled only by executing on-demand queries to the data source. Le query inviate all'origine dati usano il linguaggio di query specifico per l'origine dati, ad esempio SQL.Queries that you submit to the data source use the query language for that data source, for example, SQL.

  • Doppia: le tabelle con questa impostazione possono essere o meno memorizzate nella cache, a seconda del contesto della query inviata al set di dati di Power BI.Dual: Tables with this setting can act as either cached or not cached, depending on the context of the query that's submitted to the Power BI dataset. In alcuni casi, le query possono essere soddisfatte con i dati memorizzati nella cache.In some cases, you fulfill queries from cached data. In altri casi, per soddisfare le query occorre eseguire una query su richiesta sull'origine dati.In other cases, you fulfill queries by executing an on-demand query to the data source.

L'impostazione su Importa della proprietà Modalità di archiviazione di una tabella è un'operazione irreversibile.Changing the Storage mode of a table to Import is an irreversible operation. Una volta impostata, questa proprietà non può essere modificata in DirectQuery o Doppia.Once set, this property can't later be changed to either DirectQuery or Dual.

Nota

È possibile usare la modalità di archiviazione Doppia in Power BI Desktop e nel servizio Power BI.You can use Dual storage mode in both Power BI Desktop and the Power BI service.

Vincoli delle impostazioni DirectQuery e Doppia per le tabelleConstraints on DirectQuery and Dual tables

Le tabelle Dual hanno gli stessi vincoli funzionali delle tabelle DirectQuery,Dual tables have the same functional constraints as DirectQuery tables. incluse trasformazioni M limitate e funzioni DAX con restrizioni nelle colonne calcolate.These constraints include limited M transformations and restricted DAX functions in calculated columns. Per altre informazioni, vedere Implicazioni dell'uso di DirectQuery.For more information, see Implications of using DirectQuery.

Propagazione dell'impostazione DoppiaPropagation of the Dual setting

Si consideri il modello semplice seguente, in cui tutte le tabelle provengono da un'origine singola che supporta le impostazioni Importa e DirectQuery.Consider the following simple model, where all the tables are from a single source that supports Import and DirectQuery.

Visualizzazione Relazioni di esempio per la modalità di archiviazione

Si supponga, ad esempio, che tutte le tabelle in questo modello siano inizialmente impostate su DirectQuery.Let’s say all tables in this model are initially set to DirectQuery. Se si modifica la proprietà Modalità di archiviazione della tabella SurveyResponse impostandola su Importa, viene visualizzata la finestra di avviso seguente:If you then change the Storage mode of the SurveyResponse table to Import, the following warning window is displayed:

Finestra di avviso per la modalità di archiviazione

È possibile impostare le tabelle delle dimensioni (Customer, Geography e Date) su Doppia per ridurre il numero di relazioni limitate nel set di dati e migliorare le prestazioni.You can set the dimension tables (Customer, Geography, and Date) to Dual to reduce the number of limited relationships in the dataset, and improve performance. Le relazioni limitate implicano in genere almeno una tabella DirectQuery in cui non è possibile effettuare il push della logica di join nei sistemi di origine.Limited relationships normally involve at least one DirectQuery table where join logic can't be pushed to the source systems. Poiché le tabelle in modalità Doppia possono fungere da tabelle in modalità DirectQuery o Importa, questa situazione viene evitata.Because Dual tables can act as either DirectQuery or Import tables, this situation is avoided.

La logica di propagazione è progettata per agevolare l'uso di modelli contenenti molte tabelle.The propagation logic is designed to help with models that contain many tables. Si supponga di avere un modello con 50 tabelle e che solo determinate tabelle dei fatti (transazionali) debbano essere memorizzate nella cache.Suppose you have a model with 50 tables and only certain fact (transactional) tables need to be cached. La logica in Power BI Desktop calcola il set minimo di tabelle delle dimensioni che devono essere impostate su Doppia, quindi non è necessario procedere manualmente.The logic in Power BI Desktop calculates the minimum set of dimension tables that must be set to Dual, so you don’t have to.

La logica di propagazione attraversa solo un lato delle relazioni uno-a-molti.The propagation logic traverses only to the one side of one-to-many relationships.

Esempio di utilizzo della modalità di archiviazioneStorage mode usage example

È possibile continuare con l'esempio nella sezione precedente e immaginare di applicare le impostazioni della proprietà Modalità di archiviazione seguenti:Let's continue with the example from the previous section, and imagine applying the following storage mode property settings:

TabellaTable Modalità di archiviazioneStorage mode
SalesSales DirectQueryDirectQuery
SurveyResponseSurveyResponse ImportaImport
DataDate DoppiaDual
CustomerCustomer DoppiaDual
Area geograficaGeography DoppiaDual

L'impostazione di queste proprietà della modalità di archiviazione determina i comportamenti seguenti, supponendo che la tabella Sales includa un volume di dati significativo:Setting these storage mode properties results in the following behaviors, assuming that the Sales table has significant data volume:

  • Power BI Desktop memorizza nella cache le tabelle delle dimensioni (Date, Customer e Geography) e quindi i tempi di caricamento dei report iniziali sono veloci quando vengono recuperati i valori di filtro dei dati da visualizzare.Power BI Desktop caches dimension tables, Date, Customer, and Geography, so load times of initial reports are fast when they retrieve slicer values to display.

  • Power BI Desktop non memorizza nella cache la tabella Sales.Power BI Desktop doesn't cache the Sales table. Se non si memorizza nella cache questa tabella, Power BI Desktop presenta i risultati seguenti:By not caching this table, Power BI Desktop provides the following results:

    • I tempi di aggiornamento dei dati risultano migliorati e si riduce il consumo di memoria.Data-refresh times are improved, and memory consumption is reduced.
    • Le query dei report basate sulla tabella Sales vengono eseguite in modalità DirectQuery.Report queries that are based on the Sales table run in DirectQuery mode. Queste query potrebbero richiedere più tempo, ma offrono risultati più vicini all'esecuzione in tempo reale perché non viene introdotta alcuna latenza di memorizzazione nella cache.These queries might take longer but are closer to real time because no caching latency is introduced.
  • Le query dei report basate sulla tabella SurveyResponse vengono restituite dalla cache in memoria e pertanto sono relativamente veloci.Report queries that are based on the SurveyResponse table are returned from the in-memory cache, and are therefore relatively fast.

Query con o senza riscontri nella cacheQueries that hit or miss the cache

Se si connette SQL Profiler alla porta di diagnostica per Power BI Desktop, è possibile visualizzare le query con o senza riscontri nella cache in memoria eseguendo una traccia basata sugli eventi seguenti:If you connect SQL Profiler to the diagnostics port for Power BI Desktop, you can see which queries hit or miss the in-memory cache by performing a trace that's based on the following events:

  • Queries Events\Query BeginQueries Events\Query Begin
  • Query Processing\Vertipaq SE Query BeginQuery Processing\Vertipaq SE Query Begin
  • Query Processing\DirectQuery BeginQuery Processing\DirectQuery Begin

Per ogni evento Query Begin, controllare altri eventi con lo stesso ActivityID.For each Query Begin event, check other events with the same ActivityID. Se, ad esempio, non è presente alcun evento DirectQuery Begin, ma esiste un evento Vertipaq SE Query Begin, la risposta alla query è stata restituita dalla cache.For example, if there isn't a DirectQuery Begin event, but there's a Vertipaq SE Query Begin event, the query is answered from the cache.

Le query che fanno riferimento a tabelle in modalità Doppia restituiscono dati dalla cache, se possibile. In caso contrario, viene usata la modalità DirectQuery.Queries that refer to Dual tables return data from the cache, if possible; otherwise, they revert to DirectQuery.

Proseguendo con l'esempio precedente, la query seguente fa riferimento solo a una colonna dalla tabella Date, in modalità Doppia.Continuing the previous example, the following query refers only to a column from the Date table, which is in Dual mode. La query dovrebbe pertanto trovare un riscontro nella cache:Therefore, the query should hit the cache:

Lo screenshot mostra il testo della query che fa riferimento alla tabella Date.

La query seguente fa riferimento solo a una colonna dalla tabella Sales, in modalità DirectQuery.The following query refers only to a column from the Sales table, which is in DirectQuery mode. Non dovrebbe pertanto trovare riscontri nella cache:Therefore, it should not hit the cache:

Lo screenshot mostra il testo della query che fa riferimento alla tabella Sales.

La query seguente è interessante perché combina entrambe le colonne.The following query is interesting because it combines both columns. Questa query non ottiene un riscontro positivo dalla cache.This query doesn't hit the cache. Si potrebbe inizialmente prevedere di recuperare i valori CalendarYear dalla cache e i valori SalesAmount dall'origine e quindi combinare i risultati, ma questo approccio sarebbe meno efficiente rispetto all'invio dell'operazione SUM/GROUP BY al sistema di origine.You might initially expect it to retrieve CalendarYear values from the cache and SalesAmount values from the source and then combine the results, but this approach is less efficient than submitting the SUM/GROUP BY operation to the source system. Se viene eseguito il push dell'operazione all'origine, il numero di righe restituite sarà probabilmente molto inferiore:If the operation is pushed down to the source, the number of rows returned will likely be far less:

Lo screenshot mostra il testo della query che fa riferimento sia alla tabella Date che alla tabella Sales.

Nota

Questo comportamento è diverso dalle relazioni molti-a-molti in Power BI Desktop quando le tabelle memorizzate nella cache e quelle non memorizzate nella cache sono combinate.This behavior is different from many-to-many relationships in Power BI Desktop when cached and non-cached tables are combined.

Le cache devono essere mantenute sincronizzateCaches should be kept in sync

Le query visualizzate nella sezione precedente mostrano che le tabelle in modalità Doppia talvolta trovano riscontri nella cache e altre volte non li trovano.The queries displayed in the previous section show that Dual tables sometimes hit the cache and sometimes don't. Per questo motivo, se la cache non è aggiornata possono essere restituiti valori diversi.As a result, if the cache is out of date, different values can be returned. L'esecuzione della query non proverà a mascherare i problemi dei dati, ad esempio filtrando i risultati di DirectQuery in modo che corrispondano ai valori memorizzati nella cache.Query execution won't attempt to mask data issues by, for example, filtering DirectQuery results to match cached values. È responsabilità dell'utente conoscere i flussi di dati e progettare il sistema di conseguenza.It's your responsibility to know your data flows, and you should design accordingly. Esistono tecniche consolidate per gestire questi casi nell'origine, se necessario.There are established techniques to handle such cases at the source, if necessary.

La modalità di archiviazione Doppia è un'ottimizzazione delle prestazioni.The Dual storage mode is a performance optimization. Deve essere usata solo in modi che non compromettono la possibilità di soddisfare i requisiti aziendali.It should be used only in ways that don't compromise the ability to meet business requirements. Per un comportamento alternativo, prendere in considerazione le tecniche descritte in Relazioni molti-a-molti in Power BI Desktop.For alternative behavior, consider using the techniques described in the Many-to-many relationships in Power BI Desktop.

Visualizzazione datiData view

Se per almeno una tabella nel set di dati la modalità di archiviazione è impostata su Importa o Doppia, la scheda della visualizzazione Dati è visibile.If at least one table in the dataset has its storage mode set to either Import or Dual, the Data view tab is displayable.

Visualizzazione dati in Power BI Desktop

Quando si selezionano tabelle in modalità Doppia e Importa nella visualizzazione Dati, vengono mostrati i dati memorizzati nella cache.When you select Dual and Import tables in Data view, they show cached data. Le tabelle in modalità DirectQuery non mostrano dati e viene restituito un messaggio per segnalare che non è possibile visualizzare tabelle di questo tipo.DirectQuery tables don't show data, and a message is displayed that states that DirectQuery tables can't be shown.

Limitazioni e considerazioniLimitations and considerations

Esistono alcune limitazioni per questa versione della modalità di archiviazione e la relativa correlazione con i modelli compositi.There are a few limitations for this release of storage mode and its correlation with composite models.

Le seguenti origini con connessione dinamica (multidimensionali) non possono essere usate con i modelli compositi:The following live connection (multi-dimensional) sources can't be used with composite models:

  • SAP HANASAP HANA
  • SAP Business WarehouseSAP Business Warehouse
  • SQL Server Analysis ServicesSQL Server Analysis Services
  • Set di dati Power BIPower BI datasets
  • Azure Analysis ServicesAzure Analysis Services

Quando ci si connette a queste origini multidimensionali tramite DirectQuery, non è possibile connettersi a un'altra origine DirectQuery o combinarla con dati importati.When you connect to those multi-dimensional sources by using DirectQuery, you can't connect to another DirectQuery source or combine it with imported data.

Le limitazioni esistenti per l'uso di DirectQuery sono valide anche quando si usano i modelli compositi.The existing limitations of using DirectQuery still apply when you use composite models. Molte di queste limitazioni si riferiscono attualmente a ogni singola tabella, a seconda della modalità di archiviazione della tabella.Many of those limitations are now per table, depending upon the storage mode of the table. Ad esempio, una colonna calcolata per una tabella importata può fare riferimento ad altre tabelle, ma una colonna calcolata per una tabella di DirectQuery è ancora limitata e può fare riferimento solo alle colonne nella stessa tabella.For example, a calculated column on an imported table can refer to other tables, but a calculated column on a DirectQuery table is still restricted to refer only to columns on the same table. Altre limitazioni si applicano al modello nel suo complesso, se una qualsiasi delle tabelle all'interno del modello è in modalità DirectQuery.Other limitations apply to the model as a whole, if any of the tables within the model are DirectQuery. Ad esempio, le funzionalità Informazioni rapide e Domande e risposte non sono disponibili per un modello se per una delle tabelle all'interno di esso è impostata la modalità di archiviazione DirectQuery.For example, the QuickInsights and Q&A features aren't available on a model if any of the tables within it has a storage mode of DirectQuery.

Passaggi successiviNext steps

Per altre informazioni sui modelli compositi e DirectQuery, vedere gli articoli seguenti:For more information about composite models and DirectQuery, see the following articles: