Guia de desempenho e de escalabilidade da Atividade de cópia
APLICA-SE A: Azure Data Factory Azure Synapse Analytics
Gorjeta
Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange tudo, desde a movimentação de dados até ciência de dados, análises em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!
Às vezes, você deseja executar uma migração de dados em grande escala do data lake ou do Enterprise Data Warehouse (EDW) para o Azure. Outras vezes, você deseja ingerir grandes quantidades de dados, de diferentes fontes, no Azure, para análise de big data. Em cada caso, é fundamental alcançar o desempenho e a escalabilidade ideais.
Os pipelines do Azure Data Factory e do Azure Synapse Analytics fornecem um mecanismo para ingerir dados, com as seguintes vantagens:
- Lida com grandes quantidades de dados
- É altamente performante
- É rentável
Essas vantagens são uma excelente opção para engenheiros de dados que desejam criar pipelines de ingestão de dados escaláveis que sejam de alto desempenho.
Depois de ler este artigo, você será capaz de responder às seguintes perguntas:
- Que nível de desempenho e escalabilidade posso alcançar usando a atividade de cópia para cenários de migração e ingestão de dados?
- Que etapas devo tomar para ajustar o desempenho da atividade de cópia?
- Que otimizações de desempenho posso utilizar para executar uma única atividade de cópia?
- Que outros fatores externos considerar ao otimizar o desempenho da cópia?
Nota
Se você não estiver familiarizado com a atividade de cópia em geral, consulte a visão geral da atividade de cópia antes de ler este artigo.
Copie o desempenho e a escalabilidade possíveis usando os pipelines do Azure Data Factory e Synapse
Os pipelines do Azure Data Factory e Synapse oferecem uma arquitetura sem servidor que permite paralelismo em diferentes níveis.
Essa arquitetura permite que você desenvolva pipelines que maximizam a taxa de transferência de movimentação de dados para seu ambiente. Esses pipelines utilizam totalmente os seguintes recursos:
- Largura de banda de rede entre os armazenamentos de dados de origem e destino
- Operações de entrada/saída de armazenamento de dados de origem ou destino por segundo (IOPS) e largura de banda
Essa utilização total significa que você pode estimar a taxa de transferência geral medindo a taxa de transferência mínima disponível com os seguintes recursos:
- Source data store
- Arquivo de dados de destino
- Largura de banda de rede entre os armazenamentos de dados de origem e de destino
A tabela abaixo mostra o cálculo da duração do movimento de dados. A duração em cada célula é calculada com base em uma determinada rede e largura de banda de armazenamento de dados e um determinado tamanho de carga útil de dados.
Nota
A duração fornecida abaixo destina-se a representar o desempenho alcançável em uma solução de integração de dados de ponta a ponta usando uma ou mais técnicas de otimização de desempenho descritas em Recursos de otimização de desempenho de cópia, incluindo o uso de ForEach para particionar e gerar várias atividades de cópia simultâneas. Recomendamos que você siga as etapas estabelecidas em Etapas de ajuste de desempenho para otimizar o desempenho da cópia para seu conjunto de dados específico e configuração do sistema. Você deve usar os números obtidos em seus testes de ajuste de desempenho para planejamento de implantação de produção, planejamento de capacidade e projeção de faturamento.
Tamanho dos dados / bandwidth |
50 Mbps | 100 Mbps | 500 Mbps | 1 Gbps | 5 Gbps | 10 Gbps | 50 Gbps |
---|---|---|---|---|---|---|---|
1 GB | 2.7 minutos | 1.4 minutos | 0.3 minutos | 0.1 minutos | 0.03 minutos | 0.01 minutos | 0.0 minutos |
10 GB | 27.3 minutos | 13.7 minutos | 2.7 minutos | 1.3 minutos | 0.3 minutos | 0.1 minutos | 0.03 minutos |
100 GB | 4,6 horas | 2,3 horas | 0,5 horas | 0,2 horas | 0.05 horas | 0.02 horas | 0,0 horas |
1 TB | 46.6 horas | 23,3 horas | 4,7 horas | 2,3 horas | 0,5 horas | 0,2 horas | 0.05 horas |
10 TB | 19,4 dias | 9,7 dias | 1,9 dias | 0,9 dias | 0,2 dias | 0,1 dias | 0,02 dias |
100 TB | 194,2 dias | 97,1 dias | 19,4 dias | 9,7 dias | 1,9 dias | 1 dia | 0,2 dias |
1 PB | 64.7 mês | 32.4 mês | 6.5 mês | 3.2 mês | 0.6 mês | 0.3 mês | 0.06 mês |
10 PB | 647.3 mês | 323.6 mês | 64.7 mês | 31.6 mês | 6.5 mês | 3.2 mês | 0.6 mês |
A cópia é escalável em diferentes níveis:
O fluxo de controle pode iniciar várias atividades de cópia em paralelo, por exemplo, usando For Each loop.
Uma única atividade de cópia pode tirar proveito de recursos de computação escaláveis.
- Ao usar o tempo de execução de integração (IR) do Azure, você pode especificar até 256 unidades de integração de dados (DIUs) para cada atividade de cópia, de maneira sem servidor.
- Ao usar o IR auto-hospedado, você pode adotar uma das seguintes abordagens:
- Aumente manualmente a escala da máquina.
- Dimensione para várias máquinas (até 4 nós) e uma única atividade de cópia particionará seu conjunto de arquivos em todos os nós.
Uma única atividade de cópia lê e grava no armazenamento de dados usando vários threads em paralelo.
Etapas de ajuste de desempenho
Siga as seguintes etapas para ajustar o desempenho do seu serviço com a atividade de cópia:
Pegue um conjunto de dados de teste e estabeleça uma linha de base.
Durante o desenvolvimento, teste seu pipeline usando a atividade de cópia em relação a uma amostra de dados representativa. O conjunto de dados escolhido deve representar seus padrões de dados típicos ao longo dos seguintes atributos:
- Estrutura de pastas
- Padrão de arquivo
- Esquema de dados
E seu conjunto de dados deve ser grande o suficiente para avaliar o desempenho da cópia. Um bom tamanho leva pelo menos 10 minutos para que a atividade de cópia seja concluída. Colete detalhes de execução e características de desempenho após o monitoramento da atividade de cópia.
Como maximizar o desempenho de uma única atividade de cópia:
Recomendamos que você primeiro maximize o desempenho usando uma única atividade de cópia.
Se a atividade de cópia estiver sendo executada em um tempo de execução de integração do Azure :
Comece com valores padrão para unidades de integração de dados (DIU) e configurações de cópia paralela.
Se a atividade de cópia estiver sendo executada em um tempo de execução de integração auto-hospedado :
Recomendamos que você use uma máquina dedicada para hospedar o IR. A máquina deve ser separada do servidor que hospeda o armazenamento de dados. Comece com valores padrão para a configuração de cópia paralela e usando um único nó para o IR auto-hospedado.
Conduza um teste de desempenho. Tome nota do desempenho alcançado. Inclua os valores reais usados, como DIUs e cópias paralelas. Consulte copiar monitoramento de atividade sobre como coletar resultados de execução e configurações de desempenho usadas. Saiba como solucionar problemas de desempenho da atividade de cópia para identificar e resolver o gargalo.
Itere para realizar execuções de teste de desempenho adicionais seguindo as diretrizes de solução de problemas e ajuste. Quando a atividade de cópia única não for executada não puder obter uma taxa de transferência melhor, considere se a taxa de transferência agregada deve ser maximizada executando várias cópias simultaneamente. Esta opção é discutida no próximo marcador numerado.
Como maximizar a taxa de transferência agregada executando várias cópias simultaneamente:
Até agora, você já maximizou o desempenho de uma única atividade de cópia. Se você ainda não atingiu os limites superiores de taxa de transferência do seu ambiente, poderá executar várias atividades de cópia em paralelo. Você pode executar em paralelo usando construções de fluxo de controle. Uma dessas construções é o loop For Each. Para obter mais informações, consulte os seguintes artigos sobre modelos de solução:
Expanda a configuração para todo o conjunto de dados.
Quando estiver satisfeito com os resultados de execução e o desempenho, você poderá expandir a definição e o pipeline para cobrir todo o conjunto de dados.
Solucionar problemas de desempenho da atividade de cópia
Siga as etapas de ajuste de desempenho para planejar e conduzir testes de desempenho para seu cenário. E saiba como solucionar o problema de desempenho de cada execução de atividade de cópia em Solucionar problemas de desempenho da atividade de cópia.
Copiar recursos de otimização de desempenho
O serviço fornece os seguintes recursos de otimização de desempenho:
- Unidades de Integração de Dados
- Escalabilidade do runtime de integração autoalojado
- Cópia paralela
- Cópia faseada
Unidades de Integração de Dados
Uma Unidade de Integração de Dados (DIU) é uma medida que representa o poder de uma única unidade nos pipelines do Azure Data Factory e Synapse. Power é uma combinação de CPU, memória e alocação de recursos de rede. A DIU só se aplica ao tempo de execução de integração do Azure. DIU não se aplica ao tempo de execução de integração auto-hospedado. Saiba mais aqui.
Escalabilidade do runtime de integração autoalojado
Talvez você queira hospedar uma carga de trabalho simultânea crescente. Ou você pode querer obter um desempenho mais alto em seu nível de carga de trabalho atual. Você pode melhorar a escala de processamento pelas seguintes abordagens:
- Você pode aumentar a escala do IR auto-hospedado aumentando o número de trabalhos simultâneos que podem ser executados em um nó.
O aumento de escala funciona somente se o processador e a memória do nó estiverem sendo menos do que totalmente utilizados. - Você pode expandir o IR auto-hospedado, adicionando mais nós (máquinas).
Para obter mais informações, consulte:
- Recursos de otimização do desempenho da atividade de cópia: escalabilidade do tempo de execução da integração auto-hospedada
- Criar e configurar um tempo de execução de integração auto-hospedado: considerações de escala
Cópia paralela
Você pode definir a parallelCopies
propriedade para indicar o paralelismo que deseja que a atividade de cópia use. Pense nessa propriedade como o número máximo de threads dentro da atividade de cópia. Os threads operam em paralelo. Os threads são lidos da fonte ou gravados nos armazenamentos de dados do coletor. Mais informações.
Cópia faseada
Uma operação de cópia de dados pode enviar os dados diretamente para o armazenamento de dados do coletor. Como alternativa, você pode optar por usar o armazenamento de Blob como um armazenamento de preparo provisório. Mais informações.
Conteúdos relacionados
Veja os outros artigos da atividade de cópia: