Copiar e transformar dados no Azure Data Lake Storage Gen2 usando o Azure Data Factory ou o Azure Synapse Analytics
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!
O Azure Data Lake Storage Gen2 (ADLS Gen2) é um conjunto de recursos dedicados à análise de big data incorporada ao armazenamento de Blob do Azure. Pode utilizá-lo para interagir com os dados ao utilizar os paradigmas de armazenamento de objetos e do sistema de ficheiros.
Este artigo descreve como usar a Atividade de Cópia para copiar dados de e para o Azure Data Lake Storage Gen2 e usar o Fluxo de Dados para transformar dados no Azure Data Lake Storage Gen2. Para saber mais, leia o artigo introdutório do Azure Data Factory ou do Azure Synapse Analytics.
Gorjeta
Para o cenário de migração de data lake ou data warehouse, saiba mais em Migrar dados do seu data lake ou data warehouse para o Azure.
Capacidades suportadas
Este conector do Azure Data Lake Storage Gen2 tem suporte para os seguintes recursos:
Capacidades suportadas | IR | Ponto final privado gerido |
---|---|---|
Atividade de cópia (origem/coletor) | (1) (2) | ✓ |
Mapeando o fluxo de dados (origem/coletor) | (1) | ✓ |
Atividade de Pesquisa | (1) (2) | ✓ |
Atividade GetMetadata | (1) (2) | ✓ |
Excluir atividade | (1) (2) | ✓ |
(1) Tempo de execução de integração do Azure (2) Tempo de execução de integração auto-hospedado
Para a atividade de cópia, com este conector você pode:
- Copie dados de/para o Azure Data Lake Storage Gen2 usando chave de conta, entidade de serviço ou identidades gerenciadas para autenticações de recursos do Azure.
- Copie arquivos como estão ou analise ou gere arquivos com formatos de arquivo suportados e codecs de compactação.
- Preserve os metadados do arquivo durante a cópia.
- Preserve as ACLs ao copiar do Azure Data Lake Storage Gen1/Gen2.
Começar agora
Gorjeta
Para obter um passo a passo de como usar o conector Data Lake Storage Gen2, consulte Carregar dados no Azure Data Lake Storage Gen2.
Para executar a atividade Copiar com um pipeline, você pode usar uma das seguintes ferramentas ou SDKs:
- A ferramenta Copiar dados
- O portal do Azure
- O SDK do .NET
- O SDK do Python
- Azure PowerShell
- A API REST
- O modelo do Azure Resource Manager
Criar um serviço vinculado do Azure Data Lake Storage Gen2 usando a interface do usuário
Use as etapas a seguir para criar um serviço vinculado do Azure Data Lake Storage Gen2 na interface do usuário do portal do Azure.
Navegue até a guia Gerenciar em seu espaço de trabalho do Azure Data Factory ou Synapse e selecione Serviços Vinculados e clique em Novo:
Procure o Azure Data Lake Storage Gen2 e selecione o conector Azure Data Lake Storage Gen2.
Configure os detalhes do serviço, teste a conexão e crie o novo serviço vinculado.
Detalhes de configuração do conector
As seções a seguir fornecem informações sobre propriedades usadas para definir entidades de pipeline do Data Factory e do Synapse específicas do Data Lake Storage Gen2.
Propriedades do serviço vinculado
O conector do Azure Data Lake Storage Gen2 dá suporte aos seguintes tipos de autenticação. Consulte as seções correspondentes para obter detalhes:
- Autenticação da chave de conta
- Autenticação de assinatura de acesso compartilhado
- Autenticação do principal de serviço
- Autenticação de identidade gerenciada atribuída pelo sistema
- Autenticação de identidade gerenciada atribuída pelo usuário
Nota
- Se quiser usar o tempo de execução de integração pública do Azure para se conectar ao Data Lake Storage Gen2 aproveitando a opção Permitir que serviços confiáveis da Microsoft acessem essa conta de armazenamento habilitada no firewall do Armazenamento do Azure, você deverá usar a autenticação de identidade gerenciada. Para obter mais informações sobre as configurações de firewalls do Armazenamento do Azure, consulte Configurar firewalls do Armazenamento do Azure e redes virtuais.
- Quando você usa a instrução PolyBase ou COPY para carregar dados no Azure Synapse Analytics, se sua origem ou preparo Data Lake Storage Gen2 estiver configurado com um ponto de extremidade da Rede Virtual do Azure, você deverá usar a autenticação de identidade gerenciada conforme exigido pelo Azure Synapse. Consulte a seção de autenticação de identidade gerenciada com mais pré-requisitos de configuração.
Autenticação da chave de conta
Para usar a autenticação de chave de conta de armazenamento, as seguintes propriedades são suportadas:
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type deve ser definida como AzureBlobFS. | Sim |
url | Ponto de extremidade para Data Lake Storage Gen2 com o padrão de https://<accountname>.dfs.core.windows.net . |
Sim |
accountKey | Chave de conta para o Data Lake Storage Gen2. Marque este campo como um SecureString para armazená-lo com segurança ou faça referência a um segredo armazenado no Cofre de Chaves do Azure. | Sim |
ConecteVia | O tempo de execução de integração a ser usado para se conectar ao armazenamento de dados. Você pode usar o tempo de execução de integração do Azure ou um tempo de execução de integração auto-hospedado se seu armazenamento de dados estiver em uma rede privada. Se essa propriedade não for especificada, o tempo de execução de integração padrão do Azure será usado. | Não |
Nota
O ponto de extremidade secundário do sistema de arquivos ADLS não é suportado ao usar a autenticação de chave de conta. Você pode usar outros tipos de autenticação.
Exemplo:
{
"name": "AzureDataLakeStorageGen2LinkedService",
"properties": {
"type": "AzureBlobFS",
"typeProperties": {
"url": "https://<accountname>.dfs.core.windows.net",
"accountkey": {
"type": "SecureString",
"value": "<accountkey>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Autenticação de assinatura de acesso compartilhado
Uma assinatura de acesso compartilhado fornece acesso delegado aos recursos em sua conta de armazenamento. Você pode usar uma assinatura de acesso compartilhado para conceder a um cliente permissões limitadas para objetos em sua conta de armazenamento por um tempo especificado.
Não tem de partilhar as chaves de acesso da sua conta. A assinatura de acesso compartilhado é um URI que engloba em seus parâmetros de consulta todas as informações necessárias para o acesso autenticado a um recurso de armazenamento. Para acessar recursos de armazenamento com a assinatura de acesso compartilhado, o cliente só precisa passar a assinatura de acesso compartilhado para o construtor ou método apropriado.
Para obter mais informações sobre assinaturas de acesso compartilhado, consulte Assinaturas de acesso compartilhado: entenda o modelo de assinatura de acesso compartilhado.
Nota
- O serviço agora suporta assinaturas de acesso compartilhado de serviço e assinaturas de acesso compartilhado de conta. Para obter mais informações sobre assinaturas de acesso compartilhado, consulte Conceder acesso limitado aos recursos do Armazenamento do Azure usando assinaturas de acesso compartilhado.
- Em configurações posteriores de conjunto de dados, o caminho da pasta é o caminho absoluto a partir do nível do contêiner. Você precisa configurar um alinhado com o caminho em seu URI SAS.
As seguintes propriedades são suportadas para usar a autenticação de assinatura de acesso compartilhado:
Property | Descrição | Obrigatório |
---|---|---|
tipo | A type propriedade deve ser definida como AzureBlobFS (sugerida) |
Sim |
sasUri | Especifique o URI da assinatura de acesso compartilhado para os recursos de armazenamento, como blob ou contêiner. Marque este campo como SecureString para armazená-lo com segurança. Você também pode colocar o token SAS no Cofre da Chave do Azure para usar a rotação automática e remover a parte do token. Para obter mais informações, consulte os seguintes exemplos e Armazenar credenciais no Azure Key Vault. |
Sim |
ConecteVia | O tempo de execução de integração a ser usado para se conectar ao armazenamento de dados. Você pode usar o tempo de execução de integração do Azure ou o tempo de execução de integração auto-hospedado (se seu armazenamento de dados estiver em uma rede privada). Se essa propriedade não for especificada, o serviço usará o tempo de execução de integração padrão do Azure. | Não |
Nota
Se você estiver usando o AzureStorage
tipo de serviço vinculado, ele ainda é suportado como está. Mas sugerimos que você use o novo AzureDataLakeStorageGen2
tipo de serviço vinculado no futuro.
Exemplo:
{
"name": "AzureDataLakeStorageGen2LinkedService",
"properties": {
"type": "AzureBlobFS",
"typeProperties": {
"sasUri": {
"type": "SecureString",
"value": "<SAS URI of the Azure Storage resource e.g. https://<accountname>.blob.core.windows.net/?sv=<storage version>&st=<start time>&se=<expire time>&sr=<resource>&sp=<permissions>&sip=<ip range>&spr=<protocol>&sig=<signature>>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Exemplo: armazenar a chave da conta no Cofre da Chave do Azure
{
"name": "AzureDataLakeStorageGen2LinkedService",
"properties": {
"type": "AzureBlobFS",
"typeProperties": {
"sasUri": {
"type": "SecureString",
"value": "<SAS URI of the Azure Storage resource without token e.g. https://<accountname>.blob.core.windows.net/>"
},
"sasToken": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName with value of SAS token e.g. ?sv=<storage version>&st=<start time>&se=<expire time>&sr=<resource>&sp=<permissions>&sip=<ip range>&spr=<protocol>&sig=<signature>>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Ao criar um URI de assinatura de acesso compartilhado, considere os seguintes pontos:
- Defina permissões de leitura/gravação apropriadas em objetos com base em como o serviço vinculado (leitura, gravação, leitura/gravação) é usado.
- Defina o tempo de expiração adequadamente. Certifique-se de que o acesso aos objetos de armazenamento não expire dentro do período ativo do pipeline.
- O URI deve ser criado no contêiner ou blob certo com base na necessidade. Um URI de assinatura de acesso compartilhado a um blob permite que o data factory ou o pipeline Synapse acesse esse blob específico. Um URI de assinatura de acesso compartilhado a um contêiner de armazenamento de Blob permite que o data factory ou o pipeline Synapse itere através de blobs nesse contêiner. Para fornecer acesso a mais ou menos objetos posteriormente, ou para atualizar o URI da assinatura de acesso compartilhado, lembre-se de atualizar o serviço vinculado com o novo URI.
Autenticação do principal de serviço
Para usar a autenticação da entidade de serviço, siga estas etapas.
Registre um aplicativo com a plataforma de identidade da Microsoft. Para saber como, consulte Guia de início rápido: registrar um aplicativo com a plataforma de identidade da Microsoft. Anote estes valores, que você usa para definir o serviço vinculado:
- ID da aplicação
- Chave de aplicação
- ID de Inquilino do
Conceda à entidade de serviço a permissão adequada. Veja exemplos de como a permissão funciona no Data Lake Storage Gen2 a partir de listas de controle de acesso em arquivos e diretórios
- Como origem: no Explorador de Armazenamento, conceda, no mínimo, a permissão Executar a TODAS as pastas de origem e ao sistema de ficheiros, bem como a permissão Ler aos ficheiros a copiar. Em alternativa, no controlo de acesso (IAM), conceda, no mínimo, a função Leitor de Dados do Armazenamento de Blobs.
- Como sink: no Explorador de Armazenamento, conceda, no mínimo, a permissão Executar a TODAS as pastas de origem e ao sistema de ficheiros, bem como a permissão Escrever à pasta do sink. Em alternativa, no controlo de acesso (IAM), conceda, no mínimo, a função Contribuidor de Dados do Armazenamento de Blobs.
Nota
Se você usar a interface do usuário para criar e a entidade de serviço não estiver definida com a função "Leitor de dados de Blob de armazenamento/Colaborador" no IAM, ao fazer conexão de teste ou navegar/navegar em pastas, escolha "Testar conexão com o caminho do arquivo" ou "Procurar a partir do caminho especificado" e especifique um caminho com permissão Ler + Executar para continuar.
Estas propriedades são suportadas para o serviço vinculado:
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type deve ser definida como AzureBlobFS. | Sim |
url | Ponto de extremidade para Data Lake Storage Gen2 com o padrão de https://<accountname>.dfs.core.windows.net . |
Sim |
servicePrincipalId | Especifique o ID do cliente do aplicativo. | Sim |
servicePrincipalCredentialType | O tipo de credencial a ser usado para autenticação da entidade de serviço. Os valores permitidos são ServicePrincipalKey e ServicePrincipalCert. | Sim |
servicePrincipalCredential | A credencial da entidade de serviço. Ao usar ServicePrincipalKey como o tipo de credencial, especifique a chave do aplicativo. Marque este campo como SecureString para armazená-lo com segurança ou faça referência a um segredo armazenado no Cofre de Chaves do Azure. Ao usar ServicePrincipalCert como credencial, faça referência a um certificado no Cofre da Chave do Azure e verifique se o tipo de conteúdo do certificado é PKCS #12. |
Sim |
servicePrincipalKey | Especifique a chave do aplicativo. Marque este campo como SecureString para armazená-lo com segurança ou faça referência a um segredo armazenado no Cofre de Chaves do Azure. Esta propriedade ainda é suportada como está para servicePrincipalId + servicePrincipalKey . À medida que o ADF adiciona nova autenticação de certificado de entidade de serviço, o novo modelo de autenticação da entidade de serviço é servicePrincipalId servicePrincipalCredential + servicePrincipalCredentialType + . |
Não |
inquilino | Especifique as informações do locatário (nome de domínio ou ID do locatário) sob as quais seu aplicativo reside. Recupere-o passando o mouse no canto superior direito do portal do Azure. | Sim |
azureCloudType | Para autenticação da entidade de serviço, especifique o tipo de ambiente de nuvem do Azure no qual seu aplicativo Microsoft Entra está registrado. Os valores permitidos são AzurePublic, AzureChina, AzureUsGovernment e AzureGermany. Por padrão, a fábrica de dados ou o ambiente de nuvem do pipeline Synapse é usado. |
Não |
ConecteVia | O tempo de execução de integração a ser usado para se conectar ao armazenamento de dados. Você pode usar o tempo de execução de integração do Azure ou um tempo de execução de integração auto-hospedado se seu armazenamento de dados estiver em uma rede privada. Se não for especificado, o tempo de execução de integração padrão do Azure será usado. | Não |
Exemplo: usando a autenticação de chave da entidade de serviço
Você também pode armazenar a chave principal do serviço no Cofre de Chaves do Azure.
{
"name": "AzureDataLakeStorageGen2LinkedService",
"properties": {
"type": "AzureBlobFS",
"typeProperties": {
"url": "https://<accountname>.dfs.core.windows.net",
"servicePrincipalId": "<service principal id>",
"servicePrincipalCredentialType": "ServicePrincipalKey",
"servicePrincipalCredential": {
"type": "SecureString",
"value": "<service principal key>"
},
"tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Exemplo: usando a autenticação de certificado da entidade de serviço
{
"name": "AzureDataLakeStorageGen2LinkedService",
"properties": {
"type": "AzureBlobFS",
"typeProperties": {
"url": "https://<accountname>.dfs.core.windows.net",
"servicePrincipalId": "<service principal id>",
"servicePrincipalCredentialType": "ServicePrincipalCert",
"servicePrincipalCredential": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<AKV reference>",
"type": "LinkedServiceReference"
},
"secretName": "<certificate name in AKV>"
},
"tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Autenticação de identidade gerenciada atribuída pelo sistema
Uma fábrica de dados ou um espaço de trabalho Synapse pode ser associado a uma identidade gerenciada atribuída ao sistema. Você pode usar diretamente essa identidade gerenciada atribuída ao sistema para autenticação do Data Lake Storage Gen2, semelhante ao uso de sua própria entidade de serviço. Ele permite que essa fábrica ou espaço de trabalho designado acesse e copie dados de ou para o Data Lake Storage Gen2.
Para usar a autenticação de identidade gerenciada atribuída pelo sistema, siga estas etapas.
Recupere as informações de identidade gerenciada atribuídas pelo sistema copiando o valor do ID do objeto de identidade gerenciado gerado junto com sua fábrica de dados ou espaço de trabalho Sinapse.
Conceda à identidade gerenciada atribuída pelo sistema a permissão adequada. Veja exemplos de como a permissão funciona no Data Lake Storage Gen2 em listas de controle de acesso em arquivos e diretórios.
- Como origem: no Explorador de Armazenamento, conceda, no mínimo, a permissão Executar a TODAS as pastas de origem e ao sistema de ficheiros, bem como a permissão Ler aos ficheiros a copiar. Em alternativa, no controlo de acesso (IAM), conceda, no mínimo, a função Leitor de Dados do Armazenamento de Blobs.
- Como sink: no Explorador de Armazenamento, conceda, no mínimo, a permissão Executar a TODAS as pastas de origem e ao sistema de ficheiros, bem como a permissão Escrever à pasta do sink. Em alternativa, no controlo de acesso (IAM), conceda, no mínimo, a função Contribuidor de Dados do Armazenamento de Blobs.
Estas propriedades são suportadas para o serviço vinculado:
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type deve ser definida como AzureBlobFS. | Sim |
url | Ponto de extremidade para Data Lake Storage Gen2 com o padrão de https://<accountname>.dfs.core.windows.net . |
Sim |
ConecteVia | O tempo de execução de integração a ser usado para se conectar ao armazenamento de dados. Você pode usar o tempo de execução de integração do Azure ou um tempo de execução de integração auto-hospedado se seu armazenamento de dados estiver em uma rede privada. Se não for especificado, o tempo de execução de integração padrão do Azure será usado. | Não |
Exemplo:
{
"name": "AzureDataLakeStorageGen2LinkedService",
"properties": {
"type": "AzureBlobFS",
"typeProperties": {
"url": "https://<accountname>.dfs.core.windows.net",
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Autenticação de identidade gerenciada atribuída pelo usuário
Uma fábrica de dados pode ser atribuída com uma ou várias identidades gerenciadas atribuídas pelo usuário. Você pode usar essa identidade gerenciada atribuída pelo usuário para autenticação de armazenamento de Blob, que permite acessar e copiar dados de ou para o Data Lake Storage Gen2. Para saber mais sobre identidades gerenciadas para recursos do Azure, consulte Identidades gerenciadas para recursos do Azure
Para usar a autenticação de identidade gerenciada atribuída pelo usuário, siga estas etapas:
Crie uma ou várias identidades gerenciadas atribuídas pelo usuário e conceda acesso ao Azure Data Lake Storage Gen2. Veja exemplos de como a permissão funciona no Data Lake Storage Gen2 em listas de controle de acesso em arquivos e diretórios.
- Como origem: no Explorador de Armazenamento, conceda, no mínimo, a permissão Executar a TODAS as pastas de origem e ao sistema de ficheiros, bem como a permissão Ler aos ficheiros a copiar. Em alternativa, no controlo de acesso (IAM), conceda, no mínimo, a função Leitor de Dados do Armazenamento de Blobs.
- Como sink: no Explorador de Armazenamento, conceda, no mínimo, a permissão Executar a TODAS as pastas de origem e ao sistema de ficheiros, bem como a permissão Escrever à pasta do sink. Em alternativa, no controlo de acesso (IAM), conceda, no mínimo, a função Contribuidor de Dados do Armazenamento de Blobs.
Atribua uma ou várias identidades gerenciadas atribuídas pelo usuário ao seu data factory e crie credenciais para cada identidade gerenciada atribuída pelo usuário.
Estas propriedades são suportadas para o serviço vinculado:
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type deve ser definida como AzureBlobFS. | Sim |
url | Ponto de extremidade para Data Lake Storage Gen2 com o padrão de https://<accountname>.dfs.core.windows.net . |
Sim |
credenciais | Especifique a identidade gerenciada atribuída pelo usuário como o objeto de credencial. | Sim |
ConecteVia | O tempo de execução de integração a ser usado para se conectar ao armazenamento de dados. Você pode usar o tempo de execução de integração do Azure ou um tempo de execução de integração auto-hospedado se seu armazenamento de dados estiver em uma rede privada. Se não for especificado, o tempo de execução de integração padrão do Azure será usado. | Não |
Exemplo:
{
"name": "AzureDataLakeStorageGen2LinkedService",
"properties": {
"type": "AzureBlobFS",
"typeProperties": {
"url": "https://<accountname>.dfs.core.windows.net",
"credential": {
"referenceName": "credential1",
"type": "CredentialReference"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Nota
Se você usar a interface do usuário do Data Factory para criar e a identidade gerenciada não estiver definida com a função "Leitor de Dados de Blob de Armazenamento/Colaborador" no IAM, ao fazer conexão de teste ou navegar/navegar em pastas, escolha "Testar conexão com o caminho do arquivo" ou "Procurar a partir do caminho especificado" e especifique um caminho com permissão Ler + Executar para continuar.
Importante
Se você usar a instrução PolyBase ou COPY para carregar dados do Data Lake Storage Gen2 no Azure Synapse Analytics, ao usar a autenticação de identidade gerenciada para o Data Lake Storage Gen2, siga também as etapas 1 a 3 nesta orientação. Essas etapas registrarão seu servidor com a ID do Microsoft Entra e atribuirão a função de Colaborador de Dados de Blob de Armazenamento ao seu servidor. O Data Factory trata do resto. Se você configurar o armazenamento de Blob com um ponto de extremidade da Rede Virtual do Azure, também precisará ter a opção Permitir que serviços confiáveis da Microsoft acessem essa conta de armazenamento ativada no menu Configurações de firewalls e redes virtuais da conta de armazenamento do Azure, conforme exigido pelo Azure Synapse.
Propriedades do conjunto de dados
Para obter uma lista completa de seções e propriedades disponíveis para definir conjuntos de dados, consulte Conjuntos de dados.
O Azure Data Factory suporta os seguintes formatos de ficheiro. Consulte cada artigo para obter as configurações baseadas em formato.
- Formato Avro
- Formato binário
- Formato de texto delimitado
- Formato Excel
- Formato JSON
- Formato ORC
- Formato Parquet
- Formato XML
As seguintes propriedades são suportadas para o Data Lake Storage Gen2 em location
configurações no conjunto de dados baseado em formato:
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type em location no conjunto de dados deve ser definida como AzureBlobFSLocation. |
Sim |
Sistema de arquivos | O nome do sistema de arquivos Data Lake Storage Gen2. | Não |
folderPath | O caminho para uma pasta sob o sistema de arquivos fornecido. Se você quiser usar um curinga para filtrar pastas, ignore essa configuração e especifique-a nas configurações da fonte de atividade. | Não |
fileName | O nome do arquivo sob o determinado fileSystem + folderPath. Se você quiser usar um curinga para filtrar arquivos, ignore essa configuração e especifique-a nas configurações da fonte de atividade. | Não |
Exemplo:
{
"name": "DelimitedTextDataset",
"properties": {
"type": "DelimitedText",
"linkedServiceName": {
"referenceName": "<Data Lake Storage Gen2 linked service name>",
"type": "LinkedServiceReference"
},
"schema": [ < physical schema, optional, auto retrieved during authoring > ],
"typeProperties": {
"location": {
"type": "AzureBlobFSLocation",
"fileSystem": "filesystemname",
"folderPath": "folder/subfolder"
},
"columnDelimiter": ",",
"quoteChar": "\"",
"firstRowAsHeader": true,
"compressionCodec": "gzip"
}
}
}
Propriedades da atividade Copy
Para obter uma lista completa de seções e propriedades disponíveis para definir atividades, consulte Copiar configurações de atividade e Pipelines e atividades. Esta seção fornece uma lista de propriedades suportadas pela fonte e pelo coletor do Data Lake Storage Gen2.
Azure Data Lake Storage Gen2 como um tipo de origem
O Azure Data Factory suporta os seguintes formatos de ficheiro. Consulte cada artigo para obter as configurações baseadas em formato.
- Formato Avro
- Formato binário
- Formato de texto delimitado
- Formato Excel
- Formato JSON
- Formato ORC
- Formato Parquet
- Formato XML
Você tem várias opções para copiar dados do ADLS Gen2:
- Copie do caminho especificado no conjunto de dados.
- Filtro curinga em relação ao caminho da pasta ou nome do arquivo, consulte
wildcardFolderPath
ewildcardFileName
. - Copie os arquivos definidos em um determinado arquivo de texto como conjunto de arquivos, consulte
fileListPath
.
As seguintes propriedades são suportadas para o Data Lake Storage Gen2 em storeSettings
configurações na fonte de cópia baseada em formato:
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type under storeSettings deve ser definida como AzureBlobFSReadSettings. |
Sim |
Localize os ficheiros a copiar: | ||
OPÇÃO 1: caminho estático |
Copie do sistema de arquivos fornecido ou do caminho da pasta/arquivo especificado no conjunto de dados. Se você quiser copiar todos os arquivos de um sistema de arquivos/pasta, especifique wildcardFileName adicionalmente como * . |
|
OPÇÃO 2: curinga - wildcardFolderPath |
O caminho da pasta com caracteres curinga sob o sistema de arquivos fornecido configurado no conjunto de dados para filtrar pastas de origem. Os curingas permitidos são: * (corresponde a zero ou mais caracteres) e ? (corresponde a zero ou caractere único); use ^ para escapar se o nome da pasta real tiver curinga ou esse caractere de escape dentro. Veja mais exemplos em Exemplos de filtros de pastas e ficheiros. |
Não |
OPÇÃO 2: curinga - wildcardFileName |
O nome do arquivo com caracteres curinga sob o sistema de arquivos fornecido + folderPath/wildcardFolderPath para filtrar arquivos de origem. Os curingas permitidos são: * (corresponde a zero ou mais caracteres) e ? (corresponde a zero ou caractere único); use ^ para escapar se o nome do arquivo real tiver curinga ou esse caractere de escape dentro. Veja mais exemplos em Exemplos de filtros de pastas e ficheiros. |
Sim |
OPÇÃO 3: uma lista de ficheiros - fileListPath |
Indica para copiar um determinado conjunto de arquivos. Aponte para um arquivo de texto que inclua uma lista de arquivos que você deseja copiar, um arquivo por linha, que é o caminho relativo para o caminho configurado no conjunto de dados. Ao usar essa opção, não especifique o nome do arquivo no conjunto de dados. Veja mais exemplos em Exemplos de lista de arquivos. |
Não |
Configurações adicionais: | ||
recursiva | Indica se os dados são lidos recursivamente das subpastas ou somente da pasta especificada. Observe que quando recursivo é definido como true e o coletor é um armazenamento baseado em arquivo, uma pasta ou subpasta vazia não é copiada ou criada no coletor. Os valores permitidos são true (padrão) e false. Esta propriedade não se aplica quando você configura fileListPath o . |
Não |
deleteFilesAfterCompletion | Indica se os arquivos binários serão excluídos do armazenamento de origem depois de serem movidos com êxito para o repositório de destino. A exclusão do arquivo é por arquivo, portanto, quando a atividade de cópia falhar, você verá que alguns arquivos já foram copiados para o destino e excluídos da origem, enquanto outros ainda permanecem no armazenamento de origem. Esta propriedade só é válida no cenário de cópia de arquivos binários. O valor padrão: false. |
Não |
modifiedDatetimeStart | Filtro de arquivos com base no atributo: Última modificação. Os arquivos serão selecionados se o tempo da última modificação for maior ou igual a modifiedDatetimeStart e menor que modifiedDatetimeEnd . A hora é aplicada ao fuso horário UTC no formato "2018-12-01T05:00:00Z". As propriedades podem ser NULL, o que significa que nenhum filtro de atributo de arquivo será aplicado ao conjunto de dados. Quando modifiedDatetimeStart tem valor datetime, mas modifiedDatetimeEnd é NULL, significa que os arquivos cujo último atributo modificado é maior ou igual ao valor datetime serão selecionados. Quando modifiedDatetimeEnd tem valor datetime, mas modifiedDatetimeStart é NULL, significa que os arquivos cujo último atributo modificado é menor que o valor datetime serão selecionados.Esta propriedade não se aplica quando você configura fileListPath o . |
Não |
modifiedDatetimeEnd | Mesmo que acima. | Não |
enablePartitionDiscovery | Para arquivos particionados, especifique se deseja analisar as partições do caminho do arquivo e adicioná-las como colunas de origem adicionais. Os valores permitidos são false (padrão) e true. |
Não |
partitionRootPath | Quando a descoberta de partições estiver habilitada, especifique o caminho raiz absoluto para ler pastas particionadas como colunas de dados. Se não for especificado, por padrão, - Quando você usa o caminho do arquivo no conjunto de dados ou na lista de arquivos na origem, o caminho da raiz da partição é o caminho configurado no conjunto de dados. - Quando você usa o filtro de pasta curinga, o caminho da raiz da partição é o subcaminho antes do primeiro curinga. Por exemplo, supondo que você configure o caminho no conjunto de dados como "root/folder/year=2020/month=08/day=27": - Se você especificar o caminho da raiz da partição como "root/folder/year=2020", a atividade de cópia gerará mais duas colunas month e day com o valor "08" e "27", respectivamente, além das colunas dentro dos arquivos.- Se o caminho raiz da partição não for especificado, nenhuma coluna extra será gerada. |
Não |
maxConcurrentConnections | O limite superior de conexões simultâneas estabelecidas para o armazenamento de dados durante a execução da atividade. Especifique um valor somente quando quiser limitar conexões simultâneas. | Não |
Exemplo:
"activities":[
{
"name": "CopyFromADLSGen2",
"type": "Copy",
"inputs": [
{
"referenceName": "<Delimited text input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "DelimitedTextSource",
"formatSettings":{
"type": "DelimitedTextReadSettings",
"skipLineCount": 10
},
"storeSettings":{
"type": "AzureBlobFSReadSettings",
"recursive": true,
"wildcardFolderPath": "myfolder*A",
"wildcardFileName": "*.csv"
}
},
"sink": {
"type": "<sink type>"
}
}
}
]
Azure Data Lake Storage Gen2 como um tipo de coletor
O Azure Data Factory suporta os seguintes formatos de ficheiro. Consulte cada artigo para obter as configurações baseadas em formato.
As seguintes propriedades são suportadas para o Data Lake Storage Gen2 em storeSettings
configurações no coletor de cópia baseado em formato:
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type under storeSettings deve ser definida como AzureBlobFSWriteSettings. |
Sim |
copyBehavior | Define o comportamento de cópia quando a origem são arquivos de um armazenamento de dados baseado em arquivo. Os valores permitidos são: - PreserveHierarchy (padrão): Preserva a hierarquia de arquivos na pasta de destino. O caminho relativo do arquivo de origem para a pasta de origem é idêntico ao caminho relativo do arquivo de destino para a pasta de destino. - FlattenHierarchy: Todos os arquivos da pasta de origem estão no primeiro nível da pasta de destino. Os arquivos de destino têm nomes gerados automaticamente. - MergeFiles: Mescla todos os arquivos da pasta de origem para um arquivo. Se o nome do arquivo for especificado, o nome do arquivo mesclado será o nome especificado. Caso contrário, é um nome de arquivo gerado automaticamente. |
Não |
blockSizeInMB | Especifique o tamanho do bloco em MB usado para gravar dados no ADLS Gen2. Saiba mais sobre Blobs de bloco. O valor permitido está entre 4 MB e 100 MB. Por padrão, o ADF determina automaticamente o tamanho do bloco com base no tipo de armazenamento de origem e nos dados. Para cópia não-binária no ADLS Gen2, o tamanho de bloco padrão é de 100 MB para caber no máximo aproximadamente 4,75 TB de dados. Pode não ser ideal quando seus dados não são grandes, especialmente quando você usa o Self-hosted Integration Runtime com rede fraca, resultando em tempo limite de operação ou problema de desempenho. Você pode especificar explicitamente um tamanho de bloco, enquanto garante que blockSizeInMB*50000 seja grande o suficiente para armazenar os dados, caso contrário, a execução da atividade de cópia falhará. |
Não |
maxConcurrentConnections | O limite superior de conexões simultâneas estabelecidas para o armazenamento de dados durante a execução da atividade. Especifique um valor somente quando quiser limitar conexões simultâneas. | Não |
do IdP | Defina metadados personalizados quando copiar para coletor. Cada objeto sob a metadata matriz representa uma coluna extra. O name define o nome da chave de metadados e indica o value valor de dados dessa chave. Se o recurso preservar atributos for usado, os metadados especificados serão unidos/substituídos pelos metadados do arquivo de origem.Os valores de dados permitidos são: - $$LASTMODIFIED : uma variável reservada indica para armazenar a hora da última modificação dos arquivos de origem. Aplique apenas à fonte baseada em arquivo com formato binário.- Expressão - Valor estático |
Não |
Exemplo:
"activities":[
{
"name": "CopyToADLSGen2",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<Parquet output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "ParquetSink",
"storeSettings":{
"type": "AzureBlobFSWriteSettings",
"copyBehavior": "PreserveHierarchy",
"metadata": [
{
"name": "testKey1",
"value": "value1"
},
{
"name": "testKey2",
"value": "value2"
},
{
"name": "lastModifiedKey",
"value": "$$LASTMODIFIED"
}
]
}
}
}
}
]
Exemplos de filtros de pastas e ficheiros
Esta seção descreve o comportamento resultante do caminho da pasta e do nome do arquivo com filtros curinga.
folderPath | fileName | recursiva | Estrutura da pasta de origem e resultado do filtro (arquivos em negrito são recuperados) |
---|---|---|---|
Folder* |
(Vazio, use padrão) | false | PastaA File1.csv File2.json Subpasta1 File3.csv File4.json File5.csv OutraPastaB File6.csv |
Folder* |
(Vazio, use padrão) | verdadeiro | PastaA File1.csv File2.json Subpasta1 File3.csv File4.json File5.csv OutraPastaB File6.csv |
Folder* |
*.csv |
false | PastaA File1.csv File2.json Subpasta1 File3.csv File4.json File5.csv OutraPastaB File6.csv |
Folder* |
*.csv |
verdadeiro | PastaA File1.csv File2.json Subpasta1 File3.csv File4.json File5.csv OutraPastaB File6.csv |
Exemplos de lista de ficheiros
Esta seção descreve o comportamento resultante do uso do caminho da lista de arquivos na fonte de atividade de cópia.
Supondo que você tenha a seguinte estrutura de pastas de origem e queira copiar os arquivos em negrito:
Estrutura de origem da amostra | Conteúdo em FileListToCopy.txt | Configuração do ADF |
---|---|---|
sistema de ficheiros PastaA File1.csv File2.json Subpasta1 File3.csv File4.json File5.csv Metadados FileListToCopy.txt |
File1.csv Subpasta1/File3.csv Subpasta1/File5.csv |
No conjunto de dados: - Sistema de arquivos: filesystem - Caminho da pasta: FolderA Na fonte da atividade de cópia: - Caminho da lista de arquivos: filesystem/Metadata/FileListToCopy.txt O caminho da lista de arquivos aponta para um arquivo de texto no mesmo armazenamento de dados que inclui uma lista de arquivos que você deseja copiar, um arquivo por linha com o caminho relativo para o caminho configurado no conjunto de dados. |
Alguns exemplos recursivos e copyBehavior
Esta seção descreve o comportamento resultante da operação de cópia para diferentes combinações de valores recursivo e copyBehavior.
recursiva | copyBehavior | Estrutura da pasta de origem | Alvo resultante |
---|---|---|---|
verdadeiro | preserveHierarchy | Pasta1 Ficheiro1 Ficheiro2 Subpasta1 Ficheiro3 Ficheiro4 Ficheiro5 |
A Folder1 de destino é criada com a mesma estrutura da origem: Pasta1 Ficheiro1 Ficheiro2 Subpasta1 Ficheiro3 Ficheiro4 Ficheiro5 |
verdadeiro | achatarHierarquia | Pasta1 Ficheiro1 Ficheiro2 Subpasta1 Ficheiro3 Ficheiro4 Ficheiro5 |
A Folder1 de destino é criada com a seguinte estrutura: Pasta1 nome gerado automaticamente para File1 nome gerado automaticamente para File2 nome gerado automaticamente para File3 nome gerado automaticamente para File4 nome gerado automaticamente para File5 |
verdadeiro | mesclarArquivos | Pasta1 Ficheiro1 Ficheiro2 Subpasta1 Ficheiro3 Ficheiro4 Ficheiro5 |
A Folder1 de destino é criada com a seguinte estrutura: Pasta1 File1 + File2 + File3 + File4 + File5 conteúdo são mesclados em um arquivo com um nome de arquivo gerado automaticamente. |
false | preserveHierarchy | Pasta1 Ficheiro1 Ficheiro2 Subpasta1 Ficheiro3 Ficheiro4 Ficheiro5 |
A Folder1 de destino é criada com a seguinte estrutura: Pasta1 Ficheiro1 Ficheiro2 Subfolder1 com File3, File4 e File5 não é coletada. |
false | achatarHierarquia | Pasta1 Ficheiro1 Ficheiro2 Subpasta1 Ficheiro3 Ficheiro4 Ficheiro5 |
A Folder1 de destino é criada com a seguinte estrutura: Pasta1 nome gerado automaticamente para File1 nome gerado automaticamente para File2 Subfolder1 com File3, File4 e File5 não é coletada. |
false | mesclarArquivos | Pasta1 Ficheiro1 Ficheiro2 Subpasta1 Ficheiro3 Ficheiro4 Ficheiro5 |
A Folder1 de destino é criada com a seguinte estrutura: Pasta1 O conteúdo de File1 + File2 é mesclado em um arquivo com um nome de arquivo gerado automaticamente. nome gerado automaticamente para File1 Subfolder1 com File3, File4 e File5 não é coletada. |
Preservar metadados durante a cópia
Ao copiar arquivos do Amazon S3/Azure Blob/Azure Data Lake Storage Gen2 para o Azure Data Lake Storage Gen2/Azure Blob, você pode optar por preservar os metadados do arquivo junto com os dados. Saiba mais em Preservar metadados.
Preservar ACLs do Data Lake Storage Gen1/Gen2
Ao copiar arquivos do Azure Data Lake Storage Gen1/Gen2 para o Gen2, você pode optar por preservar as ACLs (listas de controle de acesso) POSIX junto com os dados. Saiba mais em Preservar ACLs do Data Lake Storage Gen1/Gen2 para Gen2.
Gorjeta
Para copiar dados do Azure Data Lake Storage Gen1 para o Gen2 em geral, consulte Copiar dados do Azure Data Lake Storage Gen1 para Gen2 para obter um passo a passo e práticas recomendadas.
Mapeando propriedades de fluxo de dados
Ao transformar dados em fluxos de dados de mapeamento, você pode ler e gravar arquivos do Azure Data Lake Storage Gen2 nos seguintes formatos:
As configurações específicas do formato estão localizadas na documentação desse formato. Para obter mais informações, consulte Transformação de origem no mapeamento de fluxo de dados e Transformação de coletor no mapeamento de fluxo de dados.
Transformação da fonte
Na transformação de origem, você pode ler a partir de um contêiner, pasta ou arquivo individual no Azure Data Lake Storage Gen2. A guia Opções de origem permite gerenciar como os arquivos são lidos.
Caminho curinga: o uso de um padrão curinga instruirá o ADF a percorrer cada pasta e arquivo correspondentes em uma única transformação de origem. Esta é uma maneira eficaz de processar vários arquivos dentro de um único fluxo. Adicione vários padrões de correspondência curinga com o sinal + que aparece ao passar o mouse sobre o padrão curinga existente.
No contêiner de origem, escolha uma série de arquivos que correspondam a um padrão. Somente o contêiner pode ser especificado no conjunto de dados. Portanto, o caminho curinga também deve incluir o caminho da pasta raiz.
Exemplos de curingas:
*
Representa qualquer conjunto de caracteres**
Representa o aninhamento recursivo de diretórios?
Substitui um caractere[]
Corresponde a um dos mais caracteres entre parênteses/data/sales/**/*.csv
Obtém todos os arquivos csv em /data/sales/data/sales/20??/**/
Obtém todos os arquivos no século 20/data/sales/*/*/*.csv
Obtém arquivos csv em dois níveis em /data/sales/data/sales/2004/*/12/[XY]1?.csv
Obtém todos os arquivos csv em 2004 em dezembro, começando com X ou Y prefixados por um número de dois dígitos
Caminho da raiz da partição: se você tiver pastas particionadas na fonte do arquivo com um key=value
formato (por exemplo, ano=2019), poderá atribuir o nível superior dessa árvore de pastas de partição a um nome de coluna no fluxo de dados do fluxo de dados.
Primeiro, defina um curinga para incluir todos os caminhos que são as pastas particionadas mais os arquivos folha que você deseja ler.
Use a configuração Caminho raiz da partição para definir qual é o nível superior da estrutura de pastas. Ao visualizar o conteúdo de seus dados por meio de uma visualização de dados, você verá que o ADF adicionará as partições resolvidas encontradas em cada um dos níveis de pasta.
Lista de ficheiros: Este é um conjunto de ficheiros. Crie um arquivo de texto que inclua uma lista de arquivos de caminho relativos a serem processados. Aponte para este ficheiro de texto.
Coluna para armazenar o nome do arquivo: armazene o nome do arquivo de origem em uma coluna em seus dados. Insira um novo nome de coluna aqui para armazenar a cadeia de caracteres de nome de arquivo.
Após a conclusão: escolha não fazer nada com o arquivo de origem depois que o fluxo de dados for executado, exclua o arquivo de origem ou mova o arquivo de origem. Os caminhos para a mudança são relativos.
Para mover os arquivos de origem para outro local pós-processamento, primeiro selecione "Mover" para a operação do arquivo. Em seguida, defina o diretório "from". Se você não estiver usando nenhum curinga para seu caminho, a configuração "de" será a mesma pasta que sua pasta de origem.
Se você tiver um caminho de origem com curinga, sua sintaxe ficará assim abaixo:
/data/sales/20??/**/*.csv
Você pode especificar "de" como
/data/sales
E "para" como
/backup/priorSales
Nesse caso, todos os arquivos que foram originados em /data/sales são movidos para /backup/priorSales.
Nota
As operações de arquivo são executadas somente quando você inicia o fluxo de dados de uma execução de pipeline (uma depuração de pipeline ou execução de execução) que usa a atividade Executar fluxo de dados em um pipeline. As operações de arquivo não são executadas no modo de depuração de fluxo de dados.
Filtrar por última modificação: você pode filtrar quais arquivos você processa especificando um intervalo de datas de quando eles foram modificados pela última vez. Todas as datas e horas estão em UTC.
Ativar captura de dados de alteração: Se verdadeiro, você obterá arquivos novos ou alterados somente a partir da última execução. A carga inicial de dados completos de snapshot sempre será obtida na primeira execução, seguida pela captura de arquivos novos ou alterados somente nas próximas execuções. Para obter mais detalhes, consulte Alterar captura de dados.
Propriedades do lavatório
Na transformação do coletor, você pode gravar em um contêiner ou pasta no Azure Data Lake Storage Gen2. a guia Configurações permite gerenciar como os arquivos são gravados.
Limpar a pasta: determina se a pasta de destino é ou não limpa antes que os dados sejam gravados.
Opção Nome do arquivo: Determina como os arquivos de destino são nomeados na pasta de destino. As opções de nome de arquivo são:
- Padrão: permite que o Spark nomeie arquivos com base nos padrões PART.
- Padrão: insira um padrão que enumere seus arquivos de saída por partição. Por exemplo, empréstimos[n].csv criarão loans1.csv, loans2.csv e assim por diante.
- Por partição: insira um nome de arquivo por partição.
- Como dados na coluna: defina o arquivo de saída com o valor de uma coluna. O caminho é relativo ao contêiner do conjunto de dados, não à pasta de destino. Se você tiver um caminho de pasta em seu conjunto de dados, ele será substituído.
- Saída para um único arquivo: combine os arquivos de saída particionados em um único arquivo nomeado. O caminho é relativo à pasta do conjunto de dados. Lembre-se de que a operação de mesclagem pode falhar com base no tamanho do nó. Esta opção não é recomendada para grandes conjuntos de dados.
Cotar tudo: Determina se todos os valores devem ser incluídos entre aspas
umask
Opcionalmente, você pode definir o umask
para arquivos usando POSIX ler, gravar, executar sinalizadores para proprietário, usuário e grupo.
Comandos de pré-processamento e pós-processamento
Opcionalmente, você pode executar comandos do sistema de arquivos Hadoop antes ou depois de gravar em um coletor ADLS Gen2. Os seguintes comandos são suportados:
cp
mv
rm
mkdir
Exemplos:
mkdir /folder1
mkdir -p folder1
mv /folder1/*.* /folder2/
cp /folder1/file1.txt /folder2
rm -r /folder1
Os parâmetros também são suportados através do construtor de expressões, por exemplo:
mkdir -p {$tempPath}/commands/c1/c2
mv {$tempPath}/commands/*.* {$tempPath}/commands/c1/c2
Por padrão, as pastas são criadas como usuário/raiz. Consulte o contêiner de nível superior com '/'.
Propriedades da atividade de pesquisa
Para saber detalhes sobre as propriedades, verifique Atividade de pesquisa.
Propriedades de atividade GetMetadata
Para saber detalhes sobre as propriedades, verifique a atividade GetMetadata
Excluir propriedades de atividade
Para saber detalhes sobre as propriedades, marque Excluir atividade
Modelos antigos
Nota
Os modelos a seguir ainda são suportados no estado em que se encontram para compatibilidade com versões anteriores. Sugere-se que você use o novo modelo mencionado nas seções acima daqui para frente, e a interface do usuário de criação do ADF mudou para gerar o novo modelo.
Modelo de conjunto de dados herdado
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type do conjunto de dados deve ser definida como AzureBlobFSFile. | Sim |
folderPath | Caminho para a pasta no Data Lake Storage Gen2. Se não for especificado, aponta para a raiz. O filtro curinga é suportado. Os curingas permitidos são * (corresponde a zero ou mais caracteres) e ? (corresponde a zero ou caractere único). Use ^ para escapar se o nome da pasta real tiver um curinga ou esse caracter de escape estiver dentro. Exemplos: filesystem/folder/. Veja mais exemplos em Exemplos de filtros de pastas e ficheiros. |
Não |
fileName | Nome ou filtro curinga para os arquivos sob o especificado "folderPath". Se você não especificar um valor para essa propriedade, o conjunto de dados apontará para todos os arquivos na pasta. Para filtro, os curingas permitidos são * (corresponde a zero ou mais caracteres) e ? (corresponde a zero ou caractere único).- Exemplo 1: "fileName": "*.csv" - Exemplo 2: "fileName": "???20180427.txt" Use ^ para escapar se o nome do arquivo real tiver um curinga ou esse caracter de escape estiver dentro.Quando fileName não é especificado para um conjunto de dados de saída e preserveHierarchy não é especificado no coletor de atividade, a atividade de cópia gera automaticamente o nome do arquivo com o seguinte padrão: "Data.[ GUID do ID de execução da atividade]. [GUID se FlattenHierarchy]. [formato, se configurado]. [compressão se configurado]", por exemplo, "Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.gz". Se você copiar de uma fonte tabular usando um nome de tabela em vez de uma consulta, o padrão de nome será "[nome da tabela].[ formato]. [compressão se configurado]", por exemplo, "MyTable.csv". |
Não |
modifiedDatetimeStart | Filtro de arquivos com base no atributo Última modificação. Os arquivos são selecionados se o tempo da última modificação for maior ou igual a modifiedDatetimeStart e menor que modifiedDatetimeEnd . A hora é aplicada ao fuso horário UTC no formato "2018-12-01T05:00:00Z". O desempenho geral da movimentação de dados é afetado ao habilitar essa configuração quando você deseja fazer o filtro de arquivos com grandes quantidades de arquivos. As propriedades podem ser NULL, o que significa que nenhum filtro de atributo de arquivo é aplicado ao conjunto de dados. Quando modifiedDatetimeStart tem um valor datetime, mas modifiedDatetimeEnd é NULL, significa que os arquivos cujo último atributo modificado é maior ou igual ao valor datetime são selecionados. Quando modifiedDatetimeEnd tem um valor datetime, mas modifiedDatetimeStart é NULL, significa que os arquivos cujo último atributo modificado é menor que o valor datetime são selecionados. |
Não |
modifiedDatetimeEnd | Filtro de arquivos com base no atributo Última modificação. Os arquivos são selecionados se o tempo da última modificação for maior ou igual a modifiedDatetimeStart e menor que modifiedDatetimeEnd . A hora é aplicada ao fuso horário UTC no formato "2018-12-01T05:00:00Z". O desempenho geral da movimentação de dados é afetado ao habilitar essa configuração quando você deseja fazer o filtro de arquivos com grandes quantidades de arquivos. As propriedades podem ser NULL, o que significa que nenhum filtro de atributo de arquivo é aplicado ao conjunto de dados. Quando modifiedDatetimeStart tem um valor datetime, mas modifiedDatetimeEnd é NULL, significa que os arquivos cujo último atributo modificado é maior ou igual ao valor datetime são selecionados. Quando modifiedDatetimeEnd tem um valor datetime, mas modifiedDatetimeStart é NULL, significa que os arquivos cujo último atributo modificado é menor que o valor datetime são selecionados. |
Não |
format | Se você quiser copiar arquivos como está entre armazenamentos baseados em arquivo (cópia binária), ignore a seção de formato nas definições de conjunto de dados de entrada e saída. Se você quiser analisar ou gerar arquivos com um formato específico, os seguintes tipos de formato de arquivo são suportados: TextFormat, JsonFormat, AvroFormat, OrcFormat e ParquetFormat. Defina a propriedade type em format como um desses valores. Para obter mais informações, consulte as seções Formato de texto, Formato JSON, Formato Avro, Formato ORC e Formato Parquet. |
Não (apenas para o cenário de cópia binária) |
compressão | Especifique o tipo e o nível de compactação dos dados. Para obter mais informações, consulte Formatos de arquivo e codecs de compactação suportados. Os tipos suportados são **GZip**, **Deflate**, **BZip2**, and **ZipDeflate** .Os níveis suportados são Ótimos e Mais Rápidos. |
Não |
Gorjeta
Para copiar todos os arquivos em uma pasta, especifique somente folderPath .
Para copiar um único arquivo com um determinado nome, especifique folderPath com uma parte da pasta e fileName com um nome de arquivo.
Para copiar um subconjunto de arquivos em uma pasta, especifique folderPath com uma parte da pasta e fileName com um filtro curinga.
Exemplo:
{
"name": "ADLSGen2Dataset",
"properties": {
"type": "AzureBlobFSFile",
"linkedServiceName": {
"referenceName": "<Azure Data Lake Storage Gen2 linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"folderPath": "myfilesystem/myfolder",
"fileName": "*",
"modifiedDatetimeStart": "2018-12-01T05:00:00Z",
"modifiedDatetimeEnd": "2018-12-01T06:00:00Z",
"format": {
"type": "TextFormat",
"columnDelimiter": ",",
"rowDelimiter": "\n"
},
"compression": {
"type": "GZip",
"level": "Optimal"
}
}
}
}
Modelo de origem da atividade de cópia herdada
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type da fonte de atividade de cópia deve ser definida como AzureBlobFSSource. | Sim |
recursiva | Indica se os dados são lidos recursivamente das subpastas ou somente da pasta especificada. Quando recursivo é definido como true e o coletor é um armazenamento baseado em arquivo, uma pasta ou subpasta vazia não é copiada ou criada no coletor. Os valores permitidos são true (padrão) e false. |
Não |
maxConcurrentConnections | O limite superior de conexões simultâneas estabelecidas para o armazenamento de dados durante a execução da atividade. Especifique um valor somente quando quiser limitar conexões simultâneas. | Não |
Exemplo:
"activities":[
{
"name": "CopyFromADLSGen2",
"type": "Copy",
"inputs": [
{
"referenceName": "<ADLS Gen2 input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "AzureBlobFSSource",
"recursive": true
},
"sink": {
"type": "<sink type>"
}
}
}
]
Modelo de coletor de atividade de cópia herdado
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type do coletor de atividade de cópia deve ser definida como AzureBlobFSSink. | Sim |
copyBehavior | Define o comportamento de cópia quando a origem são arquivos de um armazenamento de dados baseado em arquivo. Os valores permitidos são: - PreserveHierarchy (padrão): Preserva a hierarquia de arquivos na pasta de destino. O caminho relativo do arquivo de origem para a pasta de origem é idêntico ao caminho relativo do arquivo de destino para a pasta de destino. - FlattenHierarchy: Todos os arquivos da pasta de origem estão no primeiro nível da pasta de destino. Os arquivos de destino têm nomes gerados automaticamente. - MergeFiles: Mescla todos os arquivos da pasta de origem para um arquivo. Se o nome do arquivo for especificado, o nome do arquivo mesclado será o nome especificado. Caso contrário, é um nome de arquivo gerado automaticamente. |
Não |
maxConcurrentConnections | O limite superior de conexões simultâneas estabelecidas para o armazenamento de dados durante a execução da atividade. Especifique um valor somente quando quiser limitar conexões simultâneas. | Não |
Exemplo:
"activities":[
{
"name": "CopyToADLSGen2",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<ADLS Gen2 output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "AzureBlobFSSink",
"copyBehavior": "PreserveHierarchy"
}
}
}
]
Captura de dados de alteração
O Azure Data Factory pode obter arquivos novos ou alterados somente do Azure Data Lake Storage Gen2 habilitando Habilitar a captura de dados de alteração na transformação da fonte de fluxo de dados de mapeamento. Com essa opção de conector, você pode ler somente arquivos novos ou atualizados e aplicar transformações antes de carregar dados transformados em conjuntos de dados de destino de sua escolha.
Certifique-se de manter o pipeline e o nome da atividade inalterados, para que o ponto de verificação possa sempre ser registrado a partir da última execução para obter alterações a partir daí. Se você alterar o nome do pipeline ou o nome da atividade, o ponto de verificação será redefinido e você começará do início na próxima execução.
Quando você depura o pipeline, a opção Habilitar captura de dados de alteração também funciona. Lembre-se de que o ponto de verificação será redefinido quando você atualizar o navegador durante a execução de depuração. Depois de estar satisfeito com o resultado da execução de depuração, você pode publicar e acionar o pipeline. Ele sempre começará desde o início, independentemente do ponto de verificação anterior registrado pela execução de depuração.
Na seção de monitoramento, você sempre tem a chance de executar novamente um pipeline. Quando você está fazendo isso, as alterações são sempre obtidas a partir do registro de ponto de verificação na execução do pipeline selecionado.
Conteúdos relacionados
Para obter uma lista de armazenamentos de dados suportados como fontes e coletores pela atividade de cópia, consulte Armazenamentos de dados suportados.