Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
APLICA-SE A:
Azure Data Factory
Azure Synapse Analytics
Dica
Data Factory no Microsoft Fabric é a próxima geração de Azure Data Factory, com uma arquitetura mais simples, IA interna e novos recursos. Se você não estiver familiarizado com a integração de dados, comece com Fabric Data Factory. As cargas de trabalho existentes do ADF podem ser atualizadas para Fabric para acessar novos recursos em ciência de dados, análise em tempo real e relatórios.
Este artigo descreve os recursos de otimização de desempenho da atividade de cópia que você pode aproveitar em pipelines do Azure Data Factory e do Synapse.
Configurando recursos de desempenho com a interface do usuário
Ao selecionar um atividade Copy na tela do editor de pipeline e escolher a guia Configurações na área de configuração de atividade abaixo da tela, você verá opções para configurar todos os recursos de desempenho detalhados abaixo.
Unidades de Integração de Dados
Uma Unidade de Integração de Dados é uma medida que representa a potência (uma combinação de CPU, memória e alocação de recursos da rede) de uma unidade única no serviço. A Unidade de Integração de Dados se aplica apenas ao Azure Integration Runtime, mas não ao self-hosted Integration Runtime.
A quantidade de DIUs permitidas para executar uma atividade de cópia está entre 4 e 256. Se não for especificado ou você escolher "Auto" na interface do usuário, o serviço aplicará dinamicamente a configuração ideal para DIUs com base no seu par origem-coletor e no padrão de dados. A tabela a seguir lista os intervalos de DIUs compatíveis e o comportamento padrão em diferentes cenários de cópia:
| Copiar cenário | Intervalo de DIUs suportado | DIUs padrão determinadas pelo serviço |
|---|---|---|
| Entre repositórios de arquivos |
-
Copiar de ou para um arquivo único: 4 - Copiar de e para vários arquivos: de 4 a 256 dependendo do número e do tamanho dos arquivos Por exemplo, se você copiar dados de uma pasta com quatro arquivos grandes e optar por preservar a hierarquia, a quantidade máxima efetiva de DIUs será 16, Quando você opta por mesclar o arquivo, a quantidade máxima efetiva de DIUs é 4. |
Entre 4 e 32, dependendo do número e tamanho dos arquivos |
| Do repositório de arquivos para um repositório que não seja de arquivos |
-
Copiar de um único arquivo: 4 - Copiar de vários arquivos: de 4 a 256 dependendo do número e do tamanho dos arquivos Por exemplo, se você copiar dados de uma pasta com quatro arquivos grandes, a quantidade máxima efetiva de DIUs será 16. |
-
Copiar para o Banco de Dados SQL do Azure ou o Azure Cosmos DB: entre 4 e 16 dependendo da camada do coletor (DTUs/RUs) e do padrão do arquivo de origem - Copiar no Azure Synapse Analytics usando a instrução PolyBase ou COPY: 2 - Outro cenário: 4 |
| Do repositório que não é de arquivos para o repositório de arquivos |
-
Cópia de armazenamentos de dados habilitados para opção de partição (incluindo Banco de Dados do Azure para PostgreSQL, Banco de Dados SQL do Azure, Instância Gerenciada de SQL do Azure, Azure Synapse Analytics, Oracle, Netezza, SQL Server e Teradata): 4-256 ao escrever em uma pasta e 4 ao escrever em um único arquivo. Observe que uma partição de dados de origem pode usar até 4 DIUs. - Outros cenários: 4 |
-
Copiar do REST ou HTTP: 1 - Copiar do Amazon Redshift usando UNLOAD: 4 - Outro cenário: 4 |
| Entre armazenamentos não baseados em arquivos |
-
Cópia de armazenamentos de dados com opção de partição habilitada (incluindo Banco de Dados do Azure para PostgreSQL, Banco de Dados SQL do Azure, Instância Gerenciada de SQL do Azure, Azure Synapse Analytics, Oracle, Netezza, SQL Server e Teradata): 4-256 ao gravar em uma pasta e 4 ao gravar em um único arquivo. Observe que uma partição de dados de origem pode usar até 4 DIUs. - Outros cenários: 4 |
-
Copiar do REST ou HTTP: 1 - Outro cenário: 4 |
Você pode ver as DIUs usadas para cada execução de cópia na tela de monitoramento da atividade Copy ou na saída da atividade. Para obter mais informações, consulte Monitoramento de atividades de cópia. Para substituir esse padrão, especifique um valor para a propriedade dataIntegrationUnits da seguinte maneira. O número real de DIUs que a operação de cópia usa na execução é igual ou menor que o valor configurado, dependendo do seu padrão de dados.
Você será cobrado da seguinte forma: número de DIUs usadas * duração da cópia * preço unitário por DIU-hora. Veja os preços atuais aqui. A moeda local e descontos separados podem ser aplicáveis a depender do tipo de assinatura.
Exemplo:
"activities":[
{
"name": "Sample copy activity",
"type": "Copy",
"inputs": [...],
"outputs": [...],
"typeProperties": {
"source": {
"type": "BlobSource",
},
"sink": {
"type": "AzureDataLakeStoreSink"
},
"dataIntegrationUnits": 128
}
}
]
Escalabilidade de auto-hospedagem do Integration Runtime
Se você quiser obter uma taxa de transferência mais alta, poderá escalar o IR auto-hospedado verticalmente ou horizontalmente:
- Se a CPU e a memória disponível no nó do IR auto-hospedado não estiverem completamente utilizadas, mas a execução de tarefas simultâneas está atingindo o limite, você deve aumentar o número de tarefas simultâneas que podem ser executadas em um nó. Consulte este link para obter instruções.
- Se, por outro lado, o uso da CPU estiver alto no nó IR auto-hospedado ou se a memória disponível estiver com baixo uso, você poderá adicionar um novo nó para ajudar a escalar horizontalmente a carga entre os vários nós. Consulte este link para obter instruções.
Observe que, nos cenários a seguir, a execução de uma única atividade Copy pode aproveitar vários nós de IR auto-hospedados:
- Copia de dados de armazenamentos de arquivos, dependendo do número e do tamanho dos arquivos.
- Copiar dados do armazenamento de dados habilitado para opção de partição (incluindo Banco de Dados SQL do Azure, Instância Gerenciada de SQL do Azure, Azure Synapse Analytics, Oracle, Netezza, SAP HANA, SAP Open Hub, SAP Table, SQL Server e Teradata), dependendo do número de partições de dados.
Cópia paralela
Você pode definir a cópia paralela (propriedade parallelCopies na definição JSON da atividade de cópia ou configuração Degree of parallelism na guia Configurações das propriedades da atividade de cópia na interface do usuário) na atividade de cópia para indicar o paralelismo que você deseja que a atividade de cópia use. Você pode considerar essa propriedade como o número máximo de threads na atividade Copy que leem a partir de sua origem ou gravam em seus armazenamentos do coletor de dados em paralelo.
A cópia paralela é ortogonal em relação às Unidades de Integração de Dados ou aos nós de IR auto-hospedados. Ela é contada em todos os nós de DIUs ou de IR auto-hospedados.
Para cada execução da atividade de cópia, por padrão, o serviço aplica a configuração de cópia paralela ideal dinamicamente com base no seu par origem-coletor e no padrão de dados.
Dica
O comportamento padrão da cópia paralela geralmente oferece a melhor taxa de transferência, que é determinada automaticamente pelo serviço com base em seu par origem-coletor, no padrão de dados e no número de DIUs ou na CPU/memória/contagem de nós do IR auto-hospedado. Consulte Solucionar problemas de desempenho da atividade de cópia para saber quando ajustar a execução paralela.
A tabela a seguir lista comportamentos da cópia paralela:
| Copiar cenário | Comportamento da cópia paralela |
|---|---|
| Entre repositórios de arquivos |
parallelCopies determina o paralelismo no nível de arquivo. O agrupamento em cada arquivo ocorre em segundo plano de forma automática e transparente. Ele foi projetado para usar o tamanho de bloco mais adequado para um determinado tipo de armazenamento de dados, permitindo carregar dados em paralelo. O número real de cópias paralelas que a atividade Copy usa no tempo de execução não é superior ao número de arquivos existentes. Se o comportamento da cópia for mergeFile no coletor de arquivos, a atividade Copy não poderá aproveitar o paralelismo no nível de arquivo. |
| Do repositório de arquivos para um repositório que não seja de arquivos | - Ao copiar dados no Banco de Dados SQL do Azure ou no Azure Cosmos DB, a cópia paralela padrão também depende da camada do coletor (número de DTUs/RUs). - Ao copiar dados para Azure Tabela, a cópia paralela padrão é 4. |
| Do repositório que não é de arquivos para o repositório de arquivos | - Ao copiar dados do armazenamento de dados habilitado para opção de partição (incluindo Banco de Dados SQL do Azure, Instância Gerenciada de SQL do Azure, Azure Synapse Analytics, Oracle, Amazon RDS para Oracle, Netezza, SAP HANA, SAP Open Hub, SAP Table, SQL Server, Amazon RDS para SQL Server e Teradata), a cópia paralela padrão é 4. O número real de cópias paralelas que a atividade Copy usa no tempo de execução não é superior ao número de partições de dados existentes. Ao usar o Integration Runtime (auto-hospedado) e copiar para o Azure Blob/ADLS Gen2, observe que a quantidade máxima efetiva para cópia paralela é 4 ou 5 por nó de IR. - Em outros cenários, a cópia paralela não terá efeito. Mesmo se o paralelismo for especificado, ele não será aplicado. |
| Entre armazenamentos não baseados em arquivos | - Ao copiar dados no Banco de Dados SQL do Azure ou no Azure Cosmos DB, a cópia paralela padrão também depende da camada do coletor (número de DTUs/RUs). - Ao copiar dados do armazenamento de dados habilitado para opção de partição (incluindo Banco de Dados SQL do Azure, Instância Gerenciada de SQL do Azure, Azure Synapse Analytics, Oracle, Amazon RDS para Oracle, Netezza, SAP HANA, SAP Open Hub, SAP Table, SQL Server, Amazon RDS para SQL Server e Teradata), a cópia paralela padrão é 4. - Ao copiar dados para Azure Tabela, a cópia paralela padrão é 4. |
Para controlar a carga em computadores que hospedam os armazenamentos de dados ou ajustar o desempenho da cópia, você pode substituir o valor padrão e especificar um valor para a propriedade parallelCopies. O valor deve ser um inteiro maior ou igual a 1. Na execução, para ter o melhor desempenho, a atividade Copy usa um valor menor ou igual ao valor definido.
Ao especificar um valor para a propriedade parallelCopies, leve em consideração o aumento da carga em seus armazenamentos de dados de origem e do coletor. Considere também o aumento da carga para o runtime de integração auto-hospedado se a atividade Copy estiver usando ele. O aumento da carga ocorre especialmente quando você tem várias atividades ou execuções simultâneas das mesmas atividades executadas em relação ao mesmo armazenamento de dados. Se você perceber que o armazenamento de dados ou o runtime de integração auto-hospedado está sobrecarregado com a carga, diminua o valor de parallelCopies para aliviá-los.
Exemplo:
"activities":[
{
"name": "Sample copy activity",
"type": "Copy",
"inputs": [...],
"outputs": [...],
"typeProperties": {
"source": {
"type": "BlobSource",
},
"sink": {
"type": "AzureDataLakeStoreSink"
},
"parallelCopies": 32
}
}
]
Cópia em etapas
Ao copiar dados de um armazenamento de dados de origem para um armazenamento de dados de destino, você pode optar por usar o Armazenamento de Blobs do Azure ou o Azure Data Lake Storage Gen2 como um armazenamento intermediário provisório. Esse preparo é especialmente útil nos seguintes casos:
- Você deseja ingerir dados de vários armazenamentos de dados em Azure Synapse Analytics por meio do PolyBase, copiar dados de/para Snowflake ou ingerir dados do Amazon Redshift/HDFS com desempenho. Saiba mais detalhes em:
- Você não deseja abrir portas diferentes da porta 80 e da porta 443 em seu firewall devido às políticas corporativas de TI. Por exemplo, quando você copia dados de um armazenamento de dados local para um Banco de Dados SQL do Azure ou um Azure Synapse Analytics, é necessário ativar a comunicação TCP de saída na porta 1433 para o firewall Windows e seu firewall corporativo. Nesse cenário, a cópia de preparo pode tirar proveito do Integration Runtime (auto-hospedado) para primeiro copiar dados para um armazenamento de preparo por HTTP ou HTTPS na porta 443 e, em seguida, carregar os dados do preparo para o Banco de Dados SQL ou o Azure Synapse Analytics. Nesse fluxo, você não precisa habilitar a porta 1433.
- Às vezes, leva algum tempo para realizar a movimentação de dados híbridos (ou seja, copiar de um armazenamento de dados local para um armazenamento de dados de nuvem) em uma conexão de rede lenta. Para melhorar o desempenho, você pode usar a cópia faseada para compactar os dados nas instalações locais, reduzindo o tempo necessário para transferir os dados para o armazenamento de dados temporário na nuvem. Em seguida, você pode descompactar os dados no armazenamento de preparo antes de carregá-los no armazenamento de dados de destino.
Como funciona a cópia em etapas
Quando você ativa o recurso de preparo, primeiro os dados são copiados do armazenamento de dados de origem para o armazenamento de preparo (traga seu próprio Azure Blob ou Azure Data Lake Storage Gen2). Em seguida, os dados são copiados do preparo para o armazenamento de dados do coletor. A atividade de cópia gerencia automaticamente o fluxo de dois estágios para você e também limpa os dados temporários do armazenamento de preparo após a conclusão da movimentação de dados.
Você precisa conceder permissão de exclusão ao Azure Data Factory no armazenamento de preparo para que os dados temporários possam ser limpos após a execução da atividade de cópia.
Quando você ativa o movimento de dados usando um armazenamento de preparo, pode especificar se deseja que os dados sejam compactados antes de serem movidos do armazenamento de dados de origem para um armazenamento de preparo e, em seguida, descompactados antes de serem movidos de um armazenamento de preparo ou provisório para o armazenamento de dados do coletor.
No momento, não é possível copiar dados de um armazenamento de dados para outro quando eles estão conectados por meio de IRs auto-hospedados, com ou sem cópia preparada. Nesse cenário, você pode configurar duas atividades de cópia encadeadas explicitamente para copiar da origem para o preparo e, em seguida, do preparo para o coletor.
Configuração
Configure a definição enableStaging na atividade Copy para especificar se deseja que os dados sejam preparados no armazenamento antes de carregá-los em um armazenamento de dados de destino. Quando você definir enableStaging como TRUE, especifique as propriedades adicionais listadas na tabela a seguir.
| Propriedade | Descrição | Valor padrão | Obrigatório |
|---|---|---|---|
| enableStaging | Especifique se você deseja copiar dados por meio de um armazenamento temporário intermediário. | Falso | Não |
| linkedServiceName | Especifique o nome de um Armazenamento de Blobs do Azure ou de um serviço vinculado do Azure Data Lake Storage Gen2, que se refere à instância do Armazenamento que você usa como um armazenamento de preparo provisório. | N/D | Sim, quando enableStaging está definido para TRUE |
| caminho | Especifique o caminho que você deseja que contenha os dados preparados. Se você não fornecer um caminho, o serviço criará um contêiner para armazenar os dados temporários. | N/D | Não (Sim quando storageIntegration no conector Snowflake é especificado) |
| habilitarCompressão | Especifica se os dados devem ser compactados antes de serem copiados para o destino. Essa configuração reduz o volume de dados que são transferidos. | Falso | Não |
Observação
Se você usar a cópia preparada com a compactação ativada, a entidade de serviço ou a autenticação MSI do serviço vinculado do blob de preparo não será compatível.
Aqui está um exemplo de definição da atividade "Copy" com as propriedades descritas na tabela anterior:
"activities":[
{
"name": "CopyActivityWithStaging",
"type": "Copy",
"inputs": [...],
"outputs": [...],
"typeProperties": {
"source": {
"type": "OracleSource",
},
"sink": {
"type": "SqlDWSink"
},
"enableStaging": true,
"stagingSettings": {
"linkedServiceName": {
"referenceName": "MyStagingStorage",
"type": "LinkedServiceReference"
},
"path": "stagingcontainer/path"
}
}
}
]
Impacto de cobrança de cópia em etapas
Você é cobrado com base em dois fatores: duração da cópia e tipo de cópia.
- Quando você usa o preparo durante uma cópia de nuvem, que é copiar dados de um armazenamento de dados de nuvem para outro armazenamento de dados de nuvem, com os dois estágios usando o Azure Integration Runtime, é cobrado de você a [soma da duração da cópia das etapas 1 e 2] x [preço unitário da cópia de nuvem].
- Quando você usa o preparo durante uma cópia híbrida, que é copiar dados de um armazenamento de dados local para um armazenamento de dados de nuvem, um estágio capacitado pelo runtime de integração auto-hospedado, é cobrado de você a [duração da cópia híbrida] x [preço unitário da cópia híbrida] + [duração da cópia de nuvem] x [preço unitário da cópia de nuvem].
Conteúdo relacionado
Confira os outros artigos sobre atividade de cópia: