Atualização incremental para conjuntos de dadosIncremental refresh for datasets

A atualização incremental estende as operações de atualização agendadas fornecendo a criação e o gerenciamento automáticos de partições para tabelas de conjuntos de dados que frequentemente carregam dados novos e atualizados.Incremental refresh extends scheduled refresh operations by providing automated partition creation and management for dataset tables that frequently load new and updated data. Para a maioria dos conjuntos de dados, isso significa uma ou mais tabelas que contêm dados de transação que são alterados com frequência e podem crescer exponencialmente, como uma tabela de fatos em um esquema de banco de dados relacional ou em estrela.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. Particionar a tabela e atualizar apenas as partições mais recentes reduz significativamente a quantidade de dados que precisa ser atualizada.By partitioning the table and refreshing only the most recent partition(s) significantly reduces the amount of data that has to be refreshed.

Com a atualização incremental:With incremental refresh:

  • As atualizações são mais rápidas – somente os dados mais recentes alterados precisam ser atualizados.Refreshes are faster - Only the most recent data that has changed needs to be refreshed.
  • Atualizações são mais confiáveis – as conexões de longa execução para fontes de dados voláteis não são necessárias.Refreshes are more reliable - Long-running connections to volatile data sources aren't necessary. As consultas aos dados de origem são executadas mais rapidamente, reduzindo o potencial de problemas de rede para interferir.Queries to source data run faster, reducing potential for network problems to interfere.
  • O consumo de recursos é reduzido – um número menor de dados para atualização reduz o consumo geral da memória e de outros recursos no Power BI e no sistema da fonte de dados.Resource consumption is reduced - Less data to refresh reduces overall consumption of memory and other resources in both Power BI and data source systems.
  • Permite grandes conjuntos de volumes – Os conjuntos de dados com bilhões de linhas podem crescer sem a necessidade de atualizar totalmente todo o conjunto de dados com cada operação de atualização.Enables large datasets - Datasets with potentially billions of rows can grow without the need to fully refresh the entire dataset with each refresh operation.
  • Instalação fácil – As políticas de atualização incremental são definidas no Power BI Desktop com apenas algumas tarefas.Easy setup - Incremental refresh policies are defined in Power BI Desktop with just a few tasks. Quando publicado, o serviço aplica automaticamente essas políticas a cada atualização.When published, the service automatically applies those policies with each refresh.

Quando você publica um modelo de Power BI Desktop para o serviço, cada tabela no novo conjunto de dados tem uma única partição.When you publish a Power BI Desktop model to the service, each table in the new dataset has a single partition. Essa partição única contém todas as linhas dessa tabela.That single partition contains all rows for that table. Se a tabela for grande, digamos com dezenas de milhões de linhas ou ainda mais, uma atualização dessa tabela poderá levar muito tempo e consumir uma quantidade excessiva de recursos.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.

Com a atualização incremental, o serviço particiona e separa dinamicamente os dados que precisam ser atualizados com frequência a partir de dados que podem ser atualizados com menos frequência.With incremental refresh, the service dynamically partitions and separates data that needs to be refreshed frequently from data that can be refreshed less frequently. Os dados da tabela são filtrados usando parâmetros de data/hora do Power Query com os nomes reservados que diferenciam maiúsculas de minúsculas RangeStart e RangeEnd.Table data is filtered by using Power Query date/time parameters with the reserved, case-sensitive names RangeStart and RangeEnd. Ao configurar inicialmente a atualização incremental no Power BI Desktop, os parâmetros são usados para filtrar apenas um pequeno período de dados a serem carregados no modelo.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 publicado no serviço, com a primeira operação de atualização, o serviço cria partições de atualização incremental e históricas com base nas configurações de política de atualização incremental e, em seguida, substitui os valores de parâmetro para filtrar e consultar dados para cada partição com base nos valores de data/hora de cada linha.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.

Com cada atualização subsequente, a consulta filtra e retorna somente as linhas dentro do período de atualização definido dinamicamente pelos parâmetros.With each subsequent refresh, the query filters and returns only those rows within the refresh period dynamically defined by the parameters. Essas linhas com uma data/hora dentro do período de atualização são atualizadas.Those rows with a date/time within the refresh period are refreshed. As linhas com uma data/hora não estão mais no período de atualização se tornam parte do período histórico, o qual não é atualizado.Rows with a date/time no longer within the refresh period then become part of the historical period, which is not refreshed. Os períodos de atualização e históricos são rolados para frente.Both the refresh and historical periods are rolled forward. À medida que novas partições de atualização incremental são criadas, as partições de atualização que não estão mais no período de atualização se tornam partições históricas.As new incremental refresh partitions are created, refresh partitions no longer in the refresh period become historical partitions. Ao longo do tempo, as partições históricas se tornam menos granulares à medida que são mescladas.Over time, historical partitions become less granular as they are merged together. Quando uma partição histórica não está mais no período histórico definido pela política, ela é totalmente removida do conjunto de dados.When a historical partition is no longer in the historical period defined by the policy, it is removed from the dataset entirely. Isso é conhecido como um padrão de janela rolante.This is known as a rolling window pattern.

A beleza da atualização incremental é que o serviço cuida de tudo isso para você com base nas políticas de atualização incremental que você definir.The beauty of incremental refresh is the service handles all of this for you based on the incremental refresh policies you define. Na verdade, o processo e as partições criadas a partir dele nem mesmo estão visíveis no serviço.In fact, the process and partitions created from it are not even visible in the service. Na maioria dos casos, uma política de atualização incremental bem definida é tudo o que é necessário para melhorar significativamente o desempenho da atualização do conjunto de atualizações.In most cases, a well-defined incremental refresh policy is all that is necessary to significantly improve dataset refresh performance. No entanto, para conjuntos de dados em capacidades Premium, cenários mais avançados de partição e atualização têm suporte por meio do ponto de extremidade XMLA.However, for datasets in Premium capacities, more advanced partition and refresh scenarios are supported through the XMLA endpoint.

RequisitosRequirements

Planos com suporteSupported plans

Há suporte para a atualização incremental para conjuntos de dados do Power BI Premium, Premium por usuário, 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.

Fontes de dados com suporteSupported data sources

A atualização incremental funciona melhor para fontes de dados relacionais e estruturadas, como um banco de dados do SQL e do Azure Synapse, mas também pode funcionar para outras fontes.Incremental refresh works best for structured, relational data sources, like SQL Database and Azure Synapse, but can also work for other data sources. Em qualquer caso, sua fonte de dados deve dar suporte ao seguinte:In any case, your data source must support the following:

Coluna de data – A tabela deve conter uma coluna de data com data/hora ou o tipo de dados inteiro.Date column - The table must contain a date column of date/time or integer data type. Os parâmetros RangeStart e RangeEnd (que devem ser do tipo de dados data/hora) filtram os dados da tabela com base na coluna de data.The RangeStart and RangeEnd parameters (which must be date/time data type) filter table data based on the date column. Para colunas de data de chaves alternativas de inteiros na forma de yyyymmdd, você pode criar uma função que converte o valor de data/hora nos parâmetros para corresponder à chave alternativa de inteiro da tabela de fonte de dados.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. Para saber mais, confira Configurar a atualização incremental – Converter DateTime em inteiro.To learn more, see Configure incremental refresh - Convert DateTime to integer.

Dobragem de consultas – A atualização incremental foi projetada para fontes de dados que dão suporte à dobragem de consultas, que é a capacidade do Power Query de gerar uma única expressão de consulta para recuperar e transformar dados de origem.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. A maioria das fontes de dados compatíveis com consultas SQL é compatível com a partição de consulta.Most data sources that support SQL queries support query folding. As fontes de dados como arquivos simples, blobs e alguns feeds da Web normalmente não fazem isso.Data sources like flat files, blobs, and some web feeds often do not.

Quando a atualização incremental é configurada, uma expressão do Power Query que inclui um filtro de data/hora com base nos parâmetros RangeStart e RangeEnd é executada na fonte de dados.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. O filtro está em vigor em uma transformação incluída na consulta que define uma cláusula WHERE com base nos parâmetros.The filter is in effect a transformation included in the query that defines a WHERE clause based on the parameters. Em casos em que o filtro não é compatível com a fonte de dados, ele não pode ser aplicado.In cases where the filter is not supported by the data source, it cannot be included in the query expression. O mecanismo de mashup de consulta compensa e aplica o filtro localmente, o que exige a recuperação de todas as linhas da tabela da fonte de dados.The query mashup engine compensates and applies the filter locally, which requires retrieving all rows for the table from the data source. Isso pode fazer com que a atualização incremental seja lenta e o processo possa ficar sem recursos no serviço do Power BI ou em um gateway de Dados Local, prejudicando a finalidade da atualização incremental.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.

Como o suporte para a dobragem de consultas é diferente para tipos distintos de fontes de dados, a verificação deve ser executada para garantir que a lógica de filtro seja incluída nas consultas que estão sendo executadas na fonte de dados.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. Na maioria dos casos, o Power BI Desktop tenta executar essa verificação para você ao definir a política de atualização incremental.In most cases, Power BI Desktop attempts to perform this verification for you when defining the incremental refresh policy. Para fontes de dados com base em SQL, como o SQL Database, o Azure Synapse, o Oracle e o Teradata, essa verificação é confiável.For SQL based data sources such as SQL Database, Azure Synapse, Oracle, and Teradata, this verification is reliable. Outras fontes de dados talvez não consigam realizar a verificação sem o rastreamento de consultas.However, other data sources may be unable to verify without tracing the queries. Se o Power BI Desktop não puder confirmar, um aviso será mostrado na caixa de diálogo de Configuração da política de atualização incremental.If Power BI Desktop is unable to confirm, a warning is shown in the Incremental refresh policy configuration dialog.

Aviso de dobragem de consultas

Se você vir esse aviso e quiser verificar se a dobragem de consultas necessária está ocorrendo, use o recurso de Diagnóstico do Power Query ou consultas de rastreamento usando uma ferramenta com suporte da fonte de dados, como o 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 a dobragem de consultas não estiver ocorrendo, verifique se a lógica do filtro está incluída na consulta que está sendo passada para a fonte de dados.If query folding is not occurring, verify the filter logic is included in the query being passed to the data source. Caso contrário, é provável que a consulta inclua uma transformação que impeça a dobragem.If not, it's likely the query includes a transformation that prevents folding.

Antes de configurar sua solução de atualização incremental, leia e entenda detalhadamente Diretrizes de dobragem de consultas no Power BI Desktop e Dobragem de consultas do Power 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. Esses artigos podem ajudar você a determinar se a fonte de dados e as consultas dão suporte à dobragem de consultas.These articles can help you determine if your data source and queries support query folding.

Outros tipos de fontes de dadosOther data source types

Usando lógica de consulta e funções de consulta personalizadas adicionais, a atualização incremental pode ser usada com outros tipos de fontes de dados desde que os filtros baseados em RangeStart e RangeEnd possam ser transmitidos em uma única consulta.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. Por exemplo, arquivos da pasta de trabalho do Excel armazenados em uma pasta, arquivos no SharePoint ou feeds do RSS.For example, Excel workbook files stored in a folder, files in SharePoint, or RSS feeds. Lembre-se que esses são cenários avançados que exigem personalização e testes adicionais além do que é descrito aqui.Keep in mind these are advanced scenarios that require additional customization and testing beyond what is described here. Verifique a seção Comunidade mais adiante neste artigo para obter sugestões de como saber mais sobre como usar a atualização incremental para cenários exclusivos como esses.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.

Limites de tempoTime limits

Independentemente da atualização incremental, os conjuntos de dados do Power BI Pro têm um limite de tempo de atualização de duas horas.Regardless of incremental refresh, Power BI Pro datasets have a refresh time limit of two hours. Para conjuntos de dados em uma capacidade Premium, o limite de tempo é de cinco horas.For datasets in a Premium capacity, the time limit is five hours. As operações de atualização são intensivas no processo e na memória.Refresh operations are process and memory intensive. Uma operação de atualização completa pode chegar a usar até o dobro da quantidade de memória exigida pelo conjunto apenas porque o serviço mantém um instantâneo do conjunto de dados na memória até que a operação de atualização seja concluída.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. As operações de atualização também podem ser intensivas de processamento, consumindo uma quantidade significativa de recursos de CPU disponíveis.Refresh operations can also be process intensive, consuming a significant amount of available CPU resources. As operações de atualização também devem contar com conexões voláteis com fontes de dados e com a capacidade desses sistemas de fonte de dados de retornar rapidamente o resultado da consulta.Refresh operations must also rely on volatile connections to data sources, and the ability of those data source systems to quickly return query output. O limite de tempo é uma proteção para limitar o consumo excessivo de seus recursos disponíveis.The time limit is a safeguard to limit over-consumption of your available resources.

Observação

Com as capacidades Premium, as operações de atualização executadas por meio do ponto de extremidade XMLA não têm limite de tempo.With Premium capacities, refresh operations performed through the XMLA endpoint have no time limit. Para saber mais, confira Atualização incremental avançada com o ponto de extremidade XMLA.To learn more, see Advanced incremental refresh with the XMLA endpoint.

Como a atualização incremental otimiza as operações de atualização no nível de partição no conjunto de dados, o consumo de recursos pode ser reduzido significativamente.Because incremental refresh optimizes refresh operations at the partition level in the dataset, resource consumption can be significantly reduced. Ao mesmo tempo, mesmo com a atualização incremental, a menos que por meio do ponto de extremidade XMLA, as operações de atualização são ligadas pelos mesmos limites de duas e cinco horas.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. Uma política de atualização incremental efetiva não apenas reduz a quantidade de dados processados com uma operação de atualização, mas também reduz a quantidade de dados históricos desnecessários armazenados em seu conjunto de dados.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.

As consultas também podem ser limitadas por um limite de tempo padrão da fonte de dados.Queries can also be limited by a default time limit for the data source. A maioria das fontes de dados relacionais permite a substituição do limite de tempo na expressão Power Query M.Most relational data sources allow overriding time limit in the Power Query M expression. Por exemplo, a expressão abaixo usa a função de acesso a dados do SQL Server para definir CommandTimeout para 2 horas.For example, the expression below uses the SQL Server data-access function to set CommandTimeout to 2 hours. Cada período definido pelos intervalos de política envia uma consulta observando a configuração de tempo limite do 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"

Para conjuntos de dados muito grandes em capacidades Premium que provavelmente conterão bilhões de linhas, a operação de atualização inicial pode ser inicializada.For very large datasets in Premium capacities that will likely contain billions of rows, the initial refresh operation can be bootstrapped. A inicialização permite ao serviço criar objetos de tabela e de partição para o conjunto de dados, mas não carregar e processar dados em qualquer uma das partições.Bootstrapping allows the service to create table and partition objects for the dataset, but not load and process data into any of the partitions. Usando SQL Server Management Studio, as partições podem ser processadas individualmente, em sequência ou em paralelo, o que pode reduzir a quantidade de dados retornados em uma única consulta, mas também ignorar o limite de tempo de cinco horas.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. Para saber mais, confira Atualização incremental avançada –Impedir tempos limite na atualização completa inicial.To learn more, see Advanced incremental refresh - Prevent timeouts on initial full refresh.

Data e hora atuaisCurrent date and time

A data e a hora atuais são baseadas na data do sistema no momento da atualização.The current date and time is based on the system date at the time of refresh. Se a atualização agendada estiver habilitada para o conjunto de dados no serviço, o fuso horário especificado será levado em conta ao determinar a data e a hora atuais.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. As atualizações individuais e agendadas por meio do serviço levam em conta o fuso horário, se disponível.Both individual and scheduled refreshes through the service observe the time zone if available. Por exemplo, uma atualização que ocorre às 20h, Hora do Pacífico (EUA e Canadá), com um fuso horário especificado determinará a data e hora atual com base na Hora do Pacífico, não GMT (que seria o dia seguinte).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). As operações de atualização não invocadas por meio do serviço, como o comando de atualização TMSL, não consideram o fuso horário das atualizações agendadas.Refresh operations not invoked through the service, such as the TMSL refresh command, will not consider the scheduled refresh time zone.

Fuso horário

Configurar a atualização incrementalConfiguring incremental refresh

Abordaremos, aqui, conceitos importantes de como configurar a atualização incremental.We'll go over important concepts of configuring incremental refresh here. Quando estiver pronto para obter instruções passo a passo mais detalhadas, confira Configurar a atualização incremental para conjuntos de dados.When you're ready for more detailed step-by-step instructions, be sure to check out Configure incremental refresh for datasets.

A configuração da atualização incremental é feita no Power BI Desktop.Configuring incremental refresh is done in Power BI Desktop. A maioria dos modelos requer apenas algumas tarefas.For most models, only a few tasks are required. No entanto, lembre-se do seguinte:However, keep the following in mind:

  • Quando publicado no serviço, você não pode publicar o mesmo modelo novamente do Power BI Desktop.When published to the service, you can't publish the same model again from Power BI Desktop. A republicação removeria todas as partições e os dados existentes que já estão no conjunto de dados.Republishing would remove any existing partitions and data already in the dataset. Se você estiver publicando em uma capacidade Premium, as alterações de esquema de metadados subsequentes poderão ser feitas com o software livre do Kit de ferramentas ALM ou usando TMSL (linguagem de script de modelo de tabela).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). Para saber mais, confira Atualização incremental avançada –Implantação somente de metadados.To learn more, see Advanced incremental refresh - Metadata-only deployment.
  • Quando publicado no serviço, você não pode baixar o conjunto de dados novamente como um PBIX para o Power BI Desktop.When published to the service, you can't download the dataset back as a PBIX to Power BI Desktop. Como os conjuntos de itens no serviço podem aumentar muito, é impraticável baixar de volta e abrir em um computador desktop típico.Because datasets in the service can grow so large, it's impractical to download back and open on a typical desktop computer.

Criar parâmetrosCreate parameters

Ao configurar a atualização incremental no Power BI Desktop, primeiro, crie dois parâmetros de data/hora do Power Query com os nomes reservados, diferenciando maiúsculas de minúsculas, RangeStart e rangeEnd.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. Esses parâmetros, definidos na caixa de diálogo Gerenciar Parâmetros no Editor do Power Query, são usados inicialmente para filtrar os dados carregados na tabela de modelo do Power BI Desktop para incluir somente as linhas com uma data/hora dentro desse período.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. Depois que o modelo é publicado no serviço, RangeStart e RangeEnd são substituídos automaticamente pelo serviço para consultar os dados definidos pelo período de atualização especificado nas configurações de política de atualização incremental.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.

Por exemplo, nossa tabela de fonte de dados FactInternetSales calcula, em média, 10 mil novas linhas por dia.For example, our FactInternetSales data source table averages 10k new rows per day. Para limitar o número de linhas inicialmente carregadas no modelo no Power BI Desktop, especificamos um período de dois dias entre 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.

Caixa de diálogo Gerenciar parâmetros

Filtrar dadosFilter data

Com os parâmetros RangeStart e RangeEnd definidos, aplique filtros de Data personalizados à coluna de data da sua tabela.With RangeStart and RangeEnd parameters defined, you then apply custom Date filters on your table's date column. Os filtros aplicados selecionam um subconjunto de dados que serão carregados no modelo quando você clicar em Aplicar.The filters you apply select a subset of data that will be loaded into the model when you click Apply.

Filtro personalizado

Usando nosso exemplo do FactInternetSales, depois de criar os filtros com base nos parâmetros e aplicar as etapas, dois dias de dados, cerca de 20 mil linhas, serão carregadas em nosso modelo.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.

Definir a políticaDefine policy

Depois que os filtros forem aplicados e um subconjunto de dados for carregado no modelo, você definirá uma política de atualização incremental para a tabela.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. Depois que o modelo é publicado no serviço, a política é usada pelo serviço para criar e gerenciar partições de tabela e executar operações de atualização.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.

Para definir a política, há três configurações necessárias e duas configurações opcionais:To define the policy, there are three required settings and two optional settings:

Definir a caixa de diálogo de política

1 – Tabela1 - Table

A caixa de listagem de Tabela usa como padrão a tabela selecionada na exibição de Dados.The Table listbox defaults to the table you select in Data view. Habilite a atualização incremental para a tabela com o controle deslizante.Enable incremental refresh for the table with the slider. Se a expressão do Power Query para a tabela não incluir um filtro com base nos parâmetros RangeStart e RangeEnd, a alternância será desabilitada.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 – Armazenar linhas no último2 - Store rows in the last

Essa configuração necessária determina o período histórico no qual as linhas com uma data/hora nesse período são incluídas no conjunto de dados, além de linhas para o período histórico incompleto atual, além das linhas no período de atualização até a data e hora atuais.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.

Por exemplo, se especificarmos cinco anos, nossa tabela armazenará os últimos cinco anos de dados históricos com partições por ano, além de linhas para o ano atual com partições por trimestre, mês ou dia, até e incluindo o período de atualização.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.

Para conjuntos de dados em capacidades Premium, as partições históricas retroativas podem ser atualizadas seletivamente em uma granularidade determinada por essa configuração.For datasets in Premium capacities, backdated historical partitions can be selectively refreshed at a granularity determined by this setting. Para saber mais, confira Atualização incremental avançada –Partições.To learn more, see Advanced incremental refresh - Partitions.

3 – Atualizar linhas no último3 - Refresh rows in the last

Essa configuração necessária determina o período de atualização incremental no qual todas as linhas com uma data/hora nesse período são incluídas na(s) partição(ões) de atualização e atualizadas com cada operação de atualização.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.

Por exemplo, se especificarmos um período de atualização de 10 dias, com cada operação de atualização, o serviço substituirá os parâmetros RangeStart e RangeEnd para criar uma consulta de linhas com uma data/hora dentro de um período de dez dias, começando e terminando de acordo com a data e hora atuais.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. As linhas com uma data/hora nos últimos 10 dias até a hora da operação de atualização atual são atualizadas.Rows with a date/time in the last 10 days up to the current refresh operation time are refreshed. Com esse tipo de política, nossa tabela de conjunto de dados FactInternetSales no serviço, que calcula a média de 10.000 novas linhas por dia, atualizará aproximadamente 100 mil linhas com cada operação de atualização.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.

Especifique um período que inclua apenas o número mínimo de linhas necessárias para garantir um relatório preciso.Be sure to specify a period that includes only the minimum number of rows required to ensure accurate reporting. Caso esteja definindo políticas para mais de uma tabela, os mesmos parâmetros RangeStart e RangeEnd deverão ser usados mesmo que diferentes períodos de armazenamento e de atualização sejam definidos para cada tabela.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 – Detectar alterações nos dados4 - Detect data changes

Essa configuração é opcional.This setting is optional. A atualização incremental de dez dias é muito mais eficiente do que uma atualização completa de cinco anos.Incremental refresh of 10 days is more efficient than a full refresh of five years. No entanto, a atualização pode ser ainda mais seletiva.However, refresh can be even more selective. Com a opção Detectar alterações nos dados, será possível selecionar uma coluna de data/hora usada para identificar e atualizar somente os dias em que os dados foram alterados.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. Isso pressupõe que uma coluna dessa exista na fonte de dados, normalmente para fins de auditoria.This assumes such a column exists in the data source, which is typically for auditing purposes. Essa não deve ser a mesma coluna usada para particionar os dados com os parâmetros RangeStart e RangeEnd.This should not be the same column used to partition the data with the RangeStart and RangeEnd parameters. O valor máximo dessa coluna é avaliado para cada um dos períodos no intervalo incremental.The maximum value of this column is evaluated for each of the periods in the incremental range. Se ele não foi alterado desde a última atualização, não é necessário atualizar o período.If it hasn't changed since the last refresh, there's no need to refresh the period. No exemplo, isso pode potencialmente reduzir ainda mais os dias atualizados de forma incremental de dez para cerca de dois.In this example, this could potentially further reduce the days incrementally refreshed from 10 to around two.

O projeto atual requer que a coluna que detecta alterações nos dados seja persistente e fique armazenada em cache na memória.The current design requires that the column to detect data changes is persisted and cached into memory. As técnicas a seguir podem ser usadas para reduzir a cardinalidade e o consumo de memória:The following techniques can be used to reduce cardinality and memory consumption:

  • Persistir apenas o valor máximo dessa coluna no momento da atualização, talvez usando uma função do Power Query.Persist only the maximum value of the column at time of refresh, perhaps by using a Power Query function.
  • Reduzir a precisão a um nível aceitável considerando seus requisitos de frequência de atualização.Reduce the precision to an acceptable level, given your refresh-frequency requirements.
  • Definir uma consulta personalizada para detectar alterações de dados usando o ponto de extremidade XMLA e evitar persistir o valor da coluna inteiramente.Define a custom query for detecting data changes by using the XMLA endpoint and avoid persisting the column value altogether.

Em alguns casos, habilitar a opção Detectar alterações de dados pode ser aprimorado ainda mais.In some cases, enabling the Detect data changes option can be further enhanced. Por exemplo, talvez você queira evitar manter a coluna da última atualização no cache da memória ou permitir cenários em que uma tabela de configuração/instrução é preparada por processos ETL para sinalizar apenas as partições que precisam ser atualizadas.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. Em casos como esses, para capacidades Premium, use o TMSL (Linguagem de Script de Modelo de Tabela) e/ou o TOM (Modelo de Objeto de Tabela) para substituir o comportamento de detecção de alterações de dados.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. Para saber mais, confira Atualização incremental avançada –Consultas personalizadas para detectar alterações de dados.To learn more, see Advanced incremental refresh - Custom queries for detect data changes.

5 – Atualizar somente dias concluídos5 - Only refresh complete days

Essa configuração é opcional.This setting is optional. Digamos que sua atualização esteja agendada para ser executada às 4h, todas as manhãs.Let's say your refresh is scheduled to run at 4:00 AM every morning. Se novas linhas de dados aparecerem na tabela de fonte de dados durante essas quatro horas, entre a meia-noite e as 4:00, é possível que você não queira considerá-las.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. Algumas métricas de negócios, como barris por dia no setor de petróleo e gás, não fazem sentido com dias parciais.Some business metrics like barrels per day in the oil and gas industry make no sense with partial days. Outro exemplo é a atualização de dados de um sistema financeiro no qual os dados do mês anterior são aprovados no dia 12 do mês.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. Você pode definir o período de atualização para um mês e agendar a atualização para ser executada no dia 12 do mês.You could set the refresh period to 1 month and schedule the refresh to run on the 12th day of the month. Com essa opção selecionada, os dados de janeiro seriam atualizados em 12 de fevereiro.With this option selected, it would, for example, refresh January data on February 12.

Lembre-se, a menos que a atualização agendada esteja configurada para um fuso horário não UTC, as operações de atualização no serviço serão executadas no horário UTC, o que pode determinar a data de efetivação e os períodos completos.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.

PublicaçãoPublish

Depois de configurar a política de atualização incremental, publique o modelo no serviço.After configuring the incremental refresh policy, you publish the model to the service. Quando a publicação for concluída, você poderá executar a operação de atualização inicial no conjunto de dados.When publishing is complete, you can perform the initial refresh operation on the dataset.

Para conjuntos de dados publicados em workspaces atribuídos a capacidades Premium, se você considerar que o conjunto de dados aumentará além de 1 GB ou mais, você poderá melhorar o desempenho da operação de atualização e garantir que o conjunto de dados não atinja os limites máximo de tamanho habilitando o formato de armazenamento de conjunto de dados grande antes de executar a primeira operação de atualização no serviço.For 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. Para saber mais, confira Conjuntos de dados grandes no Power BI Premium.To learn more, see Large datasets in Power BI Premium.

Importante

Após a publicação no serviço, não será possível baixar o PBIX novamente.After being published to the service, you cannot download the PBIX back.

AtualizarRefresh

Após a publicação no serviço, execute uma operação de atualização inicial no conjunto de dados.After publishing to the service, you perform an initial refresh operation on the dataset. Isso deve ser uma atualização individual (manual) para que você possa monitorar o progresso.This should be an individual (manual) refresh so you can monitor progress. A operação de atualização inicial pode demorar algum tempo para ser concluída.The initial refresh operation can take quite a while to complete. As partições devem ser criadas e os dados de histórico carregados, e os objetos como relações e hierarquias são criados ou recriados e os objetos calculados são recalculados.Partitions must be created, historical data loaded, objects such as relationships and hierarchies are built or rebuilt, and calculated objects are recalculated.

As operações de atualização subsequentes, individuais ou agendadas são muito mais rápidas porque apenas as partições de atualização incrementais são atualizadas.Subsequent refresh operations, either individual or scheduled are much faster because only the incremental refresh partition(s) is refreshed. Outras operações de processamento ainda devem ocorrer, como mesclar e recalcular partições, contudo, em geral, isso requer apenas uma pequena fração de tempo em comparação com a atualização inicial.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.

Atualização incremental avançadaAdvanced incremental refresh

Se o conjunto de informações estiver em uma capacidade Premium com o ponto de extremidade XMLA habilitado, a atualização incremental poderá ser estendida para cenários avançados.If your dataset is on a Premium capacity with the XMLA endpoint enabled, incremental refresh can be further extended for advanced scenarios. Por exemplo, você pode usar o SQL Server Management Studio para exibir e gerenciar partições, inicializar a operação de atualização inicial ou atualizar as partições históricas retroativas.For example, you can use SQL Server Management Studio to view and manage partitions, bootstrap the initial refresh operation, or refresh backdated historical partitions. Para saber mais, confira Atualização incremental avançada com o ponto de extremidade XMLA.To learn more, see Advanced incremental refresh with the XMLA endpoint.

ComunidadeCommunity

O Power BI tem uma comunidade vibrante em que MVPs, profissionais de BI e colegas compartilham conhecimentos em grupos de discussão, vídeos, blogs e muito mais.Power BI has a vibrant community where MVPs, BI pros, and peers share expertise in discussion groups, videos, blogs and more. Ao aprender sobre a atualização incremental, confira estes recursos adicionais:When learning about incremental refresh, be sure to check out these additional resources:

Próximas etapasNext steps

Configurar a atualização incremental para conjuntos de dadosConfigure incremental refresh for datasets
Atualização incremental avançada com o ponto de extremidade XMLAAdvanced incremental refresh with the XMLA endpoint
Solucionar problemas de atualização incrementalTroubleshoot incremental refresh
Atualização incremental para fluxos de dadosIncremental refresh for dataflows