Atualização incremental no Power BIIncremental refresh in Power BI

A atualização incremental permite conjuntos de dados muito grandes no Power BI com os seguintes benefícios:Incremental refresh enables very large datasets in Power BI with the following benefits:

  • As atualizações são mais rápidas – somente os dados alterados precisam ser atualizados.Refreshes are faster - Only data that has changed needs to be refreshed. Por exemplo, a atualização somente dos últimos cinco dias de um conjunto de dados de dez anos.For example, refresh only the last five days of a ten-year dataset.
  • As atualizações são mais confiáveis – não é mais necessário manter conexões longas com sistemas de origem voláteis.Refreshes are more reliable - It's no longer necessary to maintain long-running connections to volatile source systems.
  • 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.Resource consumption is reduced - Less data to refresh reduces overall consumption of memory and other resources.

Observação

A atualização incremental agora está disponível para as assinaturas e os conjuntos do Power BI Pro, Premium e Shared.Incremental refresh is now available to Power BI Pro, Premium, and shared subscriptions and datasets.

Configurar a atualização incrementalConfigure incremental refresh

As políticas de atualização incremental são definidas no Power BI Desktop e aplicadas quando publicadas no serviço do Power BI.Incremental refresh policies are defined in Power BI Desktop and applied when published to the Power BI service.

Filtrar conjuntos de dados grandes no Power BI DesktopFilter large datasets in Power BI Desktop

Os conjuntos de dados grandes, com potencialmente bilhões de linhas, podem não caber em um modelo do Power BI Desktop porque o arquivo PBIX é limitado pelos recursos da memória disponíveis no computador desktop.Large datasets with potentially billions of rows may not fit into a Power BI Desktop model because the PBIX file is limited by the memory resources available on the desktop computer. Portanto, esses conjuntos de dados normalmente são filtrados após a importação.Such datasets are therefore commonly filtered upon import. Esse tipo de filtragem é aplicável se a atualização incremental é usada ou não.This type of filtering applies whether using incremental refresh or not. Para a atualização incremental, realize a filtragem usando parâmetros de data/hora do Power Query.For incremental refresh, you filter by using Power Query date/time parameters.

Parâmetros RangeStart e RangeEndRangeStart and RangeEnd parameters

Para a atualização incremental, os conjuntos de dados 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.For incremental refresh, datasets are filtered by using Power Query date/time parameters with the reserved, case-sensitive names RangeStart and RangeEnd. Esses parâmetros são usados para filtrar os dados importados para o Power BI Desktop e também para particionar dinamicamente os dados em intervalos, depois de publicados no serviço do Power BI.These parameters are used to filter the data imported into Power BI Desktop, and also to dynamically partition the data into ranges once published to the Power BI service. Os valores de parâmetro são substituídos pelo serviço para filtragem de cada partição.The parameter values are substituted by the service to filter for each partition. Não é necessário defini-los nas configurações do conjunto de dados no serviço.There's no need to set them in dataset settings in the service. Depois de publicado, os valores de parâmetro serão substituídos automaticamente pelo serviço do Power BI.Once published, the parameter values are overridden automatically by the Power BI service.

Para definir os parâmetros com valores padrão, no Editor do Power Query, selecione Gerenciar Parâmetros.To define the parameters with default values, in the Power Query Editor, select Manage Parameters.

Gerenciar parâmetros

Com os parâmetros definidos, em seguida, você poderá aplicar o filtro selecionando a opção de menu Filtro Personalizado para uma coluna.With the parameters defined, you can then apply the filter by selecting the Custom Filter menu option for a column.

Filtro personalizado

Verifique se as linhas são filtradas em que o valor da coluna é após ou igual a RangeStart e antes de RangeEnd.Ensure rows are filtered where the column value is after or equal to RangeStart and before RangeEnd. Outras combinações de filtro podem resultar em uma contagem dupla de linhas.Other filter combinations may result in double counting of rows.

Filtrar linhas

Importante

Verifique se as consultas têm um sinal de igual a (=) em RangeStart ou em RangeEnd, mas não em ambos.Verify queries have an equal to (=) on either RangeStart or RangeEnd, but not both. Se o sinal de igual a (=) existir em ambos os parâmetros, uma linha poderá atender às condições para duas partições, o que poderá levar a dados duplicados no modelo.If the equal to (=) exists on both parameters, a row could satisfy the conditions for two partitions, which could lead to duplicate data in the model. Por exemplo,For example,
#"Filtered Rows" = Table.SelectRows(dbo_Fact, each [OrderDate] >= RangeStart e [OrderDate] <= RangeEnd) pode resultar em dados duplicados.#"Filtered Rows" = Table.SelectRows(dbo_Fact, each [OrderDate] >= RangeStart and [OrderDate] <= RangeEnd) could result in duplicate data.

Dica

Embora o tipo de dados dos parâmetros precise ser data/hora, é possível convertê-los para que correspondam aos requisitos da fonte de dados.While the data type of the parameters must be date/time, it's possible to convert them to match the requirements of the datasource. Por exemplo, a função do Power Query a seguir converte um valor de data/hora para se parecer com uma chave alternativa de inteiro no formato aaaammdd, que é comum para data warehouses.For example, the following Power Query function converts a date/time value to resemble an integer surrogate key of the form yyyymmdd, which is common for data warehouses. A função pode ser chamada pela etapa de filtro.The function can be called by the filter step.

(x as datetime) => Date.Year(x)*10000 + Date.Month(x)*100 + Date.Day(x)

Selecione Fechar e Aplicar no Editor Power Query.Select Close and Apply from the Power Query Editor. Um subconjunto do conjunto de dados estará presente no Power BI Desktop.You should have a subset of the dataset in Power BI Desktop.

Filtrar as atualizações da coluna de dataFilter date column updates

O filtro na coluna de data é usado para particionar dinamicamente os dados em intervalos no serviço do Power BI.The filter on the date column is used to dynamically partition the data into ranges in the Power BI service. A atualização incremental não foi projetada para dar suporte a casos em que a coluna de data filtrada é atualizada no sistema de origem.Incremental refresh isn't designed to support cases where the filtered date column is updated in the source system. Uma atualização é interpretada como uma inserção e uma exclusão, não como uma atualização real.An update is interpreted as an insertion and a deletion, not an actual update. Se a exclusão ocorrer no intervalo histórico, e não no intervalo incremental, ela não será selecionada.If the deletion occurs in the historical range and not the incremental range, it won't get picked up. Isso pode causar falhas de atualização de dados devido a conflitos de chave de partição.This can cause data refresh failures due to partition-key conflicts.

Partição de consultaQuery folding

É importante que os filtros de partição sejam enviados por push para o sistema de origem quando as consultas forem enviadas para operações de atualização.It's important the partition filters are pushed to the source system when queries are submitted for refresh operations. A aplicação da filtragem significa que a fonte de dados deve dar suporte à partição de consulta.To push filtering down means the datasource should support query folding. 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. No entanto, fontes de dados como arquivos simples, blobs e feeds da Web normalmente não fazem isso.However, data sources like flat files, blobs, and web feeds typically do not. Nos casos em que o filtro não é compatível com o back-end da fonte de dados, ele não pode ser aplicado.In cases where the filter is not supported by the datasource back-end, it cannot be pushed down. Nesses casos, o mecanismo de mashup compensa e aplica o filtro localmente, o que pode exigir a recuperação do conjunto de dados completo da fonte de dados.In such cases, the mashup engine compensates and applies the filter locally, which may require retrieving the full dataset from the data source. Isso pode fazer com que a atualização incremental seja muito lenta e o processo pode ficar sem recursos no serviço do Power BI ou no gateway de dados local se usado.This can cause incremental refresh to be very slow, and the process can run out of resources either in the Power BI service or in the on-premises data gateway if used.

Considerando os vários níveis de suporte da partição de consulta para cada fonte de dados, é recomendável realizar a verificação para garantir que a lógica do filtro seja incluída nas consultas de origem.Given the various levels of query folding support for each datasource, it's recommended that verification is performed to ensure the filter logic is included in the source queries. Para facilitar essa tarefa, o Power BI Desktop tenta realizar essa verificação para você.To make this easier, Power BI Desktop attempts to perform this verification for you. Se não for possível realizar a verificação, um aviso será exibido na caixa de diálogo da atualização incremental ao definir a política de atualização incremental.If unable to verify, a warning is displayed in the incremental refresh dialog when defining the incremental refresh policy. Fontes de dados baseadas em SQL, como Oracle e Teradata, podem depender desse aviso.SQL based data sources such as SQL, Oracle, and Teradata can rely on this warning. Outras fontes de dados talvez não consigam realizar a verificação sem o rastreamento de consultas.Other data sources may be unable to verify without tracing queries. Se não for possível que o Power BI Desktop confirme isso, o aviso a seguir será exibido.If Power BI Desktop is unable to confirm, the following warning is displayed. Se você vir esse aviso e desejar verificar se a dobragem de consultas necessária está ocorrendo, poderá usar o recurso Diagnóstico de Consulta ou as consultas de rastreamento recebidas pelo banco de dados de origem.If you see this warning and want to check that the necessary query folding is occurring, you can use the Query Diagnostics feature, or trace queries received by the source database.

Partição de consulta

Definir a política de atualizaçãoDefine the refresh policy

A atualização incremental está disponível no menu de contexto das tabelas, exceto para modelos de conexão dinâmica.Incremental refresh is available on the context menu for tables, except for Live Connection models.

Política de atualização

Caixa de diálogo de atualização incrementalIncremental refresh dialog

A caixa de diálogo de atualização incremental é exibida.The incremental refresh dialog is displayed. Use o botão de alternância para habilitar a caixa de diálogo.Use the toggle to enable the dialog.

Detalhes da atualização

Observação

Se a expressão do Power Query para a tabela não se referir aos parâmetros com nomes reservados, o botão de alternância estará desabilitado.If the Power Query expression for the table doesn't refer to the parameters with reserved names, the toggle is disabled.

O texto do cabeçalho explica o seguinte:The header text explains the following:

  • As políticas de atualização são definidas no Power BI Desktop e são aplicadas por operações de atualização no serviço.Refresh policies are defined in Power BI Desktop, and they are applied by refresh operations in the service.

  • Se você puder baixar o arquivo PBIX que contém uma política de atualização incremental no serviço do Power BI, ele não poderá ser aberto no Power BI Desktop.If you're able to download the PBIX file containing an incremental-refresh policy from the Power BI service, it cannot be opened in Power BI Desktop. Embora isso possa ter suporte no futuro, tenha em mente que esses conjuntos de dados podem ficar tão grandes a ponto de não poderem ser baixados e abertos em um computador desktop comum.While this may be supported in the future, keep in mind these datasets can grow to be so large that they are impractical to download and open on a typical desktop computer.

Intervalos de atualizaçãoRefresh ranges

O exemplo a seguir define uma política de atualização para armazenar dados por cinco anos civis completos, mais os dados para o ano atual até a data atual, e atualizar de forma incremental dez dias de dados.The following example defines a refresh policy to store data for five full calendar years plus data for the current year up to the current date, and incrementally refresh ten days of data. A primeira operação de atualização carrega os dados históricos.The first refresh operation loads historical data. As atualizações seguintes são incrementais e (se agendadas para serem executadas diariamente) realizam as seguintes operações:Subsequent refreshes are incremental, and (if scheduled to run daily) perform the following operations:

  • Adicione um novo dia de dados.Add a new day of data.

  • Atualizar dez dias até a data atual.Refresh ten days up to the current date.

  • Remover os anos civis com mais de cinco anos antes da data atual.Remove calendar years that are older than five years prior to the current date. Por exemplo, se a data atual for 1º de janeiro de 2019, o ano de 2013 será removido.For example, if the current date is January 1 2019, the year 2013 is removed.

A primeira atualização no serviço do Power BI pode demorar mais para importar todos os cinco anos civis.The first refresh in the Power BI service may take longer to import all five full calendar years. As próximas atualizações podem ser concluídas em uma fração desse tempo.Subsequent refreshes may be finished in a fraction of the time.

Intervalos de atualização

Data atualCurrent date

A data atual é baseada na data do sistema no momento da atualização.The current date 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 do Power BI, o fuso horário especificado será levado em conta ao determinar a data atual.If scheduled refresh is enabled for the dataset in the Power BI service, the specified time zone will be taken into account when determining the current date. As atualizações invocadas e agendadas manualmente observam o fuso horário, se disponível.Both manually invoked and scheduled refreshes observe the time zone if available. Por exemplo, uma atualização que ocorre às 20h, Hora do Pacífico (EUA e Canadá), com o fuso horário especificado determinará a data 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 time zone specified will determine the current date based on Pacific Time, not GMT (which would otherwise be the next day).

Fuso horário

Observação

Talvez você precise apenas da definição desses intervalos e, nesse caso, poderá ir diretamente para a etapa de publicação abaixo.Definition of these ranges might be all you need, in which case you can go straight to the publishing step below. As listas suspensas adicionais destinam-se aos recursos avançados.The additional dropdowns are for advanced features.

Opções avançadas de políticaAdvanced policy options

Detectar alterações nos dadosDetect data changes

A atualização incremental de dez dias é muito mais eficiente do que a atualização completa de cinco anos.Incremental refresh of ten days is more efficient than full refresh of five years. No entanto, é possível obter um resultado ainda melhor.However, it's possible to do even better. Se você marcar a caixa de seleçã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.If you select the Detect data changes checkbox, you can select a date/time column used to identify and refresh only the days where the data has changed. Isso pressupõe que uma coluna dessa exista no sistema de origem, normalmente para fins de auditoria.This assumes such a column exists in the source system, which is typically for auditing purposes. Essa não deve ser a mesma coluna usada para particionar os dados com os parâmetros RangeStart/RangeEnd.This should not be the same column used to partition the data with the RangeStart/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 has not changed since the last refresh, there is no need to refresh the period. No exemplo, isso pode reduzir ainda mais os dias atualizados de forma incremental de dez para cerca de dois.In the example, this could further reduce the days incrementally refreshed from ten to around two.

Detectar alterações

Dica

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. É interessante considerar uma das técnicas a seguir para reduzir a cardinalidade e o consumo de memória.You may want to consider one of the following techniques to reduce cardinality and memory consumption.

Persista 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 this column at time of refresh, perhaps using a Power Query function.

Reduza a precisão a um nível aceitável considerando seus requisitos de frequência de atualização.Reduce the precision to a level that is acceptable given your refresh-frequency requirements.

Defina uma consulta personalizada para detectar alterações de dados usando o ponto de extremidade XMLA e evite manter o valor da coluna inteiramente.Define a custom query for detecting data changes using the XMLA endpoint and avoid persisting the column value altogether. Veja as consultas personalizadas para detectar alterações nos dados abaixo para obter mais informações.See custom queries for detect data changes below for more information.

Atualizar somente períodos concluídosOnly refresh complete periods

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 os dados aparecerem no sistema de origem durante essas 4 horas, não será necessário considerá-los.If data appears in the source system during those 4 hours, you may not want to account for it. Algumas métricas de negócios, como barris por dia no setor de petróleo e gás, não fazem sentido com partes de dias.Some business metrics -- such as 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 intervalo incremental para um mês e agendar a atualização para ser executada no dia 12 do mês.You could set the incremental range to 1 month and schedule the refresh to run on the 12th day of the month. Com essa opção marcada, os dados de janeiro seriam atualizados em 12 de fevereiro.With this option checked, it would for example refresh January data on February 12th.

Períodos concluídos

Observação

As operações de atualização no serviço são executadas em hora UTC.Refresh operations in the service run under UTC time. Assim, é possível determinar a data de efetivação e afetar períodos concluídos.This can determine the effective date and affect complete periods. Estamos planejando adicionar a capacidade de substituir a data de efetivação de uma operação de atualização.We plan to add the ability to override the effective date for a refresh operation.

Publicar no serviçoPublish to the service

Agora você pode atualizar o modelo.You can now refresh the model. A primeira atualização pode demorar mais para importar os dados históricos.The first refresh may take longer to import the historical data. As próximas atualizações poderão ser muito mais rápidas porque elas usarão a atualização incremental.Subsequent refreshes can be much quicker because they use incremental refresh.

Tempos limite de consultaQuery timeouts

O artigo Solucionando problemas de atualização explica que as operações de atualização no serviço do Power BI estão sujeitas a tempos limite.The troubleshooting refresh article explains that refresh operations in the Power BI service are subject to timeouts. As consultas também podem ser limitadas pelo tempo limite padrão da fonte de dados.Queries can also be limited by the default timeout for the data source. A maioria das fontes relacionais permitem a substituição de tempos limite na expressão M.Most relational sources allow overriding timeouts in the M expression. Por exemplo, a expressão abaixo usa a função de acesso a dados do SQL Server para defini-lo para 2 horas.For example, the expression below uses the SQL Server data-access function to set it 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"

Benefícios do ponto de extremidade XMLA para atualização incrementalXMLA endpoint benefits for incremental refresh

O ponto de extremidade XMLA para conjuntos de valores em uma capacidade Premium pode ser habilitado para operações de leitura/gravação, o que pode fornecer benefícios consideráveis para a atualização incremental.The XMLA endpoint for datasets in a Premium capacity can be enabled for read-write operations, which can provide considerable benefits for incremental refresh. As operações de atualização feitas por meio do ponto de extremidade XMLA não têm um limite de 48 atualizações por dia, e o tempo limite de atualização planejada não é imposto, o que pode ser útil em cenários de atualização incremental.Refresh operations through the XMLA endpoint are not limited to 48 refreshes per day, and the scheduled refresh timeout is not imposed, which can be useful in incremental refresh scenarios.

Gerenciamento de atualizações com o SSMS (SQL Server Management Studio)Refresh management with SQL Server Management Studio (SSMS)

Com o ponto de extremidade XMLA habilitado para leitura/gravação, o SSMS pode ser usado para exibir e gerenciar partições geradas pelo aplicativo de políticas de atualização incremental.With XMLA endpoint read-write enabled, SSMS can be used to view and manage partitions generated by the application of incremental refresh policies.

Partições no SSMS

Atualizar partições históricasRefresh historical partitions

Isso permite, por exemplo, atualizar uma partição histórica específica que não esteja no intervalo incremental de modo a executar uma atualização retroativa sem precisar atualizar todos os dados.This allows, for example, to refresh a specific historical partition not in the incremental range to perform a back-dated update without having to refresh all historical data.

Substituir comportamento de atualização incrementalOverride incremental refresh behavior

Com o SSMS, você também tem mais controle sobre como invocar atualizações incrementais usando a TMSL (Linguagem de Scripts do Modelo Tabular) e o TOM (Modelo de Objeto Tabular).With SSMS, you also have more control over how to invoke incremental refreshes from using the Tabular Model Scripting Language (TMSL) and the Tabular Object Model (TOM). Por exemplo, no Pesquisador de Objetos do SSMS, clique com o botão direito do mouse sobre uma tabela e selecione no menu a opção Processar Tabela.For example, in SSMS, in Object Explorer, right-click a table and then select the Process Table menu option. Em seguida, clique no botão Script para gerar um comando de atualização de TMSL.Then click the Script button to generate a TMSL refresh command.

