Solucionar problemas de atualização incrementalTroubleshoot incremental refresh

Como há duas fases ao implementar uma solução de atualização incremental, a primeira configuração de parâmetros, a filtragem e a definição de uma política no Power BI Desktop, e a segunda é a operação inicial de atualização do conjunto de dados e as atualizações subsequentes no serviço, veremos a solução de problemas separadamente para cada uma dessas fases.Because there are two phases when implementing an incremental refresh solution, the first being configuring parameters, filtering, and defining a policy in Power BI Desktop, and the second being the initial dataset refresh operation and subsequent refreshes in the service, we will look at troubleshooting separately for each of these phases.

Antes de solucionar problemas de atualização incremental, examine a atualização incremental para conjuntos de dados e informações passo a passo em Configurar a atualização incremental.Before troubleshooting incremental refresh, be sure to review Incremental refresh for datasets and step-by-step information in Configure incremental refresh.

Configurar no Power BI DesktopConfiguring in Power BI Desktop

A maioria dos problemas que ocorrem ao configurar a atualização incremental tem a ver com a dobragem de consultas.Most problems that occur when configuring incremental refresh have to do with query folding. Conforme descrito em Atualização incremental para conjuntos de dados visão geral-fontes de dado com suporte, sua fonte de dados deve dar suporte a dobragem de consultas.As described in Incremental refresh for datasets overview - Supported data sources, your data source must support query folding.

Problema: o carregamento de dados leva muito tempoProblem: Loading data takes too long

No Editor do Power Query, depois de clicar em Aplicar, o carregamento de dados demanda uma quantidade excessiva de tempo e de recursos do computador.In Power Query Editor, after clicking Apply, loading data takes an excessive amount of time and computer resources. Há várias causas possíveis:There are several potential causes:

Causa: incompatibilidade de tipo de dadosCause: Data type mismatch

Isso pode ser causado por uma incompatibilidade de tipo de dados, na qual data/hora é o tipo de dados necessário para os parâmetros RangeStart e RangeEnd, mas a coluna de data da tabela na qual os filtros são aplicados não é um tipo de dado de data/hora ou vice-versa.This can be caused by a data type mismatch where Date/Time is the required data type for the RangeStart and RangeEnd parameters, but the table date column on which the filters are applied are not Date/Time data type, or vice-versa. O tipo de dados de parâmetros e a coluna de dados filtrados devem ser do tipo de dados de Data/Hora e o formato deve ser o mesmo.Both the parameters data type and the filtered data column must be Date/Time data type and the format must be the same. Caso contrário, a consulta não poderá ser dobrada.If not, the query cannot be folded.

Solução: verificar o tipo de dadosSolution: Verify data type

Verifique se a coluna data/hora da tabela de atualização incremental é do tipo de dados de Data/Hora.Verify the date/time column for the incremental refresh table is of Date/Time data type. Se a tabela não contiver uma coluna de tipo de dados de data/hora, mas, em vez disso, usar um tipo de dado inteiro, você poderá criar uma função que converta o valor de data/hora nos parâmetros RangeStart e RangeEnd para corresponder à chave alternativa de inteiro da tabela de fonte de dados.If your table does not contain a column of Date/Time data type, but instead uses an integer data type, you can create a function that converts the date/time value in the RangeStart and RangeEnd 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.

Causa: a fonte de dados não oferece suporte à dobragem de consultaCause: The data source does not support query folding

Conforme descrito em Atualização incremental para conjuntos de dados – Requisitos, a atualização incremental foi desenvolvida para fontes de dados que dão suporte à dobragem de consultas.As described in Incremental refresh for datasets - Requirements, incremental refresh is designed for data sources that support query folding. Verifique se as consultas de fonte de dados estão sendo dobradas no Power BI Desktop antes de publicar no serviço, em que os problemas de dobragem de consultas podem ser significativamente compostos.Make sure data source queries are being folded in Power BI Desktop before publishing to the service, where query folding issues can be significantly compounded.

Solução: verificar e testar consultasSolution: Verify and test queries

Na maioria dos casos, um aviso é mostrado na caixa de diálogo Política de atualização incremental que indica se a consulta a ser executada na fonte de dados não dá suporte à dobragem de consultas.In most cases, a warning is shown in the Incremental refresh policy dialog indicating if the query to be executed against the data source does not support query folding. No entanto, em alguns casos, pode ser necessário garantir que a dobragem de consultas seja possível.However, in some cases it may be necessary to further ensure query folding is possible. Se possível, monitore a consulta que está sendo passada para a fonte de dados usando uma ferramenta como o SQL Profiler.If possible, monitor the query being passed to the data source by using a tool like SQL Profiler. Uma consulta com filtros baseados em RangeStart e RangeEnd deve ser executada em uma única consulta.A query with filters based on RangeStart and RangeEnd must be executed in a single query.

Você também pode especificar um período curto de data/hora nos parâmetros RangeStart e RangeEnd que incluirão, no máximo, alguns milhares de linhas.You can also specify a short date/time period in the RangeStart and RangeEnd parameters that will include no more than a few thousand rows. Se a carga de dados filtrados da fonte de dados para o modelo levar muito tempo e for processada de forma intensiva, provavelmente significa que a consulta não está sendo dobrada.If the load of filtered data from the data source to the model takes a long time and is process intensive, it likely means the query isn't being folded.

Se você determinar que a consulta não está sendo dobrada, confira as Diretrizes de dobragem de consultas no Power BI Desktop e na Dobragem de consultas do Power Query para obter ajuda para identificar o que pode estar impedindo a dobragem de consultas e como, ou se, a fonte de dados pode até mesmo dar suporte à dobragem da consulta.If you determine the query isn't being folded, refer to Query folding guidance in Power BI Desktop and Power Query query folding for help with identifying what may be preventing query folding and how, or if, the data source can even support query folding.

Atualização do conjunto de dados no serviçoDataset refresh in the service

A solução de problemas de atualização incremental no serviço será diferente dependendo do tipo de capacidade em que o seu conjunto de dados foi publicado.Troubleshooting incremental refresh issues in the service will differ depending on the type of capacity your dataset has been published to. Os conjuntos de valores em capacidades Premium dão suporte ao uso de ferramentas como o SSMS (SQL Server Management Studio) para exibir e atualizar seletivamente partições individuais.Datasets on Premium capacities support using tools like SQL Server Management Studio (SSMS) to view and selectively refresh individual partitions. Os conjuntos de dados do Power BI Pro, por outro lado, não fornecem acesso à ferramenta por meio do ponto de extremidade XMLA, de modo que a solução de problemas de atualização incremental pode exigir um pouco mais de avaliação e erro.Power BI Pro datasets on the other hand do not provide tool access through the XMLA endpoint, so troubleshooting incremental refresh issues may require a little more trial and error.

Problema: a atualização inicial atinge o tempo limiteProblem: Initial refresh times out

A atualização agendada para conjuntos de dados do Power BI Pro em uma capacidade compartilhada tem um limite de tempo de duas horas.Scheduled refresh for Power BI Pro datasets on a shared capacity have a time limit of two hours. Esse tempo limite é aumentado para cinco horas em conjuntos de dados em uma capacidade Premium.This time limit is increased to five hours for datasets in a Premium capacity. Os sistemas de fonte de dados também podem impor um limite de tamanho de retorno de consulta ou tempo limite de consulta.Data source systems may also impose a query return size limit or query timeout.

Causa: as consultas de fonte de dados não estão sendo dobradasCause: Data source queries aren't being folded

Embora problemas com a dobragem de consulta normalmente possam ser determinados no Power BI Desktop antes da publicação para o serviço, é possível que as consultas de atualização de conjuntos de dados não estejam sendo dobradas, levando a tempos de atualização excessivos e a utilização de recursos do mecanismo de mashup de consulta.While problems with query folding can usually be determined in Power BI Desktop before publishing to the service, it's possible dataset refresh queries are not being folded, leading to excessive refresh times and query mashup engine resource utilization. Isso ocorre porque uma consulta é criada para cada partição no conjunto de dados.This is because a query is created for every partition in the dataset. Se as consultas não estiverem sendo dobradas e os dados não estiverem sendo filtrados na fonte de dados, o mecanismo tentará filtrar os dados.If the queries are not being folded, and data is not being filtered at the data source, the engine then attempts to filter the data.

Solução: verificar a dobragem de consultasSolution: Verify query folding

Use uma ferramenta de rastreamento na fonte de dados para determinar se a consulta que está sendo passada para cada partição é uma consulta única que inclui um filtro com base nos parâmetros RangeStart e RangeEnd.Use a tracing tool at the data source to determine the query being passed for each partition is a single query that includes a filter based on the RangeStart and RangeEnd parameters. Caso contrário, verifique se a dobragem de consultas está ocorrendo no modelo de Power BI Desktop ao carregar uma pequena quantidade filtrada de dados no modelo.If not, verify query folding is occurring in the Power BI Desktop model when loading a small filtered amount of data into the model. Caso contrário, faça com que ele seja corrigido primeiro no modelo, execute uma atualização somente de metadados para o conjunto de dados (por meio do ponto de extremidade XMLA) ou, caso seja um conjunto de dados do Power BI Pro de uma capacidade compartilhada, exclua o conjunto de dados incompleto no serviço, republique e tente uma operação de atualização inicial novamente.If not, get it fixed in the model first, perform a metadata only update to the dataset (via XMLA endpoint), or if a Power BI Pro dataset on a shared capacity, delete the incomplete dataset in the service, republish, and try an initial refresh operation again.

Se você determinar que as consultas não estão sendo dobradas, confira as Diretrizes de dobragem de consultas no Power BI Desktop e em Dobragem de consultas do Power Query para obter ajuda com a identificação do que pode estar impedindo a dobragem de consultas.If you determine queries aren't being folded, refer to Query folding guidance in Power BI Desktop and Power Query query folding for help with identifying what may be preventing query folding.

Causa: os dados carregados em partições são muito grandesCause: Data loaded into partitions is too large

Solução: reduzir o tamanho do conjunto de dadosSolution: Reduce dataset size

Em muitos casos, o tempo limite é causado pela quantidade de dados que deve ser consultada e carregada nas partições do conjunto de dados que excede os limites de tempo impostos pela capacidade.In many cases, the timeout is caused by the amount of data that must be queried and loaded into the dataset partitions exceeds the time limits imposed by the capacity. Reduza o tamanho ou a complexidade do conjunto de dados ou divida o conjunto de dados em partes menores.Reduce the size or complexity of your dataset, or consider breaking the dataset into smaller pieces.

Solução: habilitar o formato de armazenamento do conjunto de anúncios grandeSolution: Enable Large dataset storage format

Para conjuntos de dados publicados em capacidades Premium, se 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 Premium capacities, if 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.

Solução: inicializar a atualização inicialSolution: Bootstrap initial refresh

Para conjuntos de dados publicados para capacidades Premium, você pode inicializar a operação de atualização inicial.For datasets published to Premium capacities, you can bootstrap the initial refresh operation. 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 do histórico em nenhuma das partições.Bootstrapping allows the service to create table and partition objects for the dataset, but not load and process historical data into any of the partitions. 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.

Causa: tempo limite de consulta da fonte de dadosCause: Data source query timeout

As consultas podem ser limitadas por um limite de tempo padrão da fonte de dados.Queries can be limited by a default time limit for the data source.

Solução: substituir o limite de tempo na expressão de consultaSolution: Override the time limit in the query expression

Muitas fontes de dados permitem a substituição do limite de tempo na expressão de consulta.Many data sources allow overriding time limit in the query expression. Para saber mais, confira Atualização incremental para conjuntos de dados – Limites de tempo.To learn more, see Incremental refresh for datasets - Time limits.

Problema: a atualização falha devido a valores duplicadosProblem: Refresh fails because of duplicate values

Causa: as datas de postagem foram alteradasCause: Post dates have changed

Com uma operação de atualização, somente os dados que foram alterados na fonte de dados são atualizados no conjunto de dados.With a refresh operation, only data that has changed at the data source is refreshed in the dataset. Como os dados são divididos por uma data, a recomendação é que as datas de postagem (transação) não sejam alteradas.As the data is divided by a date, it’s recommended post (transaction) dates are not changed.

Se uma data for alterada acidentalmente, dois problemas podem ocorrer: os usuários observam alguns totais alterados nos dados históricos (isso não deve acontecer) ou, durante uma atualização, um erro é retornado indicando que um valor exclusivo não é exclusivo de fato.If a date is changed accidentally, then two issues can occur: Users notice some totals changed in the historical data (that is not supposed to happen), or during a refresh an error is returned indicating a unique value is not in fact unique. Para o último, isso pode acontecer quando a tabela com a atualização incremental configurada é usada em uma relação 1:N com outra tabela como o lado 1 e deve ter valores exclusivos.For the latter, this can happen when the table with incremental refresh configured is used in a 1:N relationship with another table as the 1 side and should have unique values. Quando os dados forem alterados (para uma ID específica), essa ID aparecerá em outra partição e o mecanismo detectará que o valor não é exclusivo.When the data is changed (for a specific ID), that ID then appears in another partition and the engine will detect the value is not unique.

Solução: atualizar partições específicasSolution: Refresh specific partitions

Quando há uma necessidade comercial de alterar alguns dados passados das datas, uma solução possível é usar o SSMS para atualizar todas as partições do ponto em que a alteração está localizada até a partição atual de atualização, mantendo o lado 1 da relação exclusivo.Where there is a business need to change some past data from the dates, a possible solution is to use SSMS to refresh all partitions from the point where the change is located up to the current refresh partition, thus keeping the 1 side of the relationship unique.

Problema: os dados estão truncadosProblem: Data is truncated

Causa: o limite de consultas da fonte de dados foi excedidoCause: Data source query limit has been exceeded

Algumas fontes de dados, como o Azure Data Explorer, Log Analytics e Application Insights têm um limite de 64 MB (compactados) em dados que podem ser retornados para uma consulta externa.Some data sources, like Azure Data Explorer, Log Analytics, and Application Insights have a limit of 64 MB (compressed) on data that can be returned for an external query. O Azure Data Explorer pode retornar um erro explícito, mas para outros, como o Log Analytics e o Application Insights, os dados retornados são truncados.Azure Data Explorer may return an explicit error, but for others like Log Analytics and Application Insights, the data returned is truncated.

Solução: especificar períodos de atualização e de armazenamento menoresSolution: Specify smaller refresh and store periods

Especifique períodos de atualização e de armazenamento menores na política.Specify smaller refresh and store periods in the policy. Por exemplo, se você especificou um período de atualização de um ano e um erro de consulta for retornado ou os dados retornados forem truncados, tente um período de atualização de 12 meses.For example, if you specified a refresh period of one year, and a query error is returned or data returned is truncated, try a refresh period of 12 months. Convém garantir que as consultas da partição de atualização atual ou quaisquer partições históricas com base na atualização e nos períodos de armazenamento não retornem mais de 64 MB de dados.You'll want to ensure queries for the current refresh partition or any historical partitions based on the Refresh and Store periods do not return more than 64 MB of data.

Problema: a atualização falha devido a conflitos de chave de partiçãoProblem: Refresh fails because of partition-key conflicts

Causa: a data na coluna de data na fonte de dados é atualizadaCause: Date in the date column at the data source is updated

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 period 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, ele não será obtido, o que pode causar falhas de atualização de dados devido a conflitos da chave de partição.If the deletion occurs in the historical range and not the incremental range, it won't get picked up, which can cause data refresh failures due to partition-key conflicts.

Consulte tambémSee also

Atualizar dados no Power BIData refresh in Power BI
Atualização incremental avançada com o ponto de extremidade XMLAAdvanced incremental refresh with the XMLA endpoint
Atualização incremental para fluxos de dadosIncremental refresh for dataflows