Copiar e transformar dados no Azure Data Lake Storage Gen2 usando o Azure Data FactoryCopy and transform data in Azure Data Lake Storage Gen2 using Azure Data Factory

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

O Azure Data Lake Storage Gen2 (ADLS Gen2) é um conjunto de recursos dedicados à análise de Big Data, criado no armazenamento de Blobs do Azure.Azure Data Lake Storage Gen2 (ADLS Gen2) is a set of capabilities dedicated to big data analytics built into Azure Blob storage. Você pode usá-lo para fazer interface com seus dados usando os paradigmas de sistema de arquivos e armazenamento de objetos.You can use it to interface with your data by using both file system and object storage paradigms.

Este artigo descreve como usar a atividade de cópia no Azure Data Factory 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.This article outlines how to use Copy Activity in Azure Data Factory to copy data from and to Azure Data Lake Storage Gen2, and use Data Flow to transform data in Azure Data Lake Storage Gen2. Para saber mais sobre o Azure Data Factory, leia as artigo introdutório.To learn about Azure Data Factory, read the introductory article.

Dica

Para o cenário de migração do data lake ou data warehouse, saiba mais em Usar Azure Data Factory para migrar dados do seu data lake ou data warehouse para o Azure.For data lake or data warehouse migration scenario, learn more from Use Azure Data Factory to migrate data from your data lake or data warehouse to Azure.

Funcionalidades com suporteSupported capabilities

Este conector do Azure Data Lake Storage Gen2 oferece suporte para as seguintes atividades:This Azure Data Lake Storage Gen2 connector is supported for the following activities:

Para atividade de cópia, com esse conector, você pode:For Copy activity, with this connector you can:

IntroduçãoGet started

Dica

Para obter um passo a passo sobre como usar o conector Data Lake Storage Gen2, confira Carregar dados no Azure Data Lake Storage Gen2.For a walk-through of how to use the Data Lake Storage Gen2 connector, see Load data into Azure Data Lake Storage Gen2.

Para executar a atividade de Cópia com um pipeline, será possível usar as ferramentas ou os SDKs abaixo:To perform the Copy activity with a pipeline, you can use one of the following tools or SDKs:

As seções a seguir fornecem informações sobre propriedades que são usadas para definir entidades do Data Factory específicas do Data Lake Storage Gen2.The following sections provide information about properties that are used to define Data Factory entities specific to Data Lake Storage Gen2.

Propriedades do serviço vinculadoLinked service properties

O conector do Azure Data Lake Storage Gen2 dá suporte aos seguintes tipos de autenticação.The Azure Data Lake Storage Gen2 connector supports the following authentication types. Consulte as seções correspondentes para obter detalhes:See the corresponding sections for details:

Observação

  • Se quiser usar o tempo de execução de integração do Azure público para se conectar ao Data Lake Storage Gen2 aproveitando a opção permitir que os serviços confiáveis da Microsoft acessem essa conta de armazenamento habilitada no firewall do armazenamento do Azure, você deve usar a autenticação de identidade gerenciada.If want to use the public Azure integration runtime to connect to the Data Lake Storage Gen2 by leveraging the Allow trusted Microsoft services to access this storage account option enabled on Azure Storage firewall, you must use managed identity authentication.
  • Ao usar o polybase ou a instrução de cópia para carregar dados no Azure Synapse Analytics, se o Data Lake Storage Gen2 de origem ou de preparo estiver configurado com um ponto de extremidade de rede virtual do Azure, você deverá usar a autenticação de identidade gerenciada conforme exigido pelo Synapse.When you use PolyBase or COPY statement to load data into Azure Synapse Analytics, if your source or staging Data Lake Storage Gen2 is configured with an Azure Virtual Network endpoint, you must use managed identity authentication as required by Synapse. Confira a seção autenticação de identidade gerenciada com mais pré-requisitos de configuração.See the managed identity authentication section with more configuration prerequisites.

Autenticação de chave de contaAccount key authentication

Para usar a autenticação de chave de conta de armazenamento, há suporte para as seguintes propriedades:To use storage account key authentication, the following properties are supported:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade type deve ser definida como AzureBlobFS.The type property must be set to AzureBlobFS. SimYes
urlurl Ponto de extremidade para Data Lake Storage Gen2 com o padrão de https://<accountname>.dfs.core.windows.net.Endpoint for Data Lake Storage Gen2 with the pattern of https://<accountname>.dfs.core.windows.net. SimYes
accountKeyaccountKey Chave de conta para o Data Lake Storage Gen2.Account key for Data Lake Storage Gen2. Marque este campo como uma SecureString para armazená-la com segurança no Data Factory ou faça referência a um segredo armazenado no Azure Key Vault.Mark this field as a SecureString to store it securely in Data Factory, or reference a secret stored in Azure Key Vault. SimYes
connectViaconnectVia O runtime de integração a ser usado para se conectar ao armazenamento de dados.The integration runtime to be used to connect to the data store. Você pode usar o Azure Integration Runtime ou um runtime de integração auto-hospedada se o seu armazenamento de dados estiver em uma rede privada.You can use the Azure integration runtime or a self-hosted integration runtime if your data store is in a private network. Se essa propriedade não for especificada, o Azure Integration Runtime padrão será usado.If this property isn't specified, the default Azure integration runtime is used. NãoNo

Observação

Não há suporte para o ponto de extremidade do sistema de arquivos ADLS secundário ao usar a autenticação de chave de conta.Secondary ADLS file system endpoint is not supported when using account key authentication. Você pode usar outros tipos de autenticação.You can use other authentication types.

Exemplo:Example:

{
    "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 entidade de serviçoService principal authentication

Para usar a autenticação de entidade de serviço, siga estas etapas.To use service principal authentication, follow these steps.

  1. Registre uma entidade de aplicativo no Azure Active Directory (Azure AD) seguindo as etapas em Registre o aplicativo com um locatário do Azure AD.Register an application entity in Azure Active Directory (Azure AD) by following the steps in Register your application with an Azure AD tenant. Anote os seguintes valores, que são usados para definir o serviço vinculado:Make note of the following values, which you use to define the linked service:

    • ID do aplicativoApplication ID
    • Chave do aplicativoApplication key
    • ID do locatárioTenant ID
  2. Conceda a permissão adequada do principal de serviço.Grant the service principal proper permission. Veja exemplos de como a permissão funciona em Data Lake Storage Gen2 de Listas de controle de acesso em arquivos e diretóriosSee examples on how permission works in Data Lake Storage Gen2 from Access control lists on files and directories

    • Como origem: No Gerenciador de Armazenamento, conceda pelo menos a permissão de Executar para todas as pastas acima e o arquivo de sistema, junto com a permissão Leitura para os arquivos a serem copiados.As source: In Storage Explorer, grant at least Execute permission for ALL upstream folders and the file system, along with Read permission for the files to copy. Como alternativa, em Controle de acesso (IAM), conceda, pelo menos, a função de Leitor de Dados do Storage Blob.Alternatively, in Access control (IAM), grant at least the Storage Blob Data Reader role.
    • Como coletor: no Gerenciador de Armazenamento, conceda pelo menos a permissão de Executar para todas as pastas acima e o arquivo de sistema, junto com a permissão Gravar para a pasta do coletor.As sink: In Storage Explorer, grant at least Execute permission for ALL upstream folders and the file system, along with Write permission for the sink folder. Como alternativa, em Controle de acesso (IAM), conceda, pelo menos, a função de Colaborador de Dados do Storage Blob.Alternatively, in Access control (IAM), grant at least the Storage Blob Data Contributor role.

Observação

Se você usar a interface do usuário do Data Factory 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 a conexão de teste ou procurar/navegar por pastas, escolha "Testar a conexão com o caminho do arquivo" ou "Procurar do caminho especificado" e especifique um caminho com a permissão Ler + Executar.If you use Data Factory UI to author and the service principal is not set with "Storage Blob Data Reader/Contributor" role in IAM, when doing test connection or browsing/navigating folders, choose "Test connection to file path" or "Browse from specified path", and specify a path with Read + Execute permission to continue.

Estas propriedades têm suporte para o serviço vinculado:These properties are supported for the linked service:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade type deve ser definida como AzureBlobFS.The type property must be set to AzureBlobFS. SimYes
urlurl Ponto de extremidade para Data Lake Storage Gen2 com o padrão de https://<accountname>.dfs.core.windows.net.Endpoint for Data Lake Storage Gen2 with the pattern of https://<accountname>.dfs.core.windows.net. SimYes
servicePrincipalIdservicePrincipalId Especifique a ID do cliente do aplicativo.Specify the application's client ID. SimYes
servicePrincipalCredentialTypeservicePrincipalCredentialType O tipo de credencial a ser usado para autenticação de entidade de serviço.The credential type to use for service principal authentication. Os valores permitidos são ServicePrincipalKey e ServicePrincipalCert.Allowed values are ServicePrincipalKey and ServicePrincipalCert. SimYes
servicePrincipalCredentialservicePrincipalCredential A credencial da entidade de serviço.The service principal credential.
Ao usar ServicePrincipalKey como o tipo de credencial, especifique a chave do aplicativo.When you use ServicePrincipalKey as the credential type, specify the the application's key. Marque este campo como SecureString para armazená-lo com segurança no data Factory ou faça referência a um segredo armazenado em Azure Key Vault.Mark this field as SecureString to store it securely in Data Factory, or reference a secret stored in Azure Key Vault.
Quando você usa ServicePrincipalCert como a credencial, faça referência a um certificado em Azure Key Vault.When you use ServicePrincipalCert as the credential, reference a certificate in Azure Key Vault.
SimYes
servicePrincipalKeyservicePrincipalKey Especifique a chave do aplicativo.Specify the application's key. Marque este campo como SecureString para armazená-lo com segurança no data Factory ou faça referência a um segredo armazenado em Azure Key Vault.Mark this field as SecureString to store it securely in Data Factory, or reference a secret stored in Azure Key Vault.
Essa propriedade ainda tem suporte no estado em que se encontra para o servicePrincipalId + servicePrincipalKey .This property is still supported as-is for servicePrincipalId + servicePrincipalKey. À medida que o ADF adiciona nova autenticação de certificado de entidade de serviço, o novo modelo para autenticação de entidade de serviço é servicePrincipalId + servicePrincipalCredentialType + servicePrincipalCredential .As ADF adds new service principal certificate authentication, the new model for service principal authentication is servicePrincipalId + servicePrincipalCredentialType + servicePrincipalCredential.
NãoNo
locatáriotenant Especifique as informações de locatário (domínio nome ou ID do Locatário) em que o aplicativo reside.Specify the tenant information (domain name or tenant ID) under which your application resides. Recupere-as passando o mouse no canto superior direito do Portal do Azure.Retrieve it by hovering the mouse in the upper-right corner of the Azure portal. SimYes
azureCloudTypeazureCloudType Para autenticação de entidade de serviço, especifique o tipo de ambiente de nuvem do Azure no qual seu aplicativo Azure Active Directory está registrado.For service principal authentication, specify the type of Azure cloud environment to which your Azure Active Directory application is registered.
Os valores permitidos são AzurePublic, AzureChina, AzureUsGovernment e AzureGermany.Allowed values are AzurePublic, AzureChina, AzureUsGovernment, and AzureGermany. Por padrão, o ambiente de nuvem do data factory é usado.By default, the data factory's cloud environment is used.
NãoNo
connectViaconnectVia O runtime de integração a ser usado para se conectar ao armazenamento de dados.The integration runtime to be used to connect to the data store. Você pode usar o Azure Integration Runtime ou um runtime de integração auto-hospedada se o seu armazenamento de dados estiver em uma rede privada.You can use the Azure integration runtime or a self-hosted integration runtime if your data store is in a private network. Se não especificado, o Azure Integration Runtime padrão será usado.If not specified, the default Azure integration runtime is used. NãoNo

Exemplo: usando a autenticação de chave de entidade de serviçoExample: using service principal key authentication

Você também pode armazenar a chave de entidade de serviço em Azure Key Vault.You can also store service principal key in Azure Key Vault.

{
    "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çoExample: using service principal certificate authentication

{
    "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"
        }
    }
}

Identidades gerenciadas para autenticação de recursos do AzureManaged identities for Azure resources authentication

Um data factory pode ser associado a uma identidade gerenciada para recursos do Azure, que representa esse data factory específico.A data factory can be associated with a managed identity for Azure resources, which represents this specific data factory. Você pode usar essa identidade gerenciada diretamente para a autenticação do Data Lake Storage Gen2 da mesma maneira que no uso de sua própria entidade de serviço.You can directly use this managed identity for Data Lake Storage Gen2 authentication, similar to using your own service principal. Ele permite que este alocador designado acesse e copie dados de ou para o seu Data Lake Storage Gen2.It allows this designated factory to access and copy data to or from your Data Lake Storage Gen2.

Para usar identidades gerenciadas para autenticação de recursos do Azure, siga estas etapas.To use managed identities for Azure resource authentication, follow these steps.

  1. Recuperar as informações de identidade gerenciada do Data Factory copiando o valor de ID do objeto de identidade gerenciada gerado junto com seu alocador.Retrieve the Data Factory managed identity information by copying the value of the managed identity object ID generated along with your factory.

  2. Conceda a permissão adequada de identidade gerenciada.Grant the managed identity proper permission. Veja exemplos de como a permissão funciona em Data Lake Storage Gen2 de Listas de controle de acesso em arquivos e diretórios.See examples on how permission works in Data Lake Storage Gen2 from Access control lists on files and directories.

    • Como origem: no Gerenciador de Armazenamento, conceda pelo menos a permissão de Executar para todas as pastas acima e o arquivo de sistema, junto com a permissão Leitura para os arquivos a serem copiados.As source: In Storage Explorer, grant at least Execute permission for ALL upstream folders and the file system, along with Read permission for the files to copy. Como alternativa, em Controle de acesso (IAM), conceda, pelo menos, a função de Leitor de Dados do Storage Blob.Alternatively, in Access control (IAM), grant at least the Storage Blob Data Reader role.
    • Como coletor: no Gerenciador de Armazenamento, conceda pelo menos a permissão de Executar para todas as pastas acima e o arquivo de sistema, junto com a permissão Gravar para a pasta do coletor.As sink: In Storage Explorer, grant at least Execute permission for ALL upstream folders and the file system, along with Write permission for the sink folder. Como alternativa, em Controle de acesso (IAM), conceda, pelo menos, a função de Colaborador de Dados do Storage Blob.Alternatively, in Access control (IAM), grant at least the Storage Blob Data Contributor role.

Observação

Se você usar a interface do usuário do Data Factory para criar e identidade gerenciada não estiver definida com a função "Leitor de dados de blob de armazenamento/colaborador" no IAM, ao fazer a conexão de teste ou procurar/navegar por pastas, escolha "Testar a conexão com o caminho do arquivo" ou "Procurar do caminho especificado" e especifique um caminho com a permissão Ler + Executar.If you use Data Factory UI to author and the managed identity is not set with "Storage Blob Data Reader/Contributor" role in IAM, when doing test connection or browsing/navigating folders, choose "Test connection to file path" or "Browse from specified path", and specify a path with Read + Execute permission to continue.

Importante

Se você usar o polybase ou a instrução de cópia para carregar dados de Data Lake Storage Gen2 no Azure Synapse Analytics, ao usar a autenticação de identidade gerenciada para o Data Lake Storage Gen2, certifique-se de também seguir as etapas 1 a 3 nesta diretriz.If you use PolyBase or COPY statement to load data from Data Lake Storage Gen2 into Azure Synapse Analytics, when you use managed identity authentication for Data Lake Storage Gen2, make sure you also follow steps 1 to 3 in this guidance. Essas etapas registrarão o servidor no Azure AD e atribuirão a função de colaborador de dados de blob de armazenamento ao servidor.Those steps will register your server with Azure AD and assign the Storage Blob Data Contributor role to your server. Data Factory lida com o restante.Data Factory handles the rest. Se você configurar o armazenamento de BLOBs com um ponto de extremidade de rede virtual do Azure, você também precisará permitir que os serviços confiáveis da Microsoft acessem essa conta de armazenamento ativada em firewalls da conta de armazenamento do Azure e no menu de configurações de redes virtuais , conforme exigido pelo Synapse.If you configure Blob storage with an Azure Virtual Network endpoint, you also need to have Allow trusted Microsoft services to access this storage account turned on under Azure Storage account Firewalls and Virtual networks settings menu as required by Synapse.