Botão de script na caixa de diálogo Processar Tabela

Os parâmetros a seguir podem ser inseridos no comando de atualização de TMSL para substituir o comportamento de atualização incremental padrão.The following parameters can be inserted into the TMSL refresh command to override the default incremental refresh behavior.

  • applyRefreshPolicy – se uma tabela tiver uma política de atualização incremental definida, applyRefreshPolicy determinará se a política será aplicada ou não.applyRefreshPolicy – If a table has an incremental refresh policy defined, applyRefreshPolicy will determine if the policy is applied or not. Se a política não for aplicada, uma operação de processo completa deixará as definições de partição inalteradas e todas as partições na tabela serão totalmente atualizadas.If the policy is not applied, a process full operation will leave partition definitions unchanged and all partitions in the table will be fully refreshed. O valor padrão é true.Default value is true.

  • effectiveDate – se uma política de atualização incremental estiver sendo aplicada, ela precisará saber a data atual para determinar os intervalos de janela sem interrupção para o intervalo histórico e o intervalo incremental.effectiveDate – If an incremental refresh policy is being applied, it needs to know the current date to determine rolling window ranges for the historical range and the incremental range. O parâmetro effectiveDate permite que você substitua a data atual.The effectiveDate parameter allows you to override the current date. Isso é útil para testes, demonstrações e cenários de negócios em que os dados são atualizados incrementalmente em datas passados ou futuras (por exemplo, orçamentos futuros).This is useful for testing, demos, and business scenarios where data is incrementally refreshed up to a date in the past or the future (for example, budgets in the future). O valor padrão é o da data atual.The default value is the current date.

{ 
  "refresh": {
    "type": "full",

    "applyRefreshPolicy": true,
    "effectiveDate": "12/31/2013",

    "objects": [
      {
        "database": "IR_AdventureWorks", 
        "table": "FactInternetSales" 
      }
    ]
  }
}

Personalizar consultas para detectar alterações de dadosCustom queries for detect data changes

Você pode usar TMSL e/ou TOM para substituir o comportamento de alterações de dados detectados.You can use TMSL and/or TOM to override the detected data changes behavior. Isso não só pode ser usado para evitar manter a coluna da última atualização no cache da memória, como também permite cenários em que uma tabela de configuração/instrução é preparada por processos ETL com o objetivo de sinalizar apenas as partições que precisam ser atualizadas.Not only can this be used to avoid persisting the last-update column in the in-memory cache, it can enable scenarios where a configuration/instruction table is prepared by ETL processes for the purpose of flagging only the partitions that need to be refreshed. Isso permite criar um processo de atualização incremental mais eficiente, onde apenas os períodos necessários são atualizados, independentemente do tempo durante o qual as atualizações de dados ocorreram.This can create a more efficient incremental refresh process where only the required periods are refreshed, no matter how long ago data updates took place.

O pollingExpression deve ser uma expressão M leve ou nome de outra consulta M.The pollingExpression is intended to be a lightweight M expression or name of another M query. Ele deve retornar um valor escalar e ser executado em cada partição.It must return a scalar value and will be executed for each partition. Se o valor retornado for diferente do apresentado na última atualização incremental, a partição será sinalizada para processamento completo.If the value returned is different to what it was the last time an incremental refresh occurred, the partition is flagged for full processing.

O exemplo a seguir abrange todos os 120 meses no intervalo histórico para alterações retroativas.The following example covers all 120 months in the historical range for backdated changes. Especificar 120 meses em vez de 10 anos pode significar uma compactação de dados não eficiente, mas que evita a necessidade de atualizar o histórico de um ano inteiro, o que seria mais caro, quando fazer a alteração retroativa de um mês é suficiente.Specifying 120 months instead of 10 years means data compression may not be quite as efficient, but avoids having to refresh a whole historical year, which would be more expensive when a month would suffice for a backdated change.

"refreshPolicy": {
    "policyType": "basic",
    "rollingWindowGranularity": "month",
    "rollingWindowPeriods": 120,
    "incrementalGranularity": "month",
    "incrementalPeriods": 120,
    "pollingExpression": "<M expression or name of custom polling query>",
    "sourceExpression": [
    "let ..."
    ]
}

Implantação somente de metadadosMetadata-only deployment

Para publicar uma nova versão de um arquivo PBIX por meio do Power BI Desktop para um espaço de trabalho no serviço Power BI, caso um conjunto de dados com o mesmo nome já exista, será necessário a substituir o conjunto de dados existente.When publishing a new version of a PBIX file from Power BI Desktop to a workspace in the Power BI service, if a dataset with the same name already exists, you are prompted to replace the existing dataset.

Substituir prompt do conjunto de dados

Em alguns casos, talvez não convenha substituir o conjunto de dados, principalmente pela atualização incremental.In some cases you may not want to replace the dataset, especially with incremental refresh. O conjunto de dados no Power BI Desktop pode ser muito menor que o de serviços.The dataset in Power BI Desktop could be much smaller than the one in the service. Se o conjunto de dados de serviços tiver uma política de atualização incremental aplicada, poderá haver vários anos de dados históricos que serão perdidos caso o conjunto de dados seja substituído.If the dataset in the service has an incremental refresh policy applied, it may have several years of historical data that will be lost if the dataset is replaced. Atualizar todos os dados históricos pode levar horas e resultar em tempo de inatividade do sistema para os usuários.Refreshing all the historical data could take hours and result in system downtime for users.

Em vez disso, é melhor executar uma implantação somente de metadados.Instead, it's better to perform a metadata-only deployment. Isso permite a implantação de novos objetos sem perder os dados históricos.This allows deployment of new objects without losing the historical data. Por exemplo, se você adicionou algumas medidas, poderá implantá-las independentemente, sem precisar atualizar os dados, economizando muito tempo.For example, if you have added a few measures, you can deploy only the new measures without needing to refresh the data, saving a lot of time.

Quando configurado para leitura e gravação, o ponto de extremidade XMLA fornece compatibilidade com as ferramentas que fazem isso acontecer.When configured for read-write, the XMLA endpoint provides compatibility with tools that make this happen. Por exemplo, o kit de ferramentas ALM é um recurso de diferença de esquema para conjuntos de dados do Power BI e pode ser usado para executar apenas a implantação de metadados.For example, the ALM Toolkit is a schema diff tool for Power BI datasets and can be used to perform deployment of metadata only.

Baixe e instale a versão mais recente do kit de ferramentas ALM por meio do Repositório Git do Analysis Services.Download and install the latest version of the ALM Toolkit from the Analysis Services Git repo. Links de documentação e informações sobre suporte estão disponíveis na faixa de opções Ajuda.Documentation links and information on supportability are available via the Help ribbon. Para executar uma implantação somente de metadados, faça uma comparação e selecione a instância do Power BI Desktop em execução como fonte e o conjunto de dados existente no serviço como destino.To perform a metadata only deployment, perform a comparison and select the running Power BI Desktop instance as the source, and the existing dataset in the service as the target. Observe as diferenças exibidas e ignore a atualização da tabela com partições de atualização incremental, ou use a caixa de diálogo Opções para reter partições para atualizações da tabela.Consider the differences displayed and skip the update of the table with incremental refresh partitions, or use the Options dialog to retain partitions for table updates. Valide a seleção para garantir a integridade do modelo de destino e realize a atualização.Validate the selection to ensure the integrity of the target model and then update.

Kit de ferramentas ALM

Consulte tambémSee also

Conectividade do conjunto de dados com o ponto de extremidade XMLA Dataset connectivity with the XMLA endpoint
Solucionar problemas de atualizaçãoTroubleshooting refresh scenarios