Aggiornamento incrementale per i set di impostazioniIncremental refresh for datasets

L'aggiornamento incrementale estende le operazioni di aggiornamento pianificate fornendo la creazione e la gestione automatizzate delle partizioni per le tabelle dei DataSet che caricano spesso dati nuovi e aggiornati.Incremental refresh extends scheduled refresh operations by providing automated partition creation and management for dataset tables that frequently load new and updated data. Per la maggior parte dei set di dati, si tratta di una o più tabelle che contengono dati di transazione che cambiano spesso e possono aumentare in modo esponenziale, ad esempio una tabella dei fatti in uno schema di database relazionale o a stella.For most datasets, this is one or more tables that contain transaction data that changes often and can grow exponentially, like a fact table in a relational or star database schema. Il partizionamento della tabella e l'aggiornamento delle partizioni più recenti riducono significativamente la quantità di dati da aggiornare.By partitioning the table and refreshing only the most recent partition(s) significantly reduces the amount of data that has to be refreshed.

Con aggiornamento incrementale:With incremental refresh:

  • Gli aggiornamenti sono più veloci . è necessario aggiornare solo i dati più recenti che sono stati modificati.Refreshes are faster - Only the most recent data that has changed needs to be refreshed.
  • Gli aggiornamenti sono connessioni più affidabili con esecuzione prolungata alle origini dati volatili non sono necessarie.Refreshes are more reliable - Long-running connections to volatile data sources aren't necessary. Le query sui dati di origine vengono eseguite più velocemente, riducendo il rischio di problemi di rete.Queries to source data run faster, reducing potential for network problems to interfere.
  • Il consumo di risorse è ridotto a meno dati per l'aggiornamento riduce il consumo complessivo di memoria e altre risorse in Power bi e nei sistemi di origine dati.Resource consumption is reduced - Less data to refresh reduces overall consumption of memory and other resources in both Power BI and data source systems.
  • Abilita set di dati di grandi dimensioni: i set di dati con potenzialmente miliardi di righe possono crescere senza dover aggiornare completamente l'intero set di dati con ogni operazione di aggiornamento.Enables large datasets - Datasets with potentially billions of rows can grow without the need to fully refresh the entire dataset with each refresh operation.
  • Semplicità di installazione : i criteri di aggiornamento incrementale sono definiti in Power bi desktop con poche attività.Easy setup - Incremental refresh policies are defined in Power BI Desktop with just a few tasks. Al momento della pubblicazione, il servizio applica automaticamente tali criteri a ogni aggiornamento.When published, the service automatically applies those policies with each refresh.

Quando si pubblica un modello di Power BI Desktop nel servizio, ogni tabella nel nuovo set di dati include una singola partizione.When you publish a Power BI Desktop model to the service, each table in the new dataset has a single partition. Questa singola partizione contiene tutte le righe per la tabella.That single partition contains all rows for that table. Se la tabella è di grandi dimensioni, ad indicare con decine di milioni di righe o addirittura più, un aggiornamento per tale tabella può richiedere molto tempo e utilizzare una quantità eccessiva di risorse.If the table is large, say with tens of millions of rows or even more, a refresh for that table can take a long time and consume an excessive amount of resources.

Con l'aggiornamento incrementale, il servizio partiziona dinamicamente e separa i dati che devono essere aggiornati di frequente dai dati che possono essere aggiornati con minore frequenza.With incremental refresh, the service dynamically partitions and separates data that needs to be refreshed frequently from data that can be refreshed less frequently. I dati della tabella vengono filtrati tramite Power Query parametri di data/ora con i nomi riservati e con distinzione tra maiuscole e minuscole RangeStart e RangeEnd.Table data is filtered by using Power Query date/time parameters with the reserved, case-sensitive names RangeStart and RangeEnd. Quando si configura inizialmente l'aggiornamento incrementale in Power BI Desktop, i parametri vengono utilizzati per filtrare solo un piccolo periodo di dati da caricare nel modello.When initially configuring incremental refresh in Power BI Desktop, the parameters are used to filter only a small period of data to be loaded into the model. Quando viene pubblicata nel servizio, con la prima operazione di aggiornamento, il servizio crea un aggiornamento incrementale e partizioni cronologiche in base alle impostazioni dei criteri di aggiornamento incrementale, quindi esegue l'override dei valori di parametro per filtrare ed eseguire query sui dati per ogni partizione in base ai valori di data/ora per ogni riga.When published to the service, with the first refresh operation, the service creates incremental refresh and historical partitions based on incremental refresh policy settings, and then overrides the parameter values to filter and query data for each partition based on date/time values for each row.

