Guia de desempenho e escalabilidade da atividade de cópia
APLICA-SE A: Azure Data Factory Azure Synapse Analytics
Dica
Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma avaliação gratuita!
Às vezes, você deseja executar uma migração de dados em larga escala do data lake ou enterprise data warehouse (EDW) para o Azure. Outras vezes você deseja ingerir grandes quantidades de dados, de diferentes fontes para o Azure, para análise de Big Data. Em cada caso, é essencial 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:
- Transfere grandes quantidades de dados
- Tem alto desempenho
- Tem bom custo/benefício
Essas vantagens são uma ótima opção para engenheiros de dados que desejam criar pipelines de ingestão de dados escalonáveis com alto desempenho.
Depois de ler este artigo, você poderá responder as seguintes perguntas:
- Que nível de desempenho e escalabilidade posso conseguir usando a atividade de cópia para cenários de migração de dados e de ingestão de dados?
- Quais etapas devo tomar para ajustar o desempenho da atividade de cópia?
- Quais otimizações de desempenho posso utilizar para uma única execução de atividade de cópia?
- Quais outros fatores externos devo considerar ao otimizar o desempenho da cópia?
Observação
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.
Copiar o desempenho e a escalabilidade que podem ser alcançados usando os pipelines do Azure Data Factory e do Synapse
Os pipelines do Azure Data Factory e do Synapse oferecem uma arquitetura sem servidor que permite o paralelismo em níveis diferentes.
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 de 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 completa 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:
- Armazenamento de dados de origem
- Armazenamento de dados de destino
- Largura de banda de rede entre os armazenamentos de dados de origem e de destino
A tabela a seguir mostra o cálculo de duração da movimentação de dados. A duração em cada célula é calculada com base em determinada largura de banda de armazenamento de dados e rede e em determinado tamanho de conteúdo de dados.
Observação
A duração fornecida abaixo é destinada a representar o desempenho viá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 Copiar recursos de otimização de desempenho, incluindo o uso de ForEach para particionar e gerar várias atividades de cópia simultâneas. Recomendamos que você siga as etapas fornecidas em Etapas de ajuste de desempenho para otimizar o desempenho da cópia para o seu conjunto de dados específico e a 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 cobrança.
Tamanho dos dados / largura de banda |
50 Mbps | 100 Mbps | 500 Mbps | 1 Gbps | 5 Gbps | 10 Gbps | 50 Gbps |
---|---|---|---|---|---|---|---|
1 GB | 2,7 min | 1,4 min | 0,3 min | 0,1 min | 0,03 min | 0,01 min | 0,0 min |
10 GB | 27,3 min | 13,7 min | 2,7 min | 1,3 min | 0,3 min | 0,1 min | 0,03 min |
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 é escalonável em diferentes níveis:
O fluxo de controle pode iniciar várias atividades de cópia em paralelo, por exemplo, usando o loop For Each.
Uma atividade Copy individual pode aproveitar os recursos de computação escalonáveis.
- Ao usar o IR (Integration Runtime) do Azure, você pode especificar até 256 DIUs (unidades de integração de dados) para cada atividade de cópia, sem servidor.
- Ao usar o IR auto-hospedado, você pode adotar uma das seguintes abordagens:
- Escalar verticalmente o computador manualmente.
- Escalar horizontalmente para vários computadores (até 4 nós) e uma única atividade de cópia particionará seu conjunto de arquivos em todos os nós.
Uma só atividade de cópia faz leituras e gravações no armazenamento de dados usando vários threads em paralelo.
Etapas de ajuste do desempenho
Execute 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 com a atividade de cópia em relação a um exemplo de dados representativo. O conjunto de dados que você escolher deve representar seus padrões de dado típicos ao longo dos seguintes atributos:
- Estrutura de pastas
- Padrão do 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 runtime de integração do Azure:
Comece com valores padrão para DIU (unidades de integração de dados) e configurações de cópia paralelas.
Se a atividade de cópia estiver sendo executada em um runtime de integração auto-hospedada:
recomenda-se usar um computador dedicado para hospedar o IR. O computador deve ser separado do servidor que hospeda o armazenamento de dados. Comece com valores padrão para a configuração de cópia paralela e use um único nó para o IR auto-hospedado.
Realize uma execução de teste de desempenho. Anote o desempenho obtido. Inclua os valores reais usados, como DIUs e cópias paralelas. Consulte monitoramento de atividade de cópia 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.
Faça iteração para realizar execuções de teste de desempenho adicional seguindo as diretrizes de solução de problemas e ajuste. Caso a execução de uma única atividade de cópia não consiga uma melhor taxa de transferência, considere a possibilidade de maximizar a taxa de transferência agregada executando várias cópias simultaneamente. Essa opção é discutida no próximo item numerado.
Como maximizar a taxa de transferência agregada executando várias cópias simultaneamente:
Agora, você maximizou o desempenho de uma única atividade de cópia. Se ainda não tiver atingido os limites superiores da taxa de transferência do seu ambiente, você poderá executar várias atividades de cópia em paralelo. Você pode executar em paralelo usando construções de fluxo de controle. Um desses constructos é o For Each loop. Para obter mais informações, consulte os artigos a seguir sobre modelos de solução:
Expandir a configuração para todo o conjunto de dados.
Quando você estiver satisfeito com os resultados e o desempenho da execução, 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 o teste de desempenho para seu cenário. E saiba como solucionar o problema de desempenho de cada execução da atividade de cópia na seção 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 Integration Runtime auto-hospedado
- Cópia paralela
- Cópia em etapas
Unidades de Integração de Dados
Uma DIU (unidade de integração de dados) é uma medida que representa o poder de uma única unidade nos pipelines do Azure Data Factory e do Synapse. A potência é uma combinação de CPU, memória e alocação de recursos de rede. A DIU se aplica somente ao runtime de integração do Azure. A DIU não se aplica ao runtime de integração auto-hospedada. Saiba mais aqui.
Escalabilidade do Integration Runtime auto-hospedado
Talvez você queira hospedar uma carga de trabalho simultânea cada vez maior. Ou talvez você queira obter um desempenho maior em seu nível de carga de trabalho atual. Você pode aprimorar a escala de processamento com as seguintes abordagens:
- Você pode escalar verticalmente o IR auto-hospedado, aumentando o número de trabalhos simultâneos que podem ser executados em um nó.
Escalar verticalmente funcionará somente se o processador e a memória do nó estiverem sendo menores que totalmente utilizados. - Você pode escalar horizontalmente o IR auto-hospedado adicionando mais nós (computadores).
Para obter mais informações, consulte:
- Recursos de otimização de desempenho da atividade de cópia: escalabilidade do runtime de integração auto-hospedada
- Criar e configurar um runtime de integração auto-hospedada: considerações de escala
Cópia paralela
Você pode definir a propriedade parallelCopies
para indicar o paralelismo que deseja que a atividade de cópia use. Considere essa propriedade como o número máximo de threads na atividade de cópia. Os threads operam em paralelo. Os threads leem da origem ou gravam em seus armazenamentos de dados do coletor. Saiba mais.
Cópia em etapas
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 Blobs como um armazenamento de preparo provisório. Saiba mais.
Conteúdo relacionado
Confira os outros artigos sobre atividade de cópia:
- Visão geral da atividade de cópia
- Solucionar problemas de desempenho da atividade de cópia
- Copiar recursos de otimização de desempenho da atividade de cópia
- Usar o Azure Data Factory para migrar dados do data lake ou do data warehouse para o Azure
- Migrar dados do Amazon S3 para o Armazenamento do Azure