Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo fornece práticas recomendadas para otimizar o desempenho do Dataflow Gen2 no Fabric Data Factory. Seguindo essas diretrizes, você pode melhorar a eficiência e a velocidade de seus processos de integração de dados.
O que vai aprender
Neste artigo, você descobrirá:
- Principais áreas de otimização de desempenho: Compreender os três componentes críticos (fonte de dados, mecanismo de fluxo de dados e destino de dados) que afetam o desempenho do fluxo de dados
- Principais técnicas de otimização: Como aproveitar o Fast Copy, o dobramento de consultas e o preparo para maximizar a eficiência
- Cenários do mundo real: desafios comuns de desempenho e suas soluções específicas
- Práticas recomendadas: orientação acionável para diferentes padrões de integração de dados e casos de uso
Quais são as principais áreas a focar para a otimização do desempenho?
Dentro da experiência de ponta a ponta do fluxo de dados, há várias áreas-chave nas quais se concentrar para a otimização do desempenho. Essas áreas incluem a movimentação de dados, o mecanismo de fluxo de dados e as transformações de dados. Cada um desses componentes e os caminhos intermediários desempenham um papel crucial no desempenho geral do seu fluxo de dados, e otimizá-los pode levar a melhorias significativas no tempo de execução e na utilização de recursos.
Movimentação de dados
A movimentação de dados é um aspeto crítico do desempenho do fluxo de dados. Envolve a transferência de dados entre vários componentes, como fontes de dados, áreas de preparação e destinos finais. A movimentação eficiente de dados pode reduzir significativamente o tempo de execução e o consumo de recursos. No Dataflow Gen2, a movimentação de dados é otimizada por meio de técnicas como o Fast Copy, que permite a transferência de dados com alta capacidade sem a sobrecarga de transformações que não são compatíveis com o sistema de origem. Saiba mais sobre o Fast Copy.
Transformação de dados
A transformação de dados é o processo de conversão de dados de uma estrutura para outra, geralmente envolvendo operações como filtragem, agregação e junção. No Dataflow Gen2, as transformações são projetadas para serem eficientes e aplicarem capacidades de dobramento de consultas sempre que possível. A dobragem de consultas permite que as transformações sejam empurradas para o sistema de origem, reduzindo a quantidade de dados transferidos e processados no Dataflow Gen2. Essa redução é particularmente importante para grandes conjuntos de dados, pois minimiza a carga de trabalho no mecanismo de fluxo de dados e acelera o tempo de execução. Para saber mais sobre dobragem de consulta, vá para Dobragem de consulta. Siga também outras práticas recomendadas para otimização de consultas, como filtrar antecipadamente e com frequência, usar parametrização para limitar visualizações de dados e evitar transformações desnecessárias em seu fluxo de dados. Para saber mais sobre otimização de consultas, vá para Otimização de consultas.
Dados de preparo e computação de armazém
Os dados de preparo são uma técnica usada para melhorar o desempenho armazenando temporariamente resultados intermediários em uma área de preparação. O Dataflow Gen2 vem com um Lakehouse de preparação e um armazém de preparação, que podem ser usados para executar transformações de forma mais eficiente. Ao preparar dados, você pode usar os recursos de computação dessas áreas de preparo para dividir fluxos de dados complexos em etapas gerenciáveis, reduzindo o tempo geral de processamento. Esta análise é particularmente útil para grandes conjuntos de dados ou transformações complexas que, de outra forma, demorariam muito tempo a ser executadas num único passo. Você pode considerar os locais de preparação como uma área de armazenamento temporário que permite aplicar transformações. Essa abordagem é especialmente benéfica ao trabalhar com fontes de dados que não suportam dobramento de consultas ou quando as transformações são muito complexas para serem empurradas para o sistema de origem. Para aplicar o preparo de forma eficaz, você pode ficar de olho nos indicadores dobráveis no editor de fluxo de dados para garantir que suas transformações estejam sendo empurradas para a origem. Se você notar que uma transformação não está dobrando, considere dividir a consulta em duas consultas e aplicar a transformação na segunda consulta. Ative a configuração intermediária na primeira consulta para realizar a transformação na computação intermediária do Lakehouse ou Warehouse. Essa abordagem permite que você aproveite os recursos de computação disponíveis nas áreas de preparação, garantindo que seu fluxo de dados permaneça eficiente e responsivo.
Quando tiver dados que já estão pré-preparados no Lakehouse ou no Warehouse e aplicar mais transformações que se integram completamente nas consultas seguintes, o fluxo de dados gravará a saída no depósito de preparação. Isso pode ser mais rápido do que gravar no Lakehouse de estágio, pois o conjunto de dados pode ser escrito em paralelo pelo DW e passará por menos saltos de rede, junto com as suas etapas de serialização correspondentes.
Cenários e quais otimizações considerar
Ao trabalhar com o Dataflow Gen2, é essencial entender os vários cenários que você pode encontrar e como otimizar o desempenho em cada caso. As considerações a seguir fornecem orientações práticas sobre como aplicar as melhores práticas a situações do mundo real. Ao adaptar sua abordagem com base nas características específicas de seus dados e transformações, você pode obter o desempenho ideal em seus fluxos de trabalho de integração de dados. Aqui estão alguns cenários comuns que você pode encontrar ao trabalhar com o Dataflow Gen2, juntamente com ações recomendadas para otimizar o desempenho. Esteja ciente de que a otimização de desempenho é um processo contínuo e muito específico para o seu cenário. Talvez seja necessário ajustar sua abordagem com base nas características específicas de seus próprios dados e transformações.
Consideração 1: Melhorar a movimentação de dados com o Fast Copy
Nesse cenário, você percebe que a movimentação de dados entre a fonte de dados e a área de preparo ou para o destino final está demorando mais do que o esperado. Vários fatores podem estar envolvidos, como latência de rede, grandes tamanhos de conjuntos de dados ou métodos de transferência de dados ineficientes.
Nesse caso, considere avaliar o caminho de movimentação de dados e otimizá-lo para um melhor desempenho. Uma abordagem é usar o Fast Copy para transferência de dados de alta taxa de transferência, o que pode reduzir significativamente o tempo de execução. O Fast Copy foi projetado para lidar com grandes volumes de dados de forma eficiente, minimizando a sobrecarga associada aos métodos tradicionais de transferência de dados. No entanto, tenha cuidado: se adicionar transformações na mesma consulta que uma operação de Cópia Rápida, isso poderá desabilitar a Cópia Rápida se as transformações não se integrarem ao sistema de origem. Nesses casos, considere separar a consulta em duas etapas: uma para a operação Fast Copy e outra para as transformações usando o cálculo de preparação Lakehouse ou Warehouse. Essa abordagem permite que você aproveite o Fast Copy para movimentação de dados de alta taxa de transferência enquanto executa as transformações necessárias em uma etapa separada. Saiba mais sobre o Fast Copy.
Você pode ativar o Fast Copy nas configurações de fluxo de dados. Essa configuração está habilitada por padrão, mas você também pode exigir que o Fast Copy seja usado para uma consulta específica em seu fluxo de dados. Para fazer isso, selecione a opção Exigir cópia rápida nas configurações de consulta. Essa ação garante que o Fast Copy seja usado para a consulta selecionada e que ignore o limite de tamanho mínimo para o Fast Copy. Essa configuração é particularmente útil quando você deseja garantir que o Fast Copy seja usado para consultas específicas, independentemente do tamanho dos dados ou de outras condições. Se você precisar do Fast Copy, verifique se a fonte de dados é compatível com o Fast Copy e se as transformações na consulta podem ser enviadas para o sistema de origem. Se você precisar do Fast Copy em uma consulta que não seja compatível com o Fast Copy, o fluxo de dados falhará. Se você não precisar do Fast Copy, o fluxo de dados ainda será executado, mas poderá retornar ao método de movimentação de dados padrão, que pode não ser tão eficiente quanto o Fast Copy. Essa flexibilidade permite que você otimize seu fluxo de dados com base nos requisitos específicos de seus processos de integração de dados.
Consideração 2: Melhorar o tempo de execução para transformações complexas usando preparo
Nesse cenário, você tem um fluxo de dados com várias transformações complexas, como junções, agregações e filtragem. O tempo de execução é maior do que o desejado e você deseja otimizar o desempenho dessas transformações.
Nesse caso, considere dividir o fluxo de dados em etapas menores e mais gerenciáveis. Em vez de executar todas as transformações numa única consulta, pode alojar os dados numa Lakehouse ou Warehouse intermediário e, em seguida, aplicar as transformações em consultas subsequentes. Essa abordagem permite aplicar os recursos de computação da área de preparo para transformações complexas, reduzindo o tempo geral de execução. Além disso, certifique-se de que suas transformações sejam projetadas para dobrar para o sistema de origem sempre que possível, pois isso pode melhorar significativamente o desempenho reduzindo a quantidade de dados transferidos e processados no Dataflow Gen2. Caso note que certas transformações não se consolidam, considere dividi-las em consultas separadas e aplicá-las após a preparação dos dados.
Na imagem a seguir, observe como os indicadores dobráveis no editor de fluxo de dados podem ajudá-lo a identificar quais transformações estão sendo empurradas para o sistema de origem.
Para implementar staging de forma eficaz, pode-se dividir o fluxo de dados em duas consultas. Para fazer isso, clique com o botão direito do mouse na primeira etapa que não se expande no sistema de origem e selecione a opção Extrair anterior. Esta ação cria uma nova consulta que prepara os dados na computação de preparação Lakehouse ou Warehouse, permitindo que você execute a transformação em uma etapa separada. Essa abordagem ajuda você a aproveitar os recursos de computação disponíveis nas áreas de preparação, garantindo que seu fluxo de dados permaneça eficiente e responsivo.
Em seguida, forneça um nome para a nova consulta e selecione "OK".
Agora, com a nova consulta criada, pode verificar se a preparação está ativada para a primeira consulta. Se a encenação não estiver habilitada, pode habilitá-la selecionando a opção Habilitar encenação nas configurações da consulta. Esta ação permite que você execute transformações na computação de preparação Lakehouse ou Warehouse, otimizando o desempenho do seu fluxo de dados. O preparo da segunda consulta é opcional, mas pode melhorar ainda mais o desempenho, permitindo que você execute transformações adicionais na área de preparo antes de gravar a saída final no destino.
Se você olhar agora para os indicadores dobráveis no editor de fluxo de dados, as transformações na primeira consulta estão sendo empurradas para o sistema de origem. A segunda consulta pode não refletir os mesmos indicadores de agregação, pois só se torna ciente durante o tempo de execução da área de preparação e das transformações que podem ser aplicadas na área de preparação.
Para saber mais sobre como otimizar as transformações de fluxo de dados e garantir que elas estejam sendo aplicadas ao sistema de origem, vá para Dobradura de consultas.
Consideração 3: Otimizar a movimentação de dados da área de staging para o Lakehouse quando o destino é um Lakehouse
Neste cenário, use um destino Lakehouse para o seu fluxo de dados e permita que o staging execute transformações antes de escrever o resultado final. Certifica-te de que a etapa que move os dados em etapas para o Lakehouse não acrescenta sobrecarga desnecessária ao tempo total de atualização.
A Lakehouse é um destino totalmente suportado e de alto desempenho para este padrão. A movimentação de dados do armazém de preparação para o destino Lakehouse está otimizada, pelo que já não precisa de mudar o destino para um armazém para obter um bom desempenho. A abordagem recomendada é o padrão ELT: usar Cópia Rápida para obter os dados rapidamente, executar as suas transformações nos dados escalonados usando o cálculo de staging Fabric e escrever a saída final para o Lakehouse. Para conjuntos de dados grandes, a Cópia Rápida continua a ser a forma recomendada de mover os dados de forma eficiente.
Para tirar o máximo proveito deste padrão hoje, separe o trabalho de Cópia Rápida e o trabalho de transformação em duas consultas: uma consulta que realiza o movimento de dados de Cópia Rápida, e uma segunda consulta que aplica as transformações nos dados em etapas antes de escrever para o destino Lakehouse. Combinar uma operação de Cópia Rápida com transformações não dobráveis na mesma consulta desativa a Cópia Rápida, por isso mantê-las em consultas separadas é o principal aspeto a observar. Se as tuas transformações se dobrarem totalmente para a fonte, também podes escrever diretamente para a Lakehouse com o staging desativado.
Quando estacionar dados e escrever para um destino Lakehouse, ative a opção Cópia Otimizada para Lakehouse (Pré-visualização) na aba Escala para encaminhar os dados em etapas para o Lakehouse através do caminho de cópia mais rápido, o que reduz a sobrecarga do salto de staging para Lakehouse. Para mais informações, consulte opções de dados em etapas para Dataflow Gen2.
Consideração 4: Grandes visualizações de dados durante a fase de design
Neste cenário, estás a trabalhar num fluxo de dados com grandes conjuntos de dados, e a duração da experiência de design é lenta devido ao tamanho das pré-visualizações de dados. Esse processo pode dificultar a criação e o teste do seu fluxo de dados de forma eficaz.
Nesse caso, considere usar a visualização de esquema ou a parametrização para limitar o tamanho das visualizações de dados. Ao aplicar filtros com base em parâmetros, como um intervalo de datas ou IDs específicos, pode-se reduzir a quantidade de dados exibidos no ambiente de design. Essa abordagem ajuda a manter o ambiente de design responsivo e eficiente, permitindo que você se concentre na criação e no teste de seu fluxo de dados sem ser prejudicado por grandes visualizações de dados. Além disso, você pode ajustar os parâmetros durante o tempo de execução para recuperar o conjunto de dados completo quando necessário.
Por exemplo, se você estiver trabalhando com um grande conjunto de dados transacionais, poderá criar um parâmetro que filtre os dados com base em um intervalo de datas específico. Dessa forma, durante o tempo de design, você verá apenas um subconjunto dos dados que é relevante para o seu trabalho atual. Quando estiver pronto para executar o fluxo de dados, você poderá ajustar o parâmetro para incluir o conjunto de dados completo, garantindo que seus processos de integração de dados permaneçam eficientes e responsivos. O exemplo a seguir mostra como configurar um parâmetro no Dataflow Gen2:
Selecione a opção Gerenciar parâmetros no editor de fluxo de dados.
Selecione o botão Adicionar parâmetro para adicionar um novo parâmetro.
Preencha os detalhes do parâmetro, como nome, tipo e valor. Por exemplo, você pode criar um parâmetro chamado DesignDateFilter do tipo
DateTimecom um valor padrão que limita a visualização de dados a um intervalo de datas específico.
Aplique o parâmetro em suas consultas de fluxo de dados usando-o nas condições de filtro. Por exemplo, você pode filtrar os dados com base no parâmetro DesignDateFilter para limitar a visualização de dados a um intervalo de datas específico. Nesse caso, filtramos os dados para incluir apenas registros em que a coluna "Data" é maior que o parâmetro DesignDateFilter .
Agora você pode usar o parâmetro DesignDateFilter em suas consultas de fluxo de dados para limitar a visualização de dados durante o tempo de design. Quando estiver pronto para executar o fluxo de dados, você poderá ajustar o valor do parâmetro para incluir o conjunto de dados completo, garantindo que seus processos de integração de dados permaneçam eficientes e responsivos.
Outra opção é usar a visualização de esquema, que permite que você veja a estrutura de seus dados sem carregar todo o conjunto de dados. Esta exibição fornece uma visão geral de alto nível dos tipos de dados e colunas em seu conjunto de dados, permitindo que você projete e teste seu fluxo de dados sem ser afetado por visualizações de dados grandes. Para alternar para o modo de exibição de esquema, selecione a opção Visualização de esquema no editor de fluxo de dados.
Consideração 5: Características de tempo de execução do Dataflow gen2 em comparação com o Dataflow Gen1
Nesse cenário, você percebe que o desempenho do Dataflow Gen2 é mais lento do que o do Dataflow Gen1, particularmente em termos de tempo de execução e uso de recursos. Essa diferença de desempenho pode ser devida a vários fatores, incluindo as diferenças nas técnicas de otimização e formatos de saída usados no Dataflow Gen2.
O Dataflow Gen2 emite dados no formato Delta Parquet quando se utilizam destinos de staging ou Lakehouse, o que é diferente do formato CSV do Dataflow Gen1. Embora o Delta Parquet possa resultar em tempos de execução de ETL mais longos em comparação com o CSV, ele permite recursos downstream poderosos, como Direct Lake, Lakehouses e Warehouses, permitindo que esses serviços consumam dados de forma eficiente sem processamento ou custo adicionais. Essa diferença no método de armazenamento significa que, embora o tempo de execução inicial possa ser maior, o desempenho geral e a eficiência dos processos downstream podem ser significativamente melhorados e podem levar a um melhor desempenho a longo prazo de seus fluxos de trabalho de integração de dados. Saiba mais sobre o formato Delta Parquet.
Consideração 6: Otimizando o tempo de atualização para grandes conjuntos de dados transacionais usando a atualização incremental
Nesse cenário, você está lidando com um grande conjunto de dados transacional que é atualizado com freqüência e deseja otimizar o tempo de atualização do seu fluxo de dados. Essa otimização pode ser desafiadora devido ao volume de dados e à necessidade de processar apenas os registros novos ou alterados.
Nesse caso, considere o uso da atualização incremental ou do padrão para acumular dados incrementalmente. A atualização incremental permite processar apenas os dados novos ou alterados desde a última atualização, reduzindo a quantidade de dados processados e acelerando o tempo de execução geral. Essa abordagem é particularmente útil para cenários em que os dados são atualizados com frequência, como em sistemas transacionais. Ao implementar a atualização incremental, você pode otimizar o desempenho de seu fluxo de dados e garantir que seus processos de integração de dados permaneçam eficientes e responsivos. Saiba mais sobre a Atualização incremental ou saiba mais sobre o padrão de dados de acumulação incremental.
Consideração 7: Estou usando um gateway para me conectar à minha fonte de dados local e quero otimizar o desempenho do meu fluxo de dados
Nesse cenário, você está usando um gateway para se conectar à sua fonte de dados local e deseja otimizar o desempenho do seu fluxo de dados. Os gateways podem introduzir latência e sobrecarga adicionais, o que pode afetar o desempenho geral do seu fluxo de dados.
Nesse caso, considere dividir seu fluxo de dados em dois fluxos de dados separados: um para movimentação de dados da fonte de dados local para um destino de dados (como um Lakehouse ou Warehouse) e outro para transformações e saída final. Essa abordagem permite otimizar a etapa de movimentação de dados aproveitando o Fast Copy para transferência de dados de alta taxa de transferência, mantendo a etapa de transformação focada no processamento eficiente dos dados e na redução do tempo de execução geral. Ao separar as etapas de movimentação e transformação de dados, você pode reduzir o impacto da latência do gateway e das limitações de capacidade. A razão para isso é que o gateway está executando todo o fluxo de dados e, se o fluxo de dados for complexo ou tiver muitas transformações, isso pode levar a um desempenho mais lento, pois o gateway processa todas as transformações no computador que hospeda o gateway. Ao dividir o fluxo de dados, você pode garantir que o gateway seja responsável apenas pela etapa de movimentação de dados, o que pode melhorar significativamente o desempenho e reduzir o tempo de execução.
Consideração 8: Estou usando os conectores de fluxo de dados para consumir dados do fluxo de dados e quero otimizar meus processos de integração de dados
Nesse cenário, você está usando conectores de fluxo de dados para consumir dados de seu fluxo de dados e deseja otimizar seus processos de integração de dados. Os conectores de fluxo de dados podem fornecer uma maneira conveniente de acessar e consumir dados.
Nesse caso, considere usar destinos de dados em vez de conectores de fluxo de dados para consumir dados do seu fluxo de dados. Destinos de dados, como Lakehouses e Armazéns, são projetados para armazenar e servir dados de forma eficiente, permitindo que você aplique seus recursos para consumo downstream. Um grande benefício do uso de destinações de dados é que eles frequentemente oferecem formas mais genéricas de conectar-se aos dados, como o endpoint SQL ou utilizar as capacidades Direct Lake, que podem melhorar significativamente o desempenho e reduzir o consumo de recursos.
Consideração 9: Permitir o Modern Evaluator para melhorar o desempenho da execução de consultas
Neste cenário, queres melhorar o desempenho global do teu fluxo de dados, especialmente para transformações complexas ou quando trabalhas com conectores que não suportam query folding.
Neste caso, considere ativar o Modern Query Evaluation Engine (Modern Evaluator) para o seu Dataflow Gen2 com CI/CD. O Modern Evaluator é um novo motor de execução de consultas a correr no .NET Core 8 que pode melhorar significativamente o desempenho das execuções de fluxo de dados. Recomenda-se sempre ativar esta funcionalidade para cenários suportados, pois oferece vários benefícios importantes:
- Execução mais rápida do fluxo de dados: O mecanismo moderno pode reduzir substancialmente o tempo de avaliação da consulta. Muitos fluxos de dados são executados visivelmente mais rápidos, permitindo que você atualize os dados com mais frequência ou atenda a janelas de atualização apertadas.
- Processamento mais eficiente: O motor é otimizado para eficiência, usando algoritmos melhorados e um tempo de execução moderno. Isso significa que ele pode lidar com transformações complexas com menos sobrecarga, o que ajuda a manter o desempenho à medida que o volume de dados cresce.
- Escalabilidade e confiabilidade: Ao acelerar a execução e reduzir gargalos, o Modern Evaluator ajuda os fluxos de dados a escalar para volumes maiores com maior estabilidade. Pode esperar durações de atualização mais consistentes e menos problemas de timeout em grandes fluxos de dados.
O Avaliador Moderno é particularmente benéfico quando:
- Está a trabalhar com conectores não dobráveis ou parcialmente dobráveis
- Está a aplicar filtros, derivações de colunas ou operações de limpeza de dados
- Está a lidar com grandes volumes de dados ou transformações complexas
- Os seus fluxos de dados funcionam várias vezes por dia e precisa de acumular economias de tempo.
Para ativar o Avaliador Moderno:
- Abra o seu fluxo de dados no editor Power Query.
- Selecione Opções no menu.
- Navegue até ao separador Escala.
- Ativa a opção Motor de Avaliação de Consultas Moderno.
- Guarda e executa o teu fluxo de dados.
O Modern Evaluator suporta uma lista crescente de conectores. Para a lista completa de conectores suportados e o estado atual das funcionalidades, consulte Modern Evaluator for Dataflow Gen2 com CI/CD. Se o seu dataflow usar conectores que não estão na lista suportada, essas consultas continuam a correr com o motor padrão.
Para saber mais sobre o Modern Evaluator, consulte Modern Evaluator para Dataflow Gen2 com CI/CD.
Conclusion
Seguindo essas práticas recomendadas e considerando as características específicas de seus dados e transformações, você pode otimizar o desempenho do Dataflow Gen2 no Fabric Data Factory. Quer esteja a trabalhar com grandes conjuntos de dados, transformações complexas ou padrões de integração de dados específicos, estas diretrizes fornecem informações acionáveis para melhorar a eficiência e a velocidade dos seus processos de integração de dados. Lembre-se de que a otimização de desempenho é um processo contínuo e talvez seja necessário ajustar sua abordagem com base nas necessidades em evolução de seus fluxos de trabalho de integração de dados. Ao monitorar e otimizar continuamente seus fluxos de dados, você pode garantir que eles permaneçam eficientes e responsivos aos seus requisitos de negócios.