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:

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:

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.

  1. 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:

  2. Procure o Azure Data Lake Storage Gen2 e selecione o conector Azure Data Lake Storage Gen2.

    Selecione Conector Gen2 do Azure Data Lake Storage.

  3. Configure os detalhes do serviço, teste a conexão e crie o novo serviço vinculado.

    Captura de tela da configuração do serviço vinculado do Azure Data Lake Storage Gen2.

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:

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

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.

  1. 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
  2. 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 é servicePrincipalIdservicePrincipalCredential + servicePrincipalCredentialType + .
Não
tenant 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.

  1. 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.

  2. 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:

  1. 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.
  2. 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.

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.

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 e wildcardFileName.
  • 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 fileListPatho .
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 fileListPatho .
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.

Captura de tela da guia Opções de origem no mapeamento da transformação da fonte do fluxo de dados.

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.

Captura de tela das configurações do arquivo de origem da partição no mapeamento da transformação da fonte de fluxo de dados.

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.

Caminho da raiz da partição

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.

Captura de ecrã a mostrar Ativar captura de dados de alteração.

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.

Opções de lavatório

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.

Para obter uma lista de armazenamentos de dados suportados como fontes e coletores pela atividade de cópia, consulte Armazenamentos de dados suportados.