Con ogni aggiornamento successivo, la query Filtra e restituisce solo le righe all'interno del periodo di aggiornamento definite in modo dinamico dai parametri.With each subsequent refresh, the query filters and returns only those rows within the refresh period dynamically defined by the parameters. Le righe con data/ora nel periodo di aggiornamento vengono aggiornate.Those rows with a date/time within the refresh period are refreshed. Le righe con una data/ora non più entro il periodo di aggiornamento diventano parte del periodo cronologico, che non viene aggiornato.Rows with a date/time no longer within the refresh period then become part of the historical period, which is not refreshed. Viene eseguito il rollforward dei periodi di aggiornamento e cronologici.Both the refresh and historical periods are rolled forward. Quando vengono create nuove partizioni di aggiornamento incrementale, le partizioni di aggiornamento non più nel periodo di aggiornamento diventano partizioni storiche.As new incremental refresh partitions are created, refresh partitions no longer in the refresh period become historical partitions. Nel tempo, le partizioni storiche diventano meno granulari Man mano che vengono unite insieme.Over time, historical partitions become less granular as they are merged together. Quando una partizione cronologica non è più nel periodo cronologico definito dal criterio, viene rimossa completamente dal set di dati.When a historical partition is no longer in the historical period defined by the policy, it is removed from the dataset entirely. Questo modello è noto come modello di finestra in sequenza.This is known as a rolling window pattern.

La bellezza dell'aggiornamento incrementale è che il servizio gestisce tutto questo in base ai criteri di aggiornamento incrementale definiti.The beauty of incremental refresh is the service handles all of this for you based on the incremental refresh policies you define. In realtà, il processo e le partizioni creati dal servizio non sono ancora visibili nel servizio.In fact, the process and partitions created from it are not even visible in the service. Nella maggior parte dei casi, un criterio di aggiornamento incrementale ben definito è sufficiente per migliorare significativamente le prestazioni dell'aggiornamento del set di dati.In most cases, a well-defined incremental refresh policy is all that is necessary to significantly improve dataset refresh performance. Tuttavia, per i set di impostazioni delle capacità Premium sono supportati scenari di aggiornamento e partizione più avanzati tramite l'endpoint XMLA.However, for datasets in Premium capacities, more advanced partition and refresh scenarios are supported through the XMLA endpoint.

RequisitiRequirements

Piani supportatiSupported plans

L'aggiornamento incrementale è supportato per i set di impostazioni Power BI Premium, Premium per utente, Power BI Pro e Power BI Embedded.Incremental refresh is supported for Power BI Premium, Premium per user, Power BI Pro, and Power BI Embedded datasets.

Origini dati supportateSupported data sources

L'aggiornamento incrementale funziona meglio per le origini dati strutturate e relazionali, come il database SQL e la sinapsi di Azure, ma può anche funzionare per altre origini dati.Incremental refresh works best for structured, relational data sources, like SQL Database and Azure Synapse, but can also work for other data sources. In ogni caso, l'origine dati deve supportare quanto segue:In any case, your data source must support the following:

Colonna Data : la tabella deve contenere una colonna Data di data/ora o tipo di dati Integer.Date column - The table must contain a date column of date/time or integer data type. I parametri RangeStart e RangeEnd (che devono essere di tipo data/ora) filtrano i dati della tabella in base alla colonna della data.The RangeStart and RangeEnd parameters (which must be date/time data type) filter table data based on the date column. Per le colonne date di chiavi surrogate integer nel formato yyyymmdd , è possibile creare una funzione che converte il valore di data/ora nei parametri in modo che corrisponda alla chiave surrogata Integer della tabella dell'origine dati.For date columns of integer surrogate keys in the form of yyyymmdd, you can create a function that converts the date/time value in the parameters to match the integer surrogate key of the data source table. Per altre informazioni, vedere Configure Incremental Refresh-Convert DateTime to integer.To learn more, see Configure incremental refresh - Convert DateTime to integer.

Riduzione delle query : l'aggiornamento incrementale è progettato per le origini dati che supportano la riduzione delle query, che è Power query capacità di generare una singola espressione di query per recuperare e trasformare i dati di origine.Query folding - Incremental refresh is designed for data sources that support query folding, which is Power Query's ability to generate a single query expression to retrieve and transform source data. La maggior parte delle origini dati che supportano le query SQL supporta la riduzione delle query.Most data sources that support SQL queries support query folding. Spesso le origini dati, ad esempio file flat, BLOB e alcuni feed Web, non lo sono.Data sources like flat files, blobs, and some web feeds often do not.

Quando si configura l'aggiornamento incrementale, un'espressione Power Query che include un filtro di data/ora basato sui parametri RangeStart e RangeEnd viene eseguita sull'origine dati.When incremental refresh is configured, a Power Query expression that includes a date/time filter based on the RangeStart and RangeEnd parameters is executed against the data source. Il filtro è in effetti una trasformazione inclusa nella query che definisce una clausola WHERE in base ai parametri.The filter is in effect a transformation included in the query that defines a WHERE clause based on the parameters. Nei casi in cui il filtro non è supportato dall'origine dati, non può essere incluso nell'espressione di query.In cases where the filter is not supported by the data source, it cannot be included in the query expression. Il motore mashup della query compensa e applica il filtro localmente, operazione che richiede il recupero di tutte le righe della tabella dall'origine dati.The query mashup engine compensates and applies the filter locally, which requires retrieving all rows for the table from the data source. Questo può causare una lentezza dell'aggiornamento incrementale e il processo può esaurire le risorse nell'servizio Power BI o in un gateway dati locale, in modo da sconfiggere efficacemente lo scopo dell'aggiornamento incrementale.This can cause incremental refresh to be slow, and the process can run out of resources either in the Power BI service or in an On-premises Data Gateway - effectively defeating the purpose of incremental refresh.

Poiché il supporto per la riduzione delle query è diverso per i diversi tipi di origini dati, è necessario eseguire la verifica per garantire che la logica di filtro sia inclusa nelle query eseguite sull'origine dati.Because support for query folding is different for different types of data sources, verification should be performed to ensure the filter logic is included in the queries being executed against the data source. Nella maggior parte dei casi, Power BI Desktop tenta di eseguire questa verifica quando si definiscono i criteri di aggiornamento incrementale.In most cases, Power BI Desktop attempts to perform this verification for you when defining the incremental refresh policy. Per le origini dati basate su SQL, ad esempio database SQL, sinapsi di Azure, Oracle e Teradata, questa verifica è affidabile.For SQL based data sources such as SQL Database, Azure Synapse, Oracle, and Teradata, this verification is reliable. Tuttavia, altre origini dati potrebbero non essere in grado di eseguire la verifica senza tracciare le query.However, other data sources may be unable to verify without tracing the queries. Se Power BI Desktop non è in grado di confermare, viene visualizzato un avviso nella finestra di dialogo di configurazione dei criteri di aggiornamento incrementale.If Power BI Desktop is unable to confirm, a warning is shown in the Incremental refresh policy configuration dialog.

Avviso di riduzione della query

Se viene visualizzato questo avviso e si desidera verificare la riduzione della query necessaria, utilizzare la funzionalità di diagnostica Power Query o le query di traccia utilizzando uno strumento supportato dall'origine dati, ad esempio SQL Profiler.If you see this warning and want to verify the necessary query folding is occurring, use the Power Query Diagnostics feature or trace queries by using a tool supported by the data source, like SQL Profiler. Se la riduzione delle query non è in corso, verificare che la logica di filtro sia inclusa nella query passata all'origine dati.If query folding is not occurring, verify the filter logic is included in the query being passed to the data source. In caso contrario, è probabile che la query includa una trasformazione che impedisce la riduzione.If not, it's likely the query includes a transformation that prevents folding.

Prima di configurare la soluzione di aggiornamento incrementale, assicurarsi di leggere e comprendere attentamente le linee guida per la riduzione delle query in Power bi desktop e Power query la riduzione delle query.Before configuring your incremental refresh solution, be sure to thoroughly read and understand Query folding guidance in Power BI Desktop and Power Query query folding. Questi articoli consentono di determinare se l'origine dati e le query supportano la riduzione delle query.These articles can help you determine if your data source and queries support query folding.

Altri tipi di origine datiOther data source types

Usando funzioni di query e logica di query aggiuntive, è possibile usare l'aggiornamento incrementale con altri tipi di origini dati, basati su RangeStart e RangeEnd, che possono essere passati in una singola query.By using additional custom query functions and query logic, incremental refresh can be used with other types of data sources provided filters based on RangeStart and RangeEnd can be passed in a single query. Ad esempio, i file della cartella di lavoro di Excel archiviati in una cartella, i file in SharePoint o i feed RSS.For example, Excel workbook files stored in a folder, files in SharePoint, or RSS feeds. Tenere presente che si tratta di scenari avanzati che richiedono personalizzazione e test aggiuntivi oltre a quanto descritto qui.Keep in mind these are advanced scenarios that require additional customization and testing beyond what is described here. Assicurarsi di consultare la sezione community più avanti in questo articolo per suggerimenti su come trovare altre informazioni sull'uso dell'aggiornamento incrementale per scenari univoci come questi.Be sure to check the Community section later in this article for suggestions on how you can find more info about using incremental refresh for unique scenarios like these.

Limiti di tempoTime limits

Indipendentemente dall'aggiornamento incrementale, i set di impostazioni Power BI Pro hanno un limite di tempo di aggiornamento di due ore.Regardless of incremental refresh, Power BI Pro datasets have a refresh time limit of two hours. Per i set di impostazioni con capacità Premium, il limite di tempo è di cinque ore.For datasets in a Premium capacity, the time limit is five hours. Le operazioni di aggiornamento sono a elevato utilizzo di memoria e processo.Refresh operations are process and memory intensive. Un'operazione di aggiornamento completa può utilizzare fino al doppio della quantità di memoria richiesta solo dal set di dati, in quanto il servizio gestisce uno snapshot del set di dati in memoria fino al completamento dell'operazione di aggiornamento.A full refresh operation can use as much as double the amount of memory required by the dataset alone because the service maintains a snapshot of the dataset in memory until the refresh operation is complete. Le operazioni di aggiornamento possono anche richiedere un utilizzo intensivo del processo, con una quantità significativa di risorse di CPU disponibili.Refresh operations can also be process intensive, consuming a significant amount of available CPU resources. Le operazioni di aggiornamento devono inoltre basarsi sulle connessioni volatili alle origini dati e la possibilità di tali sistemi di origine dati di restituire rapidamente l'output delle query.Refresh operations must also rely on volatile connections to data sources, and the ability of those data source systems to quickly return query output. Il limite di tempo è una salvaguardia per limitare l'utilizzo delle risorse disponibili.The time limit is a safeguard to limit over-consumption of your available resources.

Nota

Con le capacità Premium, le operazioni di aggiornamento eseguite tramite l'endpoint XMLA non hanno un limite di tempo.With Premium capacities, refresh operations performed through the XMLA endpoint have no time limit. Per ulteriori informazioni, vedere aggiornamento incrementale avanzato con l'endpoint XMLA.To learn more, see Advanced incremental refresh with the XMLA endpoint.

Poiché l'aggiornamento incrementale ottimizza le operazioni di aggiornamento a livello di partizione nel set di dati, l'utilizzo delle risorse può essere notevolmente ridotto.Because incremental refresh optimizes refresh operations at the partition level in the dataset, resource consumption can be significantly reduced. Allo stesso tempo, anche con l'aggiornamento incrementale, a meno che tramite l'endpoint XMLA le operazioni di aggiornamento siano vincolate dagli stessi limiti di due e cinque ore.At the same time, even with incremental refresh, unless through the XMLA endpoint, refresh operations are bound by those same two and five-hour limits. Un criterio di aggiornamento incrementale efficace non solo riduce la quantità di dati elaborati con un'operazione di aggiornamento, ma riduce anche la quantità di dati cronologici non necessari archiviati nel set di dati.An effective incremental refresh policy not only reduces the amount of data processed with a refresh operation, but also reduces the amount of unnecessary historical data stored in your dataset.

Anche le query possono essere limitate da un limite di tempo predefinito per l'origine dati.Queries can also be limited by a default time limit for the data source. La maggior parte delle origini dati relazionali consente di ignorare il limite di tempo nell'espressione Power Query M.Most relational data sources allow overriding time limit in the Power Query M expression. Nell'espressione seguente, ad esempio, viene utilizzata la funzione di accesso ai dati SQL Server per impostare CommandTimeout su 2 ore.For example, the expression below uses the SQL Server data-access function to set CommandTimeout to 2 hours. Ogni periodo definito dagli intervalli dei criteri invia una query osservando l'impostazione di timeout del comando.Each period defined by the policy ranges submits a query observing the command timeout setting.

let
    Source = Sql.Database("myserver.database.windows.net", "AdventureWorks", [CommandTimeout=#duration(0, 2, 0, 0)]),
    dbo_Fact = Source{[Schema="dbo",Item="FactInternetSales"]}[Data],
    #"Filtered Rows" = Table.SelectRows(dbo_Fact, each [OrderDate] >= RangeStart and [OrderDate] < RangeEnd)
in
    #"Filtered Rows"

Per i set di impostazioni di grandi dimensioni nelle capacità Premium che probabilmente contengono miliardi di righe, è possibile avviare l'operazione di aggiornamento iniziale.For very large datasets in Premium capacities that will likely contain billions of rows, the initial refresh operation can be bootstrapped. Il bootstrap consente al servizio di creare oggetti tabella e partizione per il set di dati, ma non di caricare ed elaborare i dati in una delle partizioni.Bootstrapping allows the service to create table and partition objects for the dataset, but not load and process data into any of the partitions. Utilizzando SQL Server Management Studio, le partizioni possono essere elaborate singolarmente, in sequenza o in parallelo, in modo da ridurre la quantità di dati restituiti in una singola query, ignorando al tempo stesso il limite di cinque ore.By using SQL Server Management Studio, partitions can then be processed individually, sequentially, or in parallel that can both reduce the amount of data returned in a single query, but also bypass the five-hour time limit. Per altre informazioni, vedere aggiornamento incrementale avanzato-Impedisci timeout all'aggiornamento completo iniziale.To learn more, see Advanced incremental refresh - Prevent timeouts on initial full refresh.

Data e ora correntiCurrent date and time

La data e l'ora correnti sono basate sulla data di sistema al momento dell'aggiornamento.The current date and time is based on the system date at the time of refresh. Se l'aggiornamento pianificato è abilitato per il set di dati nel servizio, il fuso orario specificato verrà tenuto in considerazione durante la determinazione della data e dell'ora correnti.If scheduled refresh is enabled for the dataset in the service, the specified time zone will be taken into account when determining the current date and time. Gli aggiornamenti singoli e pianificati tramite il servizio osservano il fuso orario, se disponibile.Both individual and scheduled refreshes through the service observe the time zone if available. Ad esempio, un aggiornamento che si verifica alle 8.00 (fuso orario del Pacifico) (USA e Canada) con un fuso orario specificato determinerà la data e l'ora correnti in base al fuso orario del Pacifico, non a GMT (che altrimenti sarebbe il giorno successivo).For example, a refresh that occurs at 8 PM Pacific Time (US and Canada) with a time zone specified will determine the current date and time based on Pacific Time, not GMT (which would otherwise be the next day). Le operazioni di aggiornamento non richiamate tramite il servizio, ad esempio il comando TMSL Refresh, non considereranno il fuso orario di aggiornamento pianificato.Refresh operations not invoked through the service, such as the TMSL refresh command, will not consider the scheduled refresh time zone.

Fuso orario

Configurazione dell'aggiornamento incrementaleConfiguring incremental refresh

Verranno ora illustrati i concetti importanti per la configurazione dell'aggiornamento incrementale.We'll go over important concepts of configuring incremental refresh here. Quando si è pronti per istruzioni dettagliate, vedere configurare l'aggiornamento incrementale per i set di impostazioni.When you're ready for more detailed step-by-step instructions, be sure to check out Configure incremental refresh for datasets.

La configurazione dell'aggiornamento incrementale viene eseguita in Power BI Desktop.Configuring incremental refresh is done in Power BI Desktop. Per la maggior parte dei modelli sono necessarie solo alcune attività.For most models, only a few tasks are required. Tuttavia, tenere presente quanto segue:However, keep the following in mind:

  • Quando viene pubblicato nel servizio, non è possibile pubblicare di nuovo lo stesso modello da Power BI Desktop.When published to the service, you can't publish the same model again from Power BI Desktop. Con la ripubblicazione vengono rimosse tutte le partizioni e i dati esistenti già presenti nel set di dati.Republishing would remove any existing partitions and data already in the dataset. Se si esegue la pubblicazione in una capacità Premium, le modifiche dello schema dei metadati successive possono essere apportate con il toolkit open source ALM o usando Tabular Model Scripting Language (TMSL).If you're publishing to a Premium capacity, subsequent metadata schema changes can be made with the open-source ALM Toolkit or by using Tabular Model Scripting Language (TMSL). Per altre informazioni, vedere la pagina relativa all' aggiornamento incrementale avanzato-distribuzione solo metadati.To learn more, see Advanced incremental refresh - Metadata-only deployment.
  • Quando viene pubblicato nel servizio, non è possibile scaricare di nuovo il set di dati come PBIX per Power BI Desktop.When published to the service, you can't download the dataset back as a PBIX to Power BI Desktop. Poiché i set di impostazioni del servizio possono raggiungere dimensioni molto elevate, non è pratico eseguirne il download e l'apertura in un tipico computer desktop.Because datasets in the service can grow so large, it's impractical to download back and open on a typical desktop computer.

Creare parametriCreate parameters

Quando si configura l'aggiornamento incrementale in Power BI Desktop, è necessario creare prima due Power Query parametri di data/ora con i nomi RangeStart e RangeEnd riservati e con distinzione tra maiuscole e minuscole.When configuring incremental refresh in Power BI Desktop, you first create two Power Query date/time parameters with the reserved, case-sensitive names RangeStart and RangeEnd. Questi parametri, definiti nella finestra di dialogo Gestisci parametri in Power Query Editor vengono inizialmente utilizzati per filtrare i dati caricati nella tabella del modello Power BI Desktop per includere solo le righe con data/ora all'interno di tale periodo.These parameters, defined in the Manage Parameters dialog in Power Query Editor are initially used to filter the data loaded into the Power BI Desktop model table to include only those rows with a date/time within that period. Dopo la pubblicazione del modello nel servizio, RangeStart e RangeEnd vengono sottoposti a override automaticamente dal servizio per eseguire query sui dati definiti dal periodo di aggiornamento specificato nelle impostazioni dei criteri di aggiornamento incrementale.After the model is published to the service, RangeStart and RangeEnd are overridden automatically by the service to query data defined by the refresh period specified in the incremental refresh policy settings.

Ad esempio, la tabella dell'origine dati FactInternetSales calcola la media di 10.000 nuove righe al giorno.For example, our FactInternetSales data source table averages 10k new rows per day. Per limitare il numero di righe inizialmente caricate nel modello in Power BI Desktop, viene specificato un periodo di due giorni compreso tra RangeStart e RangeEnd.To limit the number of rows initially loaded into the model in Power BI Desktop, we specify a two-day period between RangeStart and RangeEnd.

Finestra di dialogo Gestisci parametri

Filtrare i datiFilter data

Con i parametri RangeStart e RangeEnd definiti, si applicano i filtri di data personalizzati sulla colonna date della tabella.With RangeStart and RangeEnd parameters defined, you then apply custom Date filters on your table's date column. I filtri applicati consentono di selezionare un subset di dati che verranno caricati nel modello quando si fa clic su applica.The filters you apply select a subset of data that will be loaded into the model when you click Apply.

Filtro personalizzato

Usando l'esempio FactInternetSales, dopo aver creato i filtri in base ai parametri e a applicare i passaggi, due giorni di dati, circa 20.000 righe vengono caricate nel modello.Using our FactInternetSales example, after creating filters based on the parameters and applying steps, two days of data, roughly 20k rows is loaded into our model.

Definire i criteriDefine policy

Dopo l'applicazione dei filtri e il caricamento di un subset di dati nel modello, è necessario definire un criterio di aggiornamento incrementale per la tabella.After filters have been applied and a subset of data has been loaded into the model, you then define an incremental refresh policy for the table. Dopo la pubblicazione del modello nel servizio, il criterio viene utilizzato dal servizio per creare e gestire le partizioni di tabella ed eseguire operazioni di aggiornamento.After the model is published to the service, the policy is used by the service to create and manage table partitions and perform refresh operations.

Per definire i criteri, sono disponibili tre impostazioni obbligatorie e due impostazioni facoltative:To define the policy, there are three required settings and two optional settings:

Finestra di dialogo Definisci criterio

1-tabella1 - Table

Il valore predefinito della casella di riepilogo della tabella è la tabella selezionata nella vista dati.The Table listbox defaults to the table you select in Data view. Abilitare l'aggiornamento incrementale per la tabella con il dispositivo di scorrimento.Enable incremental refresh for the table with the slider. Se l'espressione Power Query per la tabella non include un filtro basato sui parametri RangeStart e RangeEnd, l'interruttore è disabilitato.If the Power Query expression for the table doesn't include a filter based on the RangeStart and RangeEnd parameters, the toggle is disabled.

2-archivia le righe negli ultimi2 - Store rows in the last

Questa impostazione obbligatoria determina il periodo cronologico in cui le righe con data/ora in tale periodo sono incluse nel set di dati, più le righe per il periodo cronologico incompleto corrente, più le righe nel periodo di aggiornamento fino alla data e all'ora correnti.This required setting determines the historical period in which rows with a date/time in that period are included in the dataset, plus rows for the current incomplete historical period, plus rows in the refresh period up to the current date and time.

Se, ad esempio, si specifica 5 anni, nella tabella vengono archiviati gli ultimi cinque anni di dati cronologici delle partizioni dell'anno, più le righe per l'anno corrente nelle partizioni trimestre, mese o giorno, fino al periodo di aggiornamento incluso.For example, if we specify 5 years, our table will store the last five whole years of historical data in year partitions, plus rows for the current year in quarter, month, or day partitions, up to and including the refresh period.

Per i set di dati nelle capacità Premium, le partizioni cronologiche obsolete possono essere aggiornate in modo selettivo a una granularità determinata da questa impostazione.For datasets in Premium capacities, backdated historical partitions can be selectively refreshed at a granularity determined by this setting. Per altre informazioni, vedere aggiornamento incrementale avanzato-partizioni.To learn more, see Advanced incremental refresh - Partitions.

3-aggiornare le righe negli ultimi3 - Refresh rows in the last

Questa impostazione obbligatoria determina il periodo di aggiornamento incrementale in cui tutte le righe con data/ora in tale periodo sono incluse nelle partizioni di aggiornamento e aggiornate a ogni operazione di aggiornamento.This required setting determines the incremental refresh period in which all rows with a date/time in that period are included in the refresh partition(s) and refreshed with each refresh operation.

Ad esempio, se si specifica un periodo di aggiornamento di 10 giorni, a ogni operazione di aggiornamento il servizio esegue l'override dei parametri RangeStart e RangeEnd per creare una query per le righe con una data/ora in un periodo di dieci giorni, iniziando e terminando a seconda della data e dell'ora correnti.For example, if we specify a refresh period of 10 days, with each refresh operation the service overrides the RangeStart and RangeEnd parameters to create a query for rows with a date/time within a ten-day period, beginning and ending dependent on the current date and time. Le righe con data/ora negli ultimi 10 giorni fino al momento dell'operazione di aggiornamento corrente vengono aggiornate.Rows with a date/time in the last 10 days up to the current refresh operation time are refreshed. Con questo tipo di criteri, è possibile prevedere la tabella del set di dati FactInternetSales nel servizio, che calcola la media di 10.000 nuove righe al giorno, per aggiornare approssimativamente 100.000 righe con ogni operazione di aggiornamento.With this type of policy, we can expect our FactInternetSales dataset table in the service, which averages 10k new rows per day, to refresh roughly 100k rows with each refresh operation.

Assicurarsi di specificare un periodo che includa solo il numero minimo di righe necessarie per garantire la creazione di report accurati.Be sure to specify a period that includes only the minimum number of rows required to ensure accurate reporting. Se si definiscono criteri per più di una tabella, è necessario utilizzare gli stessi parametri RangeStart e RangeEnd anche se per ogni tabella sono definiti periodi di archiviazione e di aggiornamento diversi.If defining policies for more than one table, the same RangeStart and RangeEnd parameters must be used even if different store and refresh periods are defined for each table.

4-rilevare le modifiche ai dati4 - Detect data changes

Questa impostazione è facoltativa.This setting is optional. L'aggiornamento incrementale di 10 giorni è più efficiente rispetto a un aggiornamento completo di cinque anni.Incremental refresh of 10 days is more efficient than a full refresh of five years. Tuttavia, l'aggiornamento può essere ancora più selettivo.However, refresh can be even more selective. Con l'opzione rileva modifiche ai dati, è possibile selezionare una colonna data/ora utilizzata per identificare e aggiornare solo i giorni in cui i dati sono stati modificati.With the Detect data changes option, you can select a date/time column used to identify and refresh only those days where the data has changed. Si presuppone che tale colonna esista nell'origine dati, che in genere è a scopo di controllo.This assumes such a column exists in the data source, which is typically for auditing purposes. Non deve essere la stessa colonna utilizzata per partizionare i dati con i parametri RangeStart e rangeend.This should not be the same column used to partition the data with the RangeStart and RangeEnd parameters. Il valore massimo di questa colonna viene valutato per ciascuno dei periodi dell'intervallo incrementale.The maximum value of this column is evaluated for each of the periods in the incremental range. Se non è stato modificato dopo l'ultimo aggiornamento, non è necessario aggiornare il periodo.If it hasn't changed since the last refresh, there's no need to refresh the period. In questo esempio, questo potrebbe ridurre ulteriormente i giorni, aggiornati in modo incrementale da 10 a circa due.In this example, this could potentially further reduce the days incrementally refreshed from 10 to around two.

La struttura corrente richiede che la colonna per il rilevamento delle modifiche ai dati sia persistente e memorizzata nella cache.The current design requires that the column to detect data changes is persisted and cached into memory. Per ridurre la cardinalità e l'utilizzo della memoria, è possibile usare le tecniche seguenti:The following techniques can be used to reduce cardinality and memory consumption:

  • Mantiene solo il valore massimo della colonna al momento dell'aggiornamento, probabilmente usando una funzione Power Query.Persist only the maximum value of the column at time of refresh, perhaps by using a Power Query function.
  • Ridurre la precisione a un livello accettabile, in base ai requisiti di frequenza di aggiornamento.Reduce the precision to an acceptable level, given your refresh-frequency requirements.
  • Definire una query personalizzata per rilevare le modifiche ai dati utilizzando l'endpoint XMLA ed evitare di salvare in modo permanente il valore della colonna.Define a custom query for detecting data changes by using the XMLA endpoint and avoid persisting the column value altogether.

In alcuni casi, è possibile migliorare ulteriormente l'abilitazione dell'opzione rileva modifiche ai dati.In some cases, enabling the Detect data changes option can be further enhanced. Ad esempio, è possibile evitare di salvare in modo permanente una colonna dell'ultimo aggiornamento nella cache in memoria o abilitare scenari in cui una tabella di configurazione/istruzioni è preparata dai processi ETL per contrassegnare solo le partizioni che devono essere aggiornate.For example, you may want to avoid persisting a last-update column in the in-memory cache, or enable scenarios where a configuration/instruction table is prepared by ETL processes for flagging only those partitions that need to be refreshed. In casi come questi, per le capacità Premium, usare TMSL (Tabular Model Scripting Language) e/o il modello a oggetti tabulare (TOM) per eseguire l'override del comportamento di rilevamento delle modifiche dei dati.In cases like these, for Premium capacities, use Tabular Model Scripting Language (TMSL) and/or the Tabular Object Model (TOM) to override the detect data changes behavior. Per altre informazioni, vedere aggiornamento incrementale avanzato-query personalizzate per rilevare le modifiche ai dati.To learn more, see Advanced incremental refresh - Custom queries for detect data changes.

5-aggiorna solo giorni completi5 - Only refresh complete days

Questa impostazione è facoltativa.This setting is optional. Si supponga che l'aggiornamento sia stato pianificato per l'esecuzione ogni mattina alle 4.00.Let's say your refresh is scheduled to run at 4:00 AM every morning. Se nella tabella dell'origine dati vengono visualizzate nuove righe di dati durante le quattro ore comprese tra mezzanotte e 4:00 AM, è possibile che non si desideri tenerne conto.If new rows of data appear in the data source table during those four hours between midnight and 4:00 AM, you may not want to account for them. Alcune metriche aziendali come i barilotti al giorno nel settore petrolifero e gassoso non hanno senso con i giorni parziali.Some business metrics like barrels per day in the oil and gas industry make no sense with partial days. Un altro esempio è l'aggiornamento dei dati di un sistema finanziario in cui i dati per il mese precedente vengono approvati il giorno 12 del mese.Another example is refreshing data from a financial system where data for the previous month is approved on the 12th calendar day of the month. È possibile impostare il periodo di aggiornamento su 1 mese e pianificare l'esecuzione dell'aggiornamento il dodicesimo giorno del mese.You could set the refresh period to 1 month and schedule the refresh to run on the 12th day of the month. Se questa opzione è selezionata, ad esempio, aggiornerà i dati di gennaio il 12 febbraio.With this option selected, it would, for example, refresh January data on February 12.

Tenere presente che, a meno che l'aggiornamento pianificato non sia configurato per un fuso orario non UTC, le operazioni di aggiornamento nel servizio vengono eseguite in base all'ora UTC, che può determinare i periodi di validità della data e dell'effetto.Keep in mind, unless scheduled refresh is configured for a non-UTC time zone, refresh operations in the service run under UTC time, which can determine the effective date and effect complete periods.

PubblicaPublish

Dopo aver configurato i criteri di aggiornamento incrementale, pubblicare il modello nel servizio.After configuring the incremental refresh policy, you publish the model to the service. Al termine della pubblicazione, è possibile eseguire l'operazione di aggiornamento iniziale sul set di dati.When publishing is complete, you can perform the initial refresh operation on the dataset.

Per i set di dati pubblicati nelle aree di lavoro assegnate alle capacità Premium, se si ritiene che il set di dati aumenti oltre 1 GB o più, è possibile migliorare le prestazioni dell'operazione di aggiornamento e assicurarsi che il set di dati non superi i limiti delle dimensioni abilitando il formato di archiviazione del set di dati di grandi dimensioni prima di eseguire la prima operazione di aggiornamentoFor datasets published to workspaces assigned to Premium capacities, if you think the dataset will grow beyond 1 GB or more, you can improve refresh operation performance and ensure the dataset doesn't max out size limits by enabling Large dataset storage format before performing the first refresh operation in the service. Per altre informazioni, vedere set di impostazioni di grandi dimensioni in Power bi Premium.To learn more, see Large datasets in Power BI Premium.

Importante

Dopo essere stato pubblicato nel servizio, non è possibile scaricare il PBIX di backup.After being published to the service, you cannot download the PBIX back.

AggiornaRefresh

Dopo la pubblicazione nel servizio, è necessario eseguire un'operazione di aggiornamento iniziale sul set di dati.After publishing to the service, you perform an initial refresh operation on the dataset. Si tratta di un aggiornamento singolo (manuale), in modo da poter monitorare lo stato di avanzamento.This should be an individual (manual) refresh so you can monitor progress. Il completamento dell'operazione di aggiornamento iniziale può richiedere molto tempo.The initial refresh operation can take quite a while to complete. Le partizioni devono essere create, i dati cronologici caricati, gli oggetti quali le relazioni e le gerarchie vengono compilati o ricompilati e gli oggetti calcolati vengono ricalcolati.Partitions must be created, historical data loaded, objects such as relationships and hierarchies are built or rebuilt, and calculated objects are recalculated.

Le operazioni di aggiornamento successive, singole o pianificate, sono molto più veloci perché vengono aggiornate solo le partizioni di aggiornamento incrementali.Subsequent refresh operations, either individual or scheduled are much faster because only the incremental refresh partition(s) is refreshed. Altre operazioni di elaborazione devono ancora verificarsi, ad esempio l'Unione di partizioni e il ricalcolo, ma in genere richiede solo una piccola parte del tempo rispetto all'aggiornamento iniziale.Other processing operations must still occur, like merging partitions and recalculation, but it usually takes only a small fraction of time compared to the initial refresh.

Aggiornamento incrementale avanzatoAdvanced incremental refresh

Se il set di dati si trova in una capacità Premium con l'endpoint XMLA abilitato, l'aggiornamento incrementale può essere ulteriormente esteso per gli scenari avanzati.If your dataset is on a Premium capacity with the XMLA endpoint enabled, incremental refresh can be further extended for advanced scenarios. Ad esempio, è possibile usare SQL Server Management Studio per visualizzare e gestire le partizioni, avviare l'operazione di aggiornamento iniziale o aggiornare le partizioni cronologiche obsolete.For example, you can use SQL Server Management Studio to view and manage partitions, bootstrap the initial refresh operation, or refresh backdated historical partitions. Per ulteriori informazioni, vedere aggiornamento incrementale avanzato con l'endpoint XMLA.To learn more, see Advanced incremental refresh with the XMLA endpoint.

CommunityCommunity

Power BI dispone di una vivace community in cui gli MVP, i professionisti BI e i peer condividono le competenze in gruppi di discussione, video, Blog e altro ancora.Power BI has a vibrant community where MVPs, BI pros, and peers share expertise in discussion groups, videos, blogs and more. Per informazioni sull'aggiornamento incrementale, vedere le risorse aggiuntive seguenti:When learning about incremental refresh, be sure to check out these additional resources:

Passaggi successiviNext steps

Configurare l'aggiornamento incrementale per i set di impostazioniConfigure incremental refresh for datasets
Aggiornamento incrementale avanzato con l'endpoint XMLAAdvanced incremental refresh with the XMLA endpoint
Risolvere i problemi di aggiornamento incrementaleTroubleshoot incremental refresh
Aggiornamento incrementale per i flussi di datiIncremental refresh for dataflows