Estas propriedades têm suporte para o serviço vinculado:These properties are supported for the linked service:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade type deve ser definida como AzureBlobFS.The type property must be set to AzureBlobFS. SimYes
urlurl Ponto de extremidade para Data Lake Storage Gen2 com o padrão de https://<accountname>.dfs.core.windows.net.Endpoint for Data Lake Storage Gen2 with the pattern of https://<accountname>.dfs.core.windows.net. SimYes
connectViaconnectVia O runtime de integração a ser usado para se conectar ao armazenamento de dados.The integration runtime to be used to connect to the data store. Você pode usar o Azure Integration Runtime ou um runtime de integração auto-hospedada se o seu armazenamento de dados estiver em uma rede privada.You can use the Azure integration runtime or a self-hosted integration runtime if your data store is in a private network. Se não especificado, o Azure Integration Runtime padrão será usado.If not specified, the default Azure integration runtime is used. NãoNo

Exemplo:Example:

{
    "name": "AzureDataLakeStorageGen2LinkedService",
    "properties": {
        "type": "AzureBlobFS",
        "typeProperties": {
            "url": "https://<accountname>.dfs.core.windows.net", 
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Propriedades do conjunto de dadosDataset properties

Para obter uma lista completa das seções e propriedades disponíveis para definir os conjuntos de dados, confira Conjuntos de dados.For a full list of sections and properties available for defining datasets, see Datasets.

O Azure Data Factory é compatível com os formatos de arquivo a seguir.Azure Data Factory supports the following file formats. Confira cada artigo para obter configurações baseadas em formato.Refer to each article for format-based settings.

As propriedades a seguir têm suporte para Data Lake Storage Gen2 em configurações de location no conjunto de dados baseado em formato:The following properties are supported for Data Lake Storage Gen2 under location settings in the format-based dataset:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade type em location no conjunto de dados deve ser definida como AzureBlobFSLocation.The type property under location in the dataset must be set to AzureBlobFSLocation. SimYes
fileSystemfileSystem Nome do sistema de arquivos do Data Lake Storage Gen2.The Data Lake Storage Gen2 file system name. NãoNo
folderPathfolderPath O caminho para uma pasta sob o sistema de arquivos fornecido.The path to a folder under the given file system. Se você quiser usar um caractere curinga para filtrar a pasta, ignore essa configuração e especifique-o nas configurações de origem da atividade.If you want to use a wildcard to filter folders, skip this setting and specify it in activity source settings. NãoNo
fileNamefileName O nome do arquivo sob o fileSystem + folderPath fornecido.The file name under the given fileSystem + folderPath. Se você quiser usar um caractere curinga para filtrar os arquivos, ignore essa configuração e especifique-o nas configurações de origem da atividade.If you want to use a wildcard to filter files, skip this setting and specify it in activity source settings. NãoNo

Exemplo:Example:

{
    "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 de cópiaCopy activity properties

Para obter uma lista completa de seções e propriedades disponíveis para definir atividades, confira Copiar configurações de atividade e Pipelines e atividades.For a full list of sections and properties available for defining activities, see Copy activity configurations and Pipelines and activities. Esta seção fornece uma lista de propriedades com suporte pelo coletor e origem do Data Lake Store Gen2.This section provides a list of properties supported by the Data Lake Storage Gen2 source and sink.

Azure Data Lake Storage Gen2 como um tipo de origemAzure Data Lake Storage Gen2 as a source type

O Azure Data Factory é compatível com os formatos de arquivo a seguir.Azure Data Factory supports the following file formats. Confira cada artigo para obter configurações baseadas em formato.Refer to each article for format-based settings.

Você tem várias opções para copiar dados de ADLS Gen2:You have several options to copy data from ADLS Gen2:

  • Copiar do caminho especificado no conjunto de dados.Copy from the given path specified in the dataset.
  • Para filtrar usando caracteres curinga em relação ao caminho da pasta ou nome do arquivo, confira wildcardFolderPath e wildcardFileName.Wildcard filter against folder path or file name, see wildcardFolderPath and wildcardFileName.
  • Copie os arquivos definidos em um determinado arquivo de texto como conjunto de arquivos, confira fileListPath.Copy the files defined in a given text file as file set, see fileListPath.

As propriedades a seguir têm suporte para Data Lake Storage Gen2 em configurações de storeSettings no fonte de cópia baseado em formato:The following properties are supported for Data Lake Storage Gen2 under storeSettings settings in format-based copy source:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade de tipo em storeSettings deve ser configurada com AzureBlobFSReadSettings.The type property under storeSettings must be set to AzureBlobFSReadSettings. SimYes
*Localize os arquivos a serem copiados: _*Locate the files to copy: _
OPÇÃO 1: caminho estáticoOPTION 1: static path
Copiar do sistema de arquivos ou caminho de pasta/arquivo especificado no conjunto de dados.Copy from the given file system or folder/file path specified in the dataset. Se você quiser copiar todos os arquivos de um sistema de arquivos/pasta, especifique também wildcardFileName como _.If you want to copy all files from a file system/folder, additionally specify wildcardFileName as _.
OPÇÃO 2: curingaOPTION 2: wildcard
- wildcardFolderPath- wildcardFolderPath
O caminho da pasta com caracteres curinga no sistema de arquivos fornecido configurado no conjunto de dados para filtrar as pastas de origem.The folder path with wildcard characters under the given file system configured in dataset to filter source folders.
Os curingas permitidos são: * (corresponde a zero ou mais caracteres) e ? (corresponde a zero ou caractere único); use ^ para escape se o nome de pasta atual tiver curinga ou esse caractere interno de escape.Allowed wildcards are: * (matches zero or more characters) and ? (matches zero or single character); use ^ to escape if your actual folder name has wildcard or this escape char inside.
Veja mais exemplos em Exemplos de filtro de pastas e arquivos.See more examples in Folder and file filter examples.
NãoNo
OPÇÃO 2: curingaOPTION 2: wildcard
- wildcardFileName- wildcardFileName
O nome do arquivo com caracteres curinga sob sistema de arquivos + folderPath/wildcardFolderPath fornecido para filtrar os arquivos de origem.The file name with wildcard characters under the given file system + folderPath/wildcardFolderPath to filter source files.
Os curingas permitidos são: * (corresponde a zero ou mais caracteres) e ? (corresponde a zero ou caractere único); use ^ para escape se o nome de arquivo real tiver curinga ou esse caractere interno de escape.Allowed wildcards are: * (matches zero or more characters) and ? (matches zero or single character); use ^ to escape if your actual file name has wildcard or this escape char inside. Veja mais exemplos em Exemplos de filtro de pastas e arquivos.See more examples in Folder and file filter examples.
SimYes
OPÇÃO 3: uma lista de arquivosOPTION 3: a list of files
- fileListPath- fileListPath
Indica a cópia de um determinado conjunto de arquivos.Indicates to copy a given file set. Aponte para um arquivo de texto que inclui uma lista de arquivos que você deseja copiar, um arquivo por linha, que é o caminho relativo para o caminho configurado no conjunto de um.Point to a text file that includes a list of files you want to copy, one file per line, which is the relative path to the path configured in the dataset.
Ao usar essa opção, não especifique o nome do arquivo no conjunto de dados.When using this option, do not specify file name in dataset. Veja mais exemplos em Exemplos de lista de arquivos.See more examples in File list examples.
NãoNo
*Configurações adicionais: _*Additional settings: _
recursivarecursive Indica se os dados são lidos recursivamente das subpastas ou somente da pasta especificada.Indicates whether the data is read recursively from the subfolders or only from the specified folder. Observe que quando recursiva é definida como true e o coletor é um armazenamento baseado em arquivo, uma pasta vazia ou subpasta não é copiada ou criada no coletor.Note that when recursive is set to true and the sink is a file-based store, an empty folder or subfolder isn't copied or created at the sink.
Os valores permitidos são _ true* (padrão) e false.Allowed values are _ true* (default) and false.
Essa propriedade não se aplica quando você configura fileListPath.This property doesn't apply when you configure fileListPath.
NãoNo
deleteFilesAfterCompletiondeleteFilesAfterCompletion Indica se os arquivos binários serão excluídos do repositório de origem após a movimentação com êxito para o repositório de destino.Indicates whether the binary files will be deleted from source store after successfully moving to the destination store. 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 repositório de origem.The file deletion is per file, so when copy activity fails, you will see some files have already been copied to the destination and deleted from source, while others are still remaining on source store.
Esta propriedade só é válida no cenário de cópia de arquivos binários.This property is only valid in binary files copy scenario. O valor padrão: false.The default value: false.
NãoNo
modifiedDatetimeStartmodifiedDatetimeStart Filtro de arquivos com base no atributo: Última Modificação.Files filter based on the attribute: Last Modified.
Os arquivos serão escolhidos se a hora da última alteração estiver dentro do período entre modifiedDatetimeStart e modifiedDatetimeEnd.The files will be selected if their last modified time is within the time range between modifiedDatetimeStart and modifiedDatetimeEnd. A hora é aplicada ao fuso horário de UTC no formato "2018-12-01T05:00:00Z".The time is applied to UTC time zone in the format of "2018-12-01T05:00:00Z".
As propriedades podem ser nulas, o que significa que nenhum filtro de atributo de arquivo será aplicado ao conjunto de um.The properties can be NULL, which means no file attribute filter will be applied to the dataset. Quando modifiedDatetimeStart tem o valor de data e hora, mas modifiedDatetimeEnd for NULL, isso significa que serão selecionados os arquivos cujo último atributo modificado é maior ou igual ao valor de data e hora.When modifiedDatetimeStart has datetime value but modifiedDatetimeEnd is NULL, it means the files whose last modified attribute is greater than or equal with the datetime value will be selected. Quando modifiedDatetimeEnd tem o valor de data e hora, mas modifiedDatetimeStart for NULL, isso significa que serão selecionados os arquivos cujo último atributo modificado é menor que o valor de data e hora.When modifiedDatetimeEnd has datetime value but modifiedDatetimeStart is NULL, it means the files whose last modified attribute is less than the datetime value will be selected.
Essa propriedade não se aplica quando você configura fileListPath.This property doesn't apply when you configure fileListPath.
NãoNo
modifiedDatetimeEndmodifiedDatetimeEnd Mesmo que acima.Same as above. NãoNo
enablePartitionDiscoveryenablePartitionDiscovery Para arquivos que são particionados, especifique se deseja analisar as partições do caminho do arquivo e adicioná-las como colunas de origem adicionais.For files that are partitioned, specify whether to parse the partitions from the file path and add them as additional source columns.
Os valores permitidos são false (padrão) e true.Allowed values are false (default) and true.
NãoNo
partitionRootPathpartitionRootPath Quando a descoberta de partição estiver habilitada, especifique o caminho raiz absoluto para ler as pastas particionadas como colunas de dados.When partition discovery is enabled, specify the absolute root path in order to read partitioned folders as data columns.

Se não for especificado, por padrão,If it is not specified, by default,
-Quando você usa o caminho do arquivo no conjunto de programas ou na lista de arquivos na origem, o caminho raiz da partição é o caminho configurado no conjunto de um.- When you use file path in dataset or list of files on source, partition root path is the path configured in dataset.
-Quando você usa o filtro de pasta curinga, o caminho raiz da partição é o subcaminho antes do primeiro caractere curinga.- When you use wildcard folder filter, partition root path is the sub-path before the first wildcard.

Por exemplo, supondo que você configure o caminho no conjunto de um como "raiz/pasta/ano = 2020/mês = 08/dia = 27":For example, assuming you configure the path in dataset as "root/folder/year=2020/month=08/day=27":
-Se você especificar o caminho raiz da partição como "raiz/pasta/ano = 2020", a atividade de cópia irá gerar mais duas colunas month e day com o valor "08" e "27", respectivamente, além das colunas dentro dos arquivos.- If you specify partition root path as "root/folder/year=2020", copy activity will generate two more columns month and day with value "08" and "27" respectively, in addition to the columns inside the files.
-Se o caminho raiz da partição não for especificado, nenhuma coluna extra será gerada.- If partition root path is not specified, no extra column will be generated.
NãoNo
maxConcurrentConnectionsmaxConcurrentConnections O número das conexões para se conectar ao repositório de armazenamento simultaneamente.The number of connections to connect to storage store concurrently. Especifique somente quando quiser limitar a conexão simultânea com o armazenamento de dados.Specify only when you want to limit the concurrent connection to the data store. NãoNo

Exemplo:Example:

"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 Store Gen2 como um tipo de coletorAzure Data Lake Storage Gen2 as a sink type

O Azure Data Factory é compatível com os formatos de arquivo a seguir.Azure Data Factory supports the following file formats. Confira cada artigo para obter configurações baseadas em formato.Refer to each article for format-based settings.

As propriedades a seguir têm suporte para Data Lake Storage Gen2 em configurações de storeSettings no coletor de cópia baseado em formato:The following properties are supported for Data Lake Storage Gen2 under storeSettings settings in format-based copy sink:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade de tipo em storeSettings deve ser configurada com AzureBlobFSWriteSettings.The type property under storeSettings must be set to AzureBlobFSWriteSettings. SimYes
copyBehaviorcopyBehavior Define o comportamento de cópia quando a fonte for de arquivos de um armazenamento de dados baseado em arquivo.Defines the copy behavior when the source is files from a file-based data store.

Valores permitidos são:Allowed values are:
– PreserveHierarchy (padrão): Preserva a hierarquia de arquivos na pasta de destino.- PreserveHierarchy (default): Preserves the file hierarchy in the target folder. 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.The relative path of the source file to the source folder is identical to the relative path of the target file to the target folder.
– FlattenHierarchy: Todos os arquivos da pasta de origem estão no primeiro nível da pasta de destino.- FlattenHierarchy: All files from the source folder are in the first level of the target folder. Os arquivos de destino têm os nomes gerados automaticamente.The target files have autogenerated names.
– MergeFiles: Mescla todos os arquivos da pasta de origem em um arquivo.- MergeFiles: Merges all files from the source folder to one file. Se o nome do arquivo for especificado, o nome do arquivo mesclado será o nome especificado.If the file name is specified, the merged file name is the specified name. Caso contrário, ele será um nome de arquivo gerado automaticamente.Otherwise, it's an autogenerated file name.
NãoNo
blockSizeInMBblockSizeInMB Especifique o tamanho do bloco em MB usado para gravar dados no ADLS Gen2.Specify the block size in MB used to write data to ADLS Gen2. Saiba mais sobre Blobs de blocos.Learn more about Block Blobs.
O valor permitido é entre 4 MB e 100 MB.Allowed value is between 4 MB and 100 MB.
Por padrão, o ADF determina automaticamente o tamanho do bloco com base no tipo de armazenamento de origem e nos dados.By default, ADF automatically determines the block size based on your source store type and data. Para cópia não binária em ADLS Gen2, o tamanho de bloco padrão é 100 MB para que caiba no máximo de 4,95 TB de dados.For non-binary copy into ADLS Gen2, the default block size is 100 MB so as to fit in at most 4.95-TB data. Talvez não seja ideal quando os dados não forem grandes, especialmente quando você usar o runtime de integração auto-hospedada com rede deficiente, resultando em tempo limite de operação ou problema de desempenho.It may be not optimal when your data is not large, especially when you use Self-hosted Integration Runtime with poor network resulting in operation timeout or performance issue. Você pode especificar explicitamente um tamanho de bloco, mas verifique se blockSizeInMB*50000 é grande o suficiente para armazenar os dados; caso contrário, haverá falha na execução da atividade de cópia.You can explicitly specify a block size, while ensure blockSizeInMB*50000 is big enough to store the data, otherwise copy activity run will fail.
NãoNo
maxConcurrentConnectionsmaxConcurrentConnections O número das conexões para se conectar ao armazenamento de dados simultaneamente.The number of connections to connect to the data store concurrently. Especifique somente quando quiser limitar a conexão simultânea com o armazenamento de dados.Specify only when you want to limit the concurrent connection to the data store. NãoNo

Exemplo:Example:

"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"
                }
            }
        }
    }
]

Exemplos de filtro de pasta e arquivoFolder and file filter examples

Esta seção descreve o comportamento resultante do caminho da pasta e do nome de arquivo com filtros curinga.This section describes the resulting behavior of the folder path and file name with wildcard filters.

folderPathfolderPath fileNamefileName recursivarecursive Estrutura da pasta de origem e resultado do filtro (os arquivos em negrito são recuperados)Source folder structure and filter result (files in bold are retrieved)
Folder* (Vazio, usar padrão)(Empty, use default) falsefalse FolderAFolderA
    Arquivo1.csv    File1.csv
    Arquivo2.json    File2.json
    Subpasta1    Subfolder1
        Arquivo3.csv        File3.csv
        Arquivo4.json        File4.json
        Arquivo5.csv        File5.csv
OutraPastaBAnotherFolderB
    Arquivo6.csv    File6.csv
Folder* (Vazio, usar padrão)(Empty, use default) truetrue FolderAFolderA
    Arquivo1.csv    File1.csv
    Arquivo2.json    File2.json
    Subpasta1    Subfolder1
        Arquivo3.csv        File3.csv
        Arquivo4.json        File4.json
        Arquivo5.csv        File5.csv
OutraPastaBAnotherFolderB
    Arquivo6.csv    File6.csv
Folder* *.csv falsefalse FolderAFolderA
    Arquivo1.csv    File1.csv
    Arquivo2.json    File2.json
    Subpasta1    Subfolder1
        Arquivo3.csv        File3.csv
        Arquivo4.json        File4.json
        Arquivo5.csv        File5.csv
OutraPastaBAnotherFolderB
    Arquivo6.csv    File6.csv
Folder* *.csv truetrue FolderAFolderA
    Arquivo1.csv    File1.csv
    Arquivo2.json    File2.json
    Subpasta1    Subfolder1
        Arquivo3.csv        File3.csv
        Arquivo4.json        File4.json
        Arquivo5.csv        File5.csv
OutraPastaBAnotherFolderB
    Arquivo6.csv    File6.csv

Exemplos de lista de arquivosFile list examples

Esta seção descreve o comportamento resultante do uso do caminho da lista de arquivos na origem da atividade de cópia.This section describes the resulting behavior of using file list path in copy activity source.

Supondo que você tenha a seguinte estrutura de pasta de origem e queira copiar os arquivos em negrito:Assuming you have the following source folder structure and want to copy the files in bold:

Exemplo de estrutura de origemSample source structure Conteúdo em FileListToCopy.txtContent in FileListToCopy.txt Configuração ADFADF configuration
filesystemfilesystem
    FolderA    FolderA
        Arquivo1.csv        File1.csv
        Arquivo2.json        File2.json
        Subpasta1        Subfolder1
            Arquivo3.csv            File3.csv
            Arquivo4.json            File4.json
            Arquivo5.csv            File5.csv
    Metadados    Metadata
        FileListToCopy.txt        FileListToCopy.txt
File1.csvFile1.csv
Subfolder1/File3.csvSubfolder1/File3.csv
Subfolder1/File5.csvSubfolder1/File5.csv
No conjunto de dados:In dataset:
- Sistema de arquivos: filesystem- File system: filesystem
- Caminho da pasta: FolderA- Folder path: FolderA

Na origem da atividade de cópia:In copy activity source:
- Caminho da lista de arquivos: filesystem/Metadata/FileListToCopy.txt- File list path: filesystem/Metadata/FileListToCopy.txt

O caminho da lista de arquivos aponta para um arquivo de texto no mesmo armazenamento de dados que inclui a lista de arquivos que você deseja copiar, um arquivo por linha, com o caminho relativo do caminho configurado no conjunto de dados.The file list path points to a text file in the same data store that includes a list of files you want to copy, one file per line with the relative path to the path configured in the dataset.

Alguns exemplos de recursive e copyBehaviorSome recursive and copyBehavior examples

Esta seção descreve o comportamento resultante da operação de cópia para diferentes combinações de valores recursive e copyBehavior.This section describes the resulting behavior of the copy operation for different combinations of recursive and copyBehavior values.

recursivarecursive copyBehaviorcopyBehavior Estrutura de pasta de origemSource folder structure Destino resultanteResulting target
truetrue preserveHierarchypreserveHierarchy Pasta1Folder1
    Arquivo1    File1
    Arquivo2    File2
    Subpasta1    Subfolder1
        Arquivo3        File3
        Arquivo4        File4
        Arquivo5        File5
A Pasta1 de destino é criada com a mesma estrutura da origem:The target Folder1 is created with the same structure as the source:

Pasta1Folder1
    Arquivo1    File1
    Arquivo2    File2
    Subpasta1    Subfolder1
        Arquivo3        File3
        Arquivo4        File4
        Arquivo5        File5
truetrue flattenHierarchyflattenHierarchy Pasta1Folder1
    Arquivo1    File1
    Arquivo2    File2
    Subpasta1    Subfolder1
        Arquivo3        File3
        Arquivo4        File4
        Arquivo5        File5
A Pasta1 de destino é criada com a seguinte estrutura:The target Folder1 is created with the following structure:

Pasta1Folder1
    nome gerado automaticamente para o Arquivo1    autogenerated name for File1
    nome gerado automaticamente para o Arquivo2    autogenerated name for File2
    nome gerado automaticamente para o Arquivo3    autogenerated name for File3
    nome gerado automaticamente para o Arquivo4    autogenerated name for File4
    nome gerado automaticamente para o Arquivo5    autogenerated name for File5
truetrue mergeFilesmergeFiles Pasta1Folder1
    Arquivo1    File1
    Arquivo2    File2
    Subpasta1    Subfolder1
        Arquivo3        File3
        Arquivo4        File4
        Arquivo5        File5
A Pasta1 de destino é criada com a seguinte estrutura:The target Folder1 is created with the following structure:

Pasta1Folder1
    Os conteúdos de Arquivo1 + Arquivo2 + Arquivo3 + Arquivo4 + Arquivo5 são mesclados em um arquivo com um nome de arquivo gerado automaticamente.    File1 + File2 + File3 + File4 + File5 contents are merged into one file with an autogenerated file name.
falsefalse preserveHierarchypreserveHierarchy Pasta1Folder1
    Arquivo1    File1
    Arquivo2    File2
    Subpasta1    Subfolder1
        Arquivo3        File3
        Arquivo4        File4
        Arquivo5        File5
A Pasta1 de destino é criada com a seguinte estrutura:The target Folder1 is created with the following structure:

Pasta1Folder1
    Arquivo1    File1
    Arquivo2    File2

A Subpasta1 com Arquivo3, Arquivo4 e Arquivo5 não é selecionada.Subfolder1 with File3, File4, and File5 isn't picked up.
falsefalse flattenHierarchyflattenHierarchy Pasta1Folder1
    Arquivo1    File1
    Arquivo2    File2
    Subpasta1    Subfolder1
        Arquivo3        File3
        Arquivo4        File4
        Arquivo5        File5
A Pasta1 de destino é criada com a seguinte estrutura:The target Folder1 is created with the following structure:

Pasta1Folder1
    nome gerado automaticamente para o Arquivo1    autogenerated name for File1
    nome gerado automaticamente para o Arquivo2    autogenerated name for File2

A Subpasta1 com Arquivo3, Arquivo4 e Arquivo5 não é selecionada.Subfolder1 with File3, File4, and File5 isn't picked up.
falsefalse mergeFilesmergeFiles Pasta1Folder1
    Arquivo1    File1
    Arquivo2    File2
    Subpasta1    Subfolder1
        Arquivo3        File3
        Arquivo4        File4
        Arquivo5        File5
A Pasta1 de destino é criada com a seguinte estrutura:The target Folder1 is created with the following structure:

Pasta1Folder1
    Os conteúdos de Arquivo1 + Arquivo2 são mesclados em um arquivo com um nome de arquivo gerado automaticamente.    File1 + File2 contents are merged into one file with an autogenerated file name. nome gerado automaticamente para o Arquivo1autogenerated name for File1

A Subpasta1 com Arquivo3, Arquivo4 e Arquivo5 não é selecionada.Subfolder1 with File3, File4, and File5 isn't picked up.

Preservar metadados durante a cópiaPreserve metadata during copy

Ao copiar arquivos do Amazon S3/blob do Azure/Azure Data Lake Storage Gen2 para o Azure Data Lake Storage Gen2/blob do Azure, você poderá optar por preservar os metadados do arquivo junto com os dados.When you copy files from Amazon S3/Azure Blob/Azure Data Lake Storage Gen2 to Azure Data Lake Storage Gen2/Azure Blob, you can choose to preserve the file metadata along with data. Saiba mais em Preservar metadados.Learn more from Preserve metadata.

Preservar ACLs do Data Lake Storage Gen1/Gen2Preserve ACLs from Data Lake Storage Gen1/Gen2

Ao copiar arquivos do Azure Data Lake Storage Gen1/Gen2 para Gen2, você pode optar por preservar as ACLs (listas de controle de acesso) do POSIX junto com os dados.When you copy files from Azure Data Lake Storage Gen1/Gen2 to Gen2, you can choose to preserve the POSIX access control lists (ACLs) along with data. Saiba mais sobre Preservar ACLs do Data Lake Storage Gen1/Gen2 para o Gen2.Learn more from Preserve ACLs from Data Lake Storage Gen1/Gen2 to Gen2.

Dica

Para copiar dados do Azure Data Lake Storage Gen1 para o Gen2 em geral, confira Copiar dados de Azure Data Lake Storage Gen1 para o Gen2 com Azure Data Factory para obter instruções detalhadas e práticas recomendadas.To copy data from Azure Data Lake Storage Gen1 into Gen2 in general, see Copy data from Azure Data Lake Storage Gen1 to Gen2 with Azure Data Factory for a walk-through and best practices.

Mapeamento de propriedades de fluxo de dadosMapping data flow properties

Quando estiver transformando dados no mapeamento de fluxos de dados, você pode ler e gravar arquivos de Azure Data Lake Storage Gen2 nos seguintes formatos:When you're transforming data in mapping data flows, you can read and write files from Azure Data Lake Storage Gen2 in the following formats:

As configurações de formato específico estão localizadas na documentação para esse formato.Format specific settings are located in the documentation for that format. Para obter mais informações, consulte transformação de origem no mapeamento de fluxo de dados e transformação de coletor no fluxo de dados de mapeamento.For more information, see Source transformation in mapping data flow and Sink transformation in mapping data flow.

Transformação de origemSource transformation

Na transformação de origem, você pode ler de um contêiner, pasta ou arquivo individual no Azure Data Lake Storage Gen2.In the source transformation, you can read from a container, folder, or individual file in Azure Data Lake Storage Gen2. A guia Opções de origem permite que você gerencie como os arquivos são lidos.The Source options tab lets you manage how the files get read.

Opções de origemSource options

Caminho curinga: O uso de um padrão curinga instruirá o ADF a executar um loop em cada pasta e arquivo correspondentes em uma única transformação de origem.Wildcard path: Using a wildcard pattern will instruct ADF to loop through each matching folder and file in a single Source transformation. Esse é um modo eficaz de processar vários arquivos dentro de um único fluxo.This is an effective way to process multiple files within a single flow. Adicione vários padrões de correspondência de curingas com o sinal de + que aparece ao passar o mouse sobre o padrão de curinga existente.Add multiple wildcard matching patterns with the + sign that appears when hovering over your existing wildcard pattern.

Em seu contêiner de origem, escolha uma série de arquivos que correspondem a um padrão.From your source container, choose a series of files that match a pattern. Somente o contêiner pode ser especificado no conjunto de dados.Only container can be specified in the dataset. O caminho curinga, portanto, também precisa incluir o caminho da pasta raiz.Your wildcard path must therefore also include your folder path from the root folder.

Exemplos de caracteres curinga:Wildcard examples:

  • * Representa qualquer conjunto de caracteres* Represents any set of characters

  • ** Representa o aninhamento de diretório recursivo** Represents recursive directory nesting

  • ? Substitui um caractere? Replaces one character

  • [] Corresponde a um ou mais caracteres entre colchetes[] Matches one of more characters in the brackets

  • /data/sales/**/*.csv Obtém todos os arquivos CSV em /data/sales/data/sales/**/*.csv Gets all csv files under /data/sales

  • /data/sales/20??/**/ Obtém todos os arquivos no século 20/data/sales/20??/**/ Gets all files in the 20th century

  • /data/sales/*/*/*.csv Obtém arquivos CSV dois níveis em /data/sales/data/sales/*/*/*.csv Gets csv files two levels under /data/sales

  • /data/sales/2004/*/12/[XY]1?.csv Obtém todos os arquivos CSV de dezembro de 2004 que começam com X ou Y prefixado por um número de dois dígitos/data/sales/2004/*/12/[XY]1?.csv Gets all csv files in 2004 in December starting with X or Y prefixed by a two-digit number

Caminho raiz da partição: se você tiver pastas particionadas em sua fonte de arquivo com um formato key=value (por exemplo, year=2019), poderá atribuir o nível superior da árvore de pastas dessa partição a um nome de coluna no fluxo de dados.Partition Root Path: If you have partitioned folders in your file source with a key=value format (for example, year=2019), then you can assign the top level of that partition folder tree to a column name in your data flow data stream.

Primeiro, defina um curinga para incluir todos os caminhos que são as pastas particionadas mais os arquivos folha que você deseja ler.First, set a wildcard to include all paths that are the partitioned folders plus the leaf files that you wish to read.

Configurações do arquivo de origem da partiçãoPartition source file settings

Use a configuração do caminho raiz da partição para definir qual é o nível superior da estrutura de pastas.Use the Partition Root Path setting to define what the top level of the folder structure is. Ao exibir 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.When you view the contents of your data via a data preview, you'll see that ADF will add the resolved partitions found in each of your folder levels.

Caminho raiz da partiçãoPartition root path

Lista de arquivos: é um conjunto de arquivos.List of files: This is a file set. Crie um arquivo de texto que inclui uma lista de arquivos do caminho relativo a serem processados.Create a text file that includes a list of relative path files to process. Aponte para este arquivo de texto.Point to this text file.

Coluna para armazenar o nome do arquivo: armazene o nome do arquivo de origem em uma coluna em seus dados.Column to store file name: Store the name of the source file in a column in your data. Insira um novo nome de coluna para armazenar a cadeia de caracteres de nome de arquivo.Enter a new column name here to store the file name string.

Após a conclusão: Opte por não fazer nada com o arquivo de origem após a execução de fluxo de dados, excluir o arquivo de origem ou mover o arquivo de origem.After completion: Choose to do nothing with the source file after the data flow runs, delete the source file, or move the source file. Os caminhos para movimentação são relativos.The paths for the move are relative.

Para mover os arquivos de origem para outro local após o processamento, primeiro selecione "Mover" para a operação de arquivo.To move source files to another location post-processing, first select "Move" for file operation. Em seguida, defina o diretório "de".Then, set the "from" directory. Se você não estiver usando curingas para o caminho, a configuração "de" será a mesma pasta que a de origem.If you're not using any wildcards for your path, then the "from" setting will be the same folder as your source folder.

Se você tiver um caminho de origem com curinga, sua sintaxe terá a seguinte aparência:If you have a source path with wildcard, your syntax will look like this below:

/data/sales/20??/**/*.csv

Você pode especificar "de" comoYou can specify "from" as

/data/sales

E "para" comoAnd "to" as

/backup/priorSales

Nesse caso, todos os arquivos que foram originados em /data/sales são movidos para /backup/priorSales.In this case, all files that were sourced under /data/sales are moved to /backup/priorSales.

Observação

As operações do arquivo são executadas somente quando você inicia o fluxo de dados de uma execução de pipeline (depuração de pipeline ou realização da execução) que usa a atividade Executar Fluxo de Dados em um pipeline.File operations run only when you start the data flow from a pipeline run (a pipeline debug or execution run) that uses the Execute Data Flow activity in a pipeline. As operações de arquivo não são executadas no modo de depuração do Fluxo de Dados.File operations do not run in Data Flow debug mode.

Filtrar por última modificação: você pode filtrar quais arquivos são processados especificando um intervalo de datas de quando eles foram modificados pela última vez.Filter by last modified: You can filter which files you process by specifying a date range of when they were last modified. Todos os datetimes estão em UTC.All date-times are in UTC.

Propriedades do coletorSink properties

Na transformação do coletor, você pode gravar em um contêiner ou pasta no Azure Data Lake Storage Gen2.In the sink transformation, you can write to either a container or folder in Azure Data Lake Storage Gen2. A guia Configurações permite que você gerencie como os arquivos são gravados.the Settings tab lets you manage how the files get written.

opções de coletorsink options

Limpe a pasta: determina se a pasta de destino é limpa ou não antes de os dados serem gravados.Clear the folder: Determines whether or not the destination folder gets cleared before the data is written.

Opção do nome do arquivo: determina como os arquivos de destino são nomeados na pasta de destino.File name option: Determines how the destination files are named in the destination folder. As opções de nome de arquivo são:The file name options are:

  • Padrão: permitir que o Spark nomeie arquivos com base nos padrões de PART.Default: Allow Spark to name files based on PART defaults.
  • Padrão: insira um padrão que enumere os arquivos de saída por partição.Pattern: Enter a pattern that enumerates your output files per partition. Por exemplo, loans[n].csv criará loans1.csv, loans2.csv e assim por diante.For example, loans[n].csv will create loans1.csv, loans2.csv, and so on.
  • Por partição: insira um nome de arquivo por partição.Per partition: Enter one file name per partition.
  • Como dados na coluna: defina o arquivo de saída para o valor de uma coluna.As data in column: Set the output file to the value of a column. O caminho é relativo ao contêiner de conjunto de dados, não à pasta de destino.The path is relative to the dataset container, not the destination folder. Se você tiver um caminho de pasta em seu conjunto de dados, ele será substituído.If you have a folder path in your dataset, it will be overridden.
  • Saída para um único arquivo: combine os arquivos de saída particionados em um único arquivo nomeado.Output to a single file: Combine the partitioned output files into a single named file. O caminho é relativo à pasta do conjunto de dados.The path is relative to the dataset folder. Lembre-se de que a operação de mesclagem pode falhar com base no tamanho do nó.Please be aware that te merge operation can possibly fail based upon node size. Essa opção não é recomendada para conjuntos de dados grandes.This option is not recommended for large datasets.

Citar tudo: determina se todos os valores devem ser delimitados por aspasQuote all: Determines whether to enclose all values in quotes

Pesquisar propriedades de atividadesLookup activity properties

Para saber detalhes sobre as propriedades, verifique Atividade de pesquisa.To learn details about the properties, check Lookup activity.

Propriedades de atividade GetMetadataGetMetadata activity properties

Para saber detalhes sobre as propriedades, verifique Atividade GetMetadataTo learn details about the properties, check GetMetadata activity

Excluir propriedades da atividadeDelete activity properties

Para saber mais detalhes sobre as propriedades, marque Excluir atividadeTo learn details about the properties, check Delete activity

Modelos herdadosLegacy models

Observação

Os modelos a seguir ainda têm suporte no estado em que se encontram, para compatibilidade com versões anteriores.The following models are still supported as-is for backward compatibility. É recomendável usar o novo modelo mencionado nas seções acima no futuro, e a interface do usuário de criação do ADF mudou para gerar o novo modelo.You are suggested to use the new model mentioned in above sections going forward, and the ADF authoring UI has switched to generating the new model.

Modelo de conjunto de dados herdadoLegacy dataset model

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade type do conjunto de dados deve ser definida como: AzureBlobFSFile.The type property of the dataset must be set to AzureBlobFSFile. SimYes
folderPathfolderPath Caminho para a pasta em Data Lake Storage Gen2.Path to the folder in Data Lake Storage Gen2. Se não especificado, apontará para a raiz.If not specified, it points to the root.

O filtro curinga tem suporte.Wildcard filter is supported. Os curingas permitidos são * (corresponde a zero ou mais caracteres) e ? (corresponde a zero ou caractere único).Allowed wildcards are * (matches zero or more characters) and ? (matches zero or single character). Use ^ como escape se o nome real da pasta tiver curingas ou esse caractere de escape.Use ^ to escape if your actual folder name has a wildcard or this escape char is inside.

Exemplos: filesystem/folder/.Examples: filesystem/folder/. Veja mais exemplos em Exemplos de filtro de pastas e arquivos.See more examples in Folder and file filter examples.
NãoNo
fileNamefileName Filtro de nome ou curinga para os arquivos em "folderPath" especificado.Name or wildcard filter for the files under the specified "folderPath". Se você não especificar um valor para essa propriedade, o conjunto de dados apontará para todos os arquivos na pasta.If you don't specify a value for this property, the dataset points to all files in the folder.

Para filtro, os curingas permitidos são * (corresponde a zero ou mais caracteres) e ? (corresponde a zero ou caractere único).For filter, the wildcards allowed are * (matches zero or more characters) and ? (matches zero or single character).
– Exemplo 1: "fileName": "*.csv"- Example 1: "fileName": "*.csv"
– Exemplo 2: "fileName": "???20180427.txt"- Example 2: "fileName": "???20180427.txt"
Use ^ para se seu nome de arquivo real curinga ou esse caractere de escape dentro de escape.Use ^ to escape if your actual file name has a wildcard or this escape char is inside.

Quando fileName não for especificado para um conjunto de dados de saída e preserveHierarchy não for especificada no coletor de atividade, a atividade de cópia gerará automaticamente o nome do arquivo com o seguinte padrão: "Data.[GUID da ID de execução da atividade].[GUID se FlattenHierarchy].[formato se configurado].[compactação se configurada] ", por exemplo: "Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.gz".When fileName isn't specified for an output dataset and preserveHierarchy isn't specified in the activity sink, the copy activity automatically generates the file name with the following pattern: "Data.[activity run ID GUID].[GUID if FlattenHierarchy].[format if configured].[compression if configured]", for example, "Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.gz". Se você copiar da fonte tabular usando o nome da tabela, em vez da consulta, o nome padrão será " [nome da tabela].[formato].[compactação se configurada] ", por exemplo, "MyTable.csv".If you copy from a tabular source using a table name instead of a query, the name pattern is "[table name].[format].[compression if configured]", for example, "MyTable.csv".
NãoNo
modifiedDatetimeStartmodifiedDatetimeStart Filtro de arquivos com base no atributo Última Modificação.Files filter based on the attribute Last Modified. Os arquivos são selecionados se a hora da última modificação está dentro do intervalo de tempo entre modifiedDatetimeStart e modifiedDatetimeEnd.The files are selected if their last modified time is within the time range between modifiedDatetimeStart and modifiedDatetimeEnd. A hora é aplicada ao fuso horário de UTC no formato "2018-12-01T05:00:00Z".The time is applied to the UTC time zone in the format of "2018-12-01T05:00:00Z".

O desempenho geral da movimentação de dados será afetado ao habilitar essa configuração quando você desejar filtrar grandes quantidades de arquivos.The overall performance of data movement is affected by enabling this setting when you want to do file filter with huge amounts of files.

As propriedades podem ser NULL, o que significa que nenhum filtro de atributo de arquivo é aplicado ao conjunto de dados.The properties can be NULL, which means no file attribute filter is applied to the dataset. Quando modifiedDatetimeStart tiver o valor de datetime, mas modifiedDatetimeEnd for NULL, isso significa que serão selecionados os arquivos cujo último atributo modificado é maior ou igual ao valor de datetime.When modifiedDatetimeStart has a datetime value but modifiedDatetimeEnd is NULL, it means the files whose last modified attribute is greater than or equal to the datetime value are selected. Quando modifiedDatetimeEnd tiver o valor de datetime, mas modifiedDatetimeStart for NULL, isso significa que serão selecionados os arquivos cujo último atributo modificado é menor que o valor de datetime.When modifiedDatetimeEnd has a datetime value but modifiedDatetimeStart is NULL, it means the files whose last modified attribute is less than the datetime value are selected.
NãoNo
modifiedDatetimeEndmodifiedDatetimeEnd Filtro de arquivos com base no atributo Última Modificação.Files filter based on the attribute Last Modified. Os arquivos são selecionados se a hora da última modificação está dentro do intervalo de tempo entre modifiedDatetimeStart e modifiedDatetimeEnd.The files are selected if their last modified time is within the time range between modifiedDatetimeStart and modifiedDatetimeEnd. A hora é aplicada ao fuso horário de UTC no formato "2018-12-01T05:00:00Z".The time is applied to the UTC time zone in the format of "2018-12-01T05:00:00Z".

O desempenho geral da movimentação de dados será afetado ao habilitar essa configuração quando você desejar filtrar grandes quantidades de arquivos.The overall performance of data movement is affected by enabling this setting when you want to do file filter with huge amounts of files.

As propriedades podem ser NULL, o que significa que nenhum filtro de atributo de arquivo é aplicado ao conjunto de dados.The properties can be NULL, which means no file attribute filter is applied to the dataset. Quando modifiedDatetimeStart tiver o valor de datetime, mas modifiedDatetimeEnd for NULL, isso significa que serão selecionados os arquivos cujo último atributo modificado é maior ou igual ao valor de datetime.When modifiedDatetimeStart has a datetime value but modifiedDatetimeEnd is NULL, it means the files whose last modified attribute is greater than or equal to the datetime value are selected. Quando modifiedDatetimeEnd tiver o valor de datetime, mas modifiedDatetimeStart for NULL, isso significa que serão selecionados os arquivos cujo último atributo modificado é menor que o valor de datetime.When modifiedDatetimeEnd has a datetime value but modifiedDatetimeStart is NULL, it means the files whose last modified attribute is less than the datetime value are selected.
NãoNo
formatformat Se você quiser copiar arquivos no estado em que se encontram entre repositórios baseados em arquivo (cópia binária), ignore a seção de formato nas duas definições de conjunto de dados de entrada e de saída.If you want to copy files as is between file-based stores (binary copy), skip the format section in both the input and output dataset definitions.

Se você quer analisar ou gerar arquivos com um formato específico, os seguintes tipos de formato de arquivo são compatíveis: TextFormat, JsonFormat, AvroFormat, OrcFormat e ParquetFormat.If you want to parse or generate files with a specific format, the following file format types are supported: TextFormat, JsonFormat, AvroFormat, OrcFormat, and ParquetFormat. Defina a propriedade type sob format para um desses valores.Set the type property under format to one of these values. Para saber mais, veja as seções Formato de texto, Formato JSON, Formato Avro, Formato ORC e Formato Parquet.For more information, see the Text format, JSON format, Avro format, ORC format, and Parquet format sections.
Não (somente para o cenário de cópia binária)No (only for binary copy scenario)
compactaçãocompression Especifique o tipo e o nível de compactação para os dados.Specify the type and level of compression for the data. Para obter mais informações, consulte Formatos de arquivo e codecs de compactação com suporte.For more information, see Supported file formats and compression codecs.
Os tipos com suporte são: GZip, Deflate, BZip2 e ZipDeflate.Supported types are GZip, Deflate, BZip2, and ZipDeflate.
Os níveis de suporte são Ideal e Mais rápido.Supported levels are Optimal and Fastest.
NãoNo

Dica

Para copiar todos os arquivos em uma pasta, especifique folderPath somente.To copy all files under a folder, specify folderPath only.
Para copiar um único arquivo com um determinado nome, especifique folderPath com parte da pasta e fileName com nome de arquivo.To copy a single file with a given name, specify folderPath with a folder part and fileName with a file name.
Para copiar um subconjunto de arquivos em uma pasta, especifique folderPath com parte da pasta e fileName com filtro curinga.To copy a subset of files under a folder, specify folderPath with a folder part and fileName with a wildcard filter.

Exemplo:Example:

{
    "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 de atividade de cópia herdadoLegacy copy activity source model

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade type da origem da atividade de cópia deve ser definida como AzureBlobFSSource.The type property of the copy activity source must be set to AzureBlobFSSource. SimYes
recursivarecursive Indica se os dados são lidos recursivamente das subpastas ou somente da pasta especificada.Indicates whether the data is read recursively from the subfolders or only from the specified folder. Quando recursiva é definida como true e o coletor é um armazenamento baseado em arquivo, uma pasta vazia ou subpasta não é copiada ou criada no coletor.When recursive is set to true and the sink is a file-based store, an empty folder or subfolder isn't copied or created at the sink.
Os valores permitidos são true (padrão) e false.Allowed values are true (default) and false.
NãoNo
maxConcurrentConnectionsmaxConcurrentConnections O número das conexões para se conectar ao armazenamento de dados simultaneamente.The number of connections to connect to the data store concurrently. Especifique somente quando quiser limitar a conexão simultânea com o armazenamento de dados.Specify only when you want to limit the concurrent connection to the data store. NãoNo

Exemplo:Example:

"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 do coletor de atividade de cópia herdadoLegacy copy activity sink model

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade do tipo do coletor de atividade de cópia deve ser definida como AzureBlobFSSink.The type property of the copy activity sink must be set to AzureBlobFSSink. SimYes
copyBehaviorcopyBehavior Define o comportamento de cópia quando a fonte for de arquivos de um armazenamento de dados baseado em arquivo.Defines the copy behavior when the source is files from a file-based data store.

Valores permitidos são:Allowed values are:
– PreserveHierarchy (padrão): Preserva a hierarquia de arquivos na pasta de destino.- PreserveHierarchy (default): Preserves the file hierarchy in the target folder. 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.The relative path of the source file to the source folder is identical to the relative path of the target file to the target folder.
– FlattenHierarchy: Todos os arquivos da pasta de origem estão no primeiro nível da pasta de destino.- FlattenHierarchy: All files from the source folder are in the first level of the target folder. Os arquivos de destino têm os nomes gerados automaticamente.The target files have autogenerated names.
– MergeFiles: Mescla todos os arquivos da pasta de origem em um arquivo.- MergeFiles: Merges all files from the source folder to one file. Se o nome do arquivo for especificado, o nome do arquivo mesclado será o nome especificado.If the file name is specified, the merged file name is the specified name. Caso contrário, ele será um nome de arquivo gerado automaticamente.Otherwise, it's an autogenerated file name.
NãoNo
maxConcurrentConnectionsmaxConcurrentConnections O número das conexões para se conectar ao armazenamento de dados simultaneamente.The number of connections to connect to the data store concurrently. Especifique somente quando quiser limitar a conexão simultânea com o armazenamento de dados.Specify only when you want to limit the concurrent connection to the data store. NãoNo

Exemplo:Example:

"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"
            }
        }
    }
]

Próximas etapasNext steps

Para obter uma lista de armazenamentos de dados com suporte como origens e coletores pela atividade de cópia no Data Factory, consulte Armazenamentos de dados com suporte.For a list of data stores supported as sources and sinks by the copy activity in Data Factory, see Supported data stores.