Copiar e transformar dados em Azure Data Lake Armazenamento Gen2 usando Azure Data Factory

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Azure Data Lake Armazenamento Gen2 (ADLS Gen2) é um conjunto de capacidades dedicadas à análise de big data incorporadas no armazenamento Azure Blob. 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 utilizar a Atividade de Cópia no Azure Data Factory para copiar dados de/para o Azure Data Lake Storage Gen2 e utilizar o Fluxo de Dados para transformar dados no Azure Data Lake Storage Gen2. Para saber mais sobre a Azure Data Factory, leia o artigo introdutório.

Dica

Para o cenário de migração de datas ou data warehouse, saiba mais com a Use Azure Data Factory para migrar dados do seu lago de dados ou armazém de dados para Azure.

Capacidades suportadas

Este conector Azure Data Lake Armazenamento Gen2 é suportado para as seguintes atividades:

Para a atividade copy, com este conector pode:

Introdução

Dica

Para uma análise de como usar o conector data lake Armazenamento Gen2, consulte os dados de carga no Lago de Dados Azure Armazenamento Gen2.

Para realizar a atividade Copy com um pipeline, pode utilizar uma das seguintes ferramentas ou SDKs:

As secções seguintes fornecem informações sobre propriedades que são usadas para definir entidades da Data Factory específicas do Data Lake Armazenamento Gen2.

Propriedades de serviço ligadas

O conector Azure Data Lake Armazenamento Gen2 suporta os seguintes tipos de autenticação. Consulte as secções correspondentes para mais detalhes:

Nota

  • Se quiser utilizar o tempo de integração do Azure público para se ligar ao Data Lake Armazenamento Gen2, aproveitando o serviços Microsoft de confiança para aceder a esta opção de conta de armazenamento ativada na firewall Azure Armazenamento, deve utilizar a autenticação de identidade gerida.
  • Quando utilizar a declaração PolyBase ou COPY para carregar dados no Azure Synapse Analytics, se a sua origem ou encenação data lake Armazenamento Gen2 estiver configurado com um ponto final da Rede Virtual Azure, deve utilizar a autenticação de identidade gerida conforme exigido pela Synapse. Consulte a secção de autenticação de identidade gerida com mais pré-requisitos de configuração.

Autenticação chave de conta

Para utilizar a autenticação da chave de armazenamento, suportam-se as seguintes propriedades:

Propriedade Descrição Obrigatório
tipo A propriedade tipo deve ser definida para AzureBlobFS. Yes
url Ponto final para Data Lake Armazenamento Gen2 com o padrão de https://<accountname>.dfs.core.windows.net . Yes
contaKey Chave da conta para Data Lake Armazenamento Gen2. Marque este campo como um SecureString para armazená-lo de forma segura na Data Factory, ou fazer referência a um segredo armazenado no Cofre da Chave Azure. Yes
connectVia O tempo de integração a ser utilizado para ligar à loja de dados. Pode utilizar o tempo de funcionamento da integração Azure ou um tempo de integração auto-hospedado se a sua loja de dados estiver numa rede privada. Se esta propriedade não for especificada, o tempo de execução de integração Azure padrão é usado. No

Nota

O ponto final secundário do sistema de ficheiros ADLS não é suportado quando se utiliza a autenticação da chave de conta. Pode utilizar 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 do principal de serviço

Para utilizar a autenticação principal do serviço, siga estes passos.

  1. Registe uma entidade de candidatura em Azure Ative Directory (Azure AD) seguindo os passos no Registo da sua candidatura junto de um inquilino da AD Azure. Tome nota dos seguintes valores, que utiliza para definir o serviço ligado:

    • ID da aplicação
    • Chave de aplicação
    • ID do inquilino
  2. Conceda ao diretor de serviço a permissão adequada. Veja exemplos sobre como funciona a permissão em Data Lake Armazenamento Gen2 a partir de listas de controlo de acesso em ficheiros e diretórios

    • Como fonte: Em Explorador de Armazenamento, conceda pelo menos a permissão de executar para TODAS as pastas a montante e para o sistema de ficheiros, juntamente com a permissão de Leitura para que os ficheiros copiem. Em alternativa, no controlo de acesso (IAM), conceder pelo menos o papel de leitor de dados blob Armazenamento.
    • Como pia: Em Explorador de Armazenamento, conceda pelo menos a permissão de executar para TODAS as pastas a montante e para o sistema de ficheiros, juntamente com a permissão de escrever para a pasta da pia. Em alternativa, no controlo de acesso (IAM), conceder pelo menos a Armazenamento papel de Contribuinte de Dados Blob.

Nota

Se utilizar a UI da Data Factory para autor e o principal de serviço não estiver definido com a função "Armazenamento Blob Data Reader/Contributor" no IAM, ao fazer a ligação de teste ou as pastas de navegação/navegação/navegação, escolha "Testar a ligação ao caminho do ficheiro" ou "Navegar pelo caminho especificado", e especificar um caminho com a permissão de Leitura + Executar para continuar.

Estas propriedades são suportadas para o serviço ligado:

Propriedade Descrição Obrigatório
tipo A propriedade tipo deve ser definida para AzureBlobFS. Yes
url Ponto final para Data Lake Armazenamento Gen2 com o padrão de https://<accountname>.dfs.core.windows.net . Yes
servicePrincipalId Especifique a identificação do cliente da aplicação. Yes
ServiçoPrincipalCredentialType O tipo de credencial a utilizar para a autenticação principal do serviço. Os valores permitidos são ServicePrincipalKey e ServicePrincipalCert. Yes
serviçoPrincipalCredential A credencial principal de serviço.
Quando utilizar o ServicePrincipalKey como tipo de credencial, especifique a chave da aplicação. Marque este campo como SecureString para armazená-lo de forma segura na Data Factory, ou fazer referência a um segredo armazenado no Cofre da Chave Azure.
Quando utilizar o ServicePrincipalCert como credencial, consulte um certificado no Cofre da Chave Azure.
Yes
servicePrincipalKey Especifique a chave da aplicação. Marque este campo como SecureString para armazená-lo de forma segura na Data Factory, ou fazer referência a um segredo armazenado no Cofre da Chave Azure.
Esta propriedade ainda é suportada como é para servicePrincipalId + servicePrincipalKey . À medida que a ADF adiciona a autenticação do novo certificado principal de serviço, o novo modelo de autenticação principal do serviço é servicePrincipalId + servicePrincipalCredentialType + servicePrincipalCredential .
No
inquilino Especifique a informação do inquilino (nome de domínio ou ID do inquilino) sob a qual a sua aplicação reside. Recupere-o pairando sobre o rato no canto superior direito do portal Azure. Yes
AzureCloudType Para a autenticação principal do serviço, especifique o tipo de ambiente em nuvem Azure para o qual a sua Azure Ative Directory aplicação está registada.
Os valores permitidos são AzurePublic, AzureChina, AzureUsGovernment, e AzureGermany. Por padrão, o ambiente em nuvem da fábrica de dados é utilizado.
No
connectVia O tempo de integração a ser utilizado para ligar à loja de dados. Pode utilizar o tempo de funcionamento da integração Azure ou um tempo de integração auto-hospedado se a sua loja de dados estiver numa rede privada. Se não for especificado, utiliza-se o tempo de execução da integração Azure predefinido. No

Exemplo: utilização da autenticação principal do serviço

Também pode armazenar a chave principal do serviço no Cofre da Chave 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: utilização da autenticação do certificado principal 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"
        }
    }
}

Identidades geridas para autenticação de recursos Azure

Uma fábrica de dados pode ser associada a uma identidade gerida para os recursos da Azure,que representa esta fábrica de dados específica. Você pode usar diretamente esta identidade gerida para data lake Armazenamento autenticação Gen2, semelhante ao uso do seu próprio diretor de serviço. Permite que esta fábrica designada aceda e copie dados para ou a partir do seu Data Lake Armazenamento Gen2.

Para utilizar identidades geridas para a autenticação de recursos Azure, siga estes passos.

  1. Recupere a data factory gerindo informações de identidade copiando o valor do ID do objeto de identidade gerido gerado juntamente com a sua fábrica.

  2. Conceda a permissão de identidade gerida. Veja exemplos sobre como funciona a permissão em Data Lake Armazenamento Gen2 a partir de listas de controlo de acesso em ficheiros e diretórios.

    • Como fonte: Em Explorador de Armazenamento, conceda pelo menos a permissão de executar para TODAS as pastas a montante e para o sistema de ficheiros, juntamente com a permissão de Leitura para que os ficheiros copiem. Em alternativa, no controlo de acesso (IAM), conceder pelo menos o papel de leitor de dados blob Armazenamento.
    • Como pia: Em Explorador de Armazenamento, conceda pelo menos a permissão de executar para TODAS as pastas a montante e para o sistema de ficheiros, juntamente com a permissão de escrever para a pasta da pia. Em alternativa, no controlo de acesso (IAM), conceder pelo menos a Armazenamento papel de Contribuinte de Dados Blob.

Nota

Se utilizar a UI da Data Factory para autor e a identidade gerida não for definida com a função "Armazenamento Blob Data Reader/Colaborador" no IAM, ao fazer a ligação de teste ou as pastas de navegação/navegação/navegação, escolha "Testar a ligação ao caminho do ficheiro" ou "Navegar pelo caminho especificado", e especificar um caminho com a permissão de Leitura + Executar para continuar.

Importante

Se utilizar a declaração PolyBase ou COPY para carregar dados do Data Lake Armazenamento Gen2 para a Azure Synapse Analytics, quando utilizar a autenticação de identidade gerida para data lake Armazenamento Gen2, certifique-se de que também segue os passos 1 a 3 nesta orientação. Esses passos registarão o seu servidor com AZure AD e atribuirão a função de Contribuinte de Dados blob Armazenamento ao seu servidor. A Fábrica de Dados trata do resto. Se configurar o armazenamento blob com um ponto final da Rede Virtual Azure, também precisa de ter serviços Microsoft fidedignos para aceder a esta conta de armazenamento ligadas no menu de definições de firewalls e redes virtuais do Azure Armazenamento, conforme exigido pelo Synapse.

Estas propriedades são suportadas para o serviço ligado:

Propriedade Descrição Obrigatório
tipo A propriedade tipo deve ser definida para AzureBlobFS. Yes
url Ponto final para Data Lake Armazenamento Gen2 com o padrão de https://<accountname>.dfs.core.windows.net . Yes
connectVia O tempo de integração a ser utilizado para ligar à loja de dados. Pode utilizar o tempo de funcionamento da integração Azure ou um tempo de integração auto-hospedado se a sua loja de dados estiver numa rede privada. Se não for especificado, utiliza-se o tempo de execução da integração Azure predefinido. No

Exemplo:

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

Dataset properties (Propriedades do conjunto de dados)

Para obter uma lista completa de secções e propriedades disponíveis para definir conjuntos de dados, consulte Datasets.

A Azure Data Factory suporta os seguintes formatos de ficheiros. Consulte cada artigo para obter definições baseadas em formato.

As seguintes propriedades são suportadas para Data Lake Armazenamento Gen2 location em configurações no conjunto de dados baseado em formato:

Propriedade Descrição Obrigatório
tipo A propriedade tipo em baixo location no conjunto de dados deve ser definida para AzureBlobFSLocation. Yes
sistema de ficheiros O Data Lake Armazenamento nome do sistema de ficheiros Gen2. No
folderPath O caminho para uma pasta sob o sistema de ficheiros dado. Se pretender utilizar um wildcard para filtrar pastas, ignore esta definição e especifique-a nas definições de fonte de atividade. No
fileName O nome do ficheiro sob o dado ficheiroSystem + pastaPa. Se pretender utilizar um wildcard para filtrar ficheiros, ignore esta definição e especifique-a nas definições de fonte de atividade. No

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 secções e propriedades disponíveis para definir atividades, consulte configurações de atividades de Copy e Pipelines e atividades. Esta secção fornece uma lista de propriedades suportadas pelo Data Lake Armazenamento fonte e pia gen2.

Azure Data Lake Armazenamento Gen2 como um tipo de fonte

A Azure Data Factory suporta os seguintes formatos de ficheiros. Consulte cada artigo para obter definições baseadas em formato.

Tem várias opções para copiar dados da ADLS Gen2:

  • Cópia do caminho especificado no conjunto de dados.
  • Filtrar wildcard contra o caminho da pasta ou nome do ficheiro, ver wildcardFolderPath e wildcardFileName .
  • Copie os ficheiros definidos num dado ficheiro de texto como conjunto de ficheiros, ver fileListPath .

As seguintes propriedades são suportadas para Data Lake Armazenamento Gen2 em storeSettings configurações na fonte de cópia baseada em formato:

Propriedade Descrição Obrigatório
tipo A propriedade tipo em baixo storeSettings deve ser definida para AzureBlobFSReadSettings. Yes
Localize os ficheiros para copiar:
OPÇÃO 1: caminho estático
Copiar a partir do sistema de ficheiros dado ou do caminho da pasta/ficheiro especificado no conjunto de dados. Se pretender copiar todos os ficheiros de um sistema/pasta de ficheiros, especificar ainda wildcardFileName como * .
OPÇÃO 2: wildcard
- wildcardFolderPath
O caminho da pasta com caracteres wildcard sob o sistema de ficheiros configurado no conjunto de dados para filtrar as pastas de origem.
Os wildcards permitidos são: * (corresponde a zero ou mais caracteres) e ? (corresponde a zero ou caracteres individuais); use ^ para escapar se o nome da sua pasta tiver wildcard ou este char de fuga no interior.
Veja mais exemplos em exemplos de pasta e filtro de ficheiros.
No
OPÇÃO 2: wildcard
- wildcardFileName
O nome do ficheiro com caracteres wildcard no sistema de ficheiros dado + folderPath/wildcardFolderPath para filtrar ficheiros de origem.
Os wildcards permitidos são: * (corresponde a zero ou mais caracteres) e ? (corresponde a zero ou caracteres individuais); use ^ para escapar se o seu nome de ficheiro real tiver wildcard ou este char de fuga no interior. Veja mais exemplos em exemplos de pasta e filtro de ficheiros.
Yes
OPÇÃO 3: uma lista de ficheiros
- fileListPath
Indica copiar um determinado conjunto de ficheiros. Aponte para um ficheiro de texto que inclua uma lista de ficheiros que pretende copiar, um ficheiro por linha, que é o caminho relativo para o caminho configurado no conjunto de dados.
Ao utilizar esta opção, não especifique o nome do ficheiro no conjunto de dados. Ver mais exemplos em exemplos da lista de ficheiros.
No
Definições adicionais:
recursivo Indica se os dados são lidos novamente a partir das sub-dobradeiras ou apenas a partir da pasta especificada. Note que quando a recursiva é definida como verdadeira e a pia é uma loja baseada em ficheiros, uma pasta ou sub-dobrador vazio não é copiado ou criado na pia.
Os valores permitidos são verdadeiros (padrão) e falsos.
Esta propriedade não se aplica quando se fileListPath configura.
No
eliminarFilesAfterCompletion Indica se os ficheiros binários serão eliminados da loja de origem depois de se mudarem com sucesso para a loja de destino. A eliminação do ficheiro é por ficheiro, pelo que quando a atividade da cópia falhar, verá que alguns ficheiros já foram copiados para o destino e eliminados da fonte, enquanto outros ainda permanecem na loja de origem.
Esta propriedade é válida apenas em cenário de cópia de ficheiros binários. O valor predefinido: falso.
No
modificadoDatetimeStart Filtro de ficheiros com base no atributo: Última Modificação.
Os ficheiros serão selecionados se o seu último tempo modificado estiver dentro do intervalo de tempo entre modifiedDatetimeStart e modifiedDatetimeEnd . . O tempo é aplicado ao fuso horário utc no formato de "2018-12-01T05:00:00Z".
As propriedades podem ser NUAS, o que significa que nenhum filtro de atributo de ficheiro será aplicado no conjunto de dados. Quando modifiedDatetimeStart tem valor de data mas é modifiedDatetimeEnd NU, significa que os ficheiros cujo último atributo modificado é maior ou igual com o valor da data serão selecionados. Quando modifiedDatetimeEnd tem valor de data mas é modifiedDatetimeStart NU, significa que os ficheiros cujo último atributo modificado é inferior ao valor da data serão selecionados.
Esta propriedade não se aplica quando se fileListPath configura.
No
modificadoDatetimeEnd Mesmo que acima. No
permitirPartitionDiscovery Para os ficheiros que são divididos, especifique se analisar as divisórias do caminho do ficheiro e adicioná-las como colunas de origem adicionais.
Os valores permitidos são falsos (padrão) e verdadeiros.
No
partitionRootPath Quando a descoberta da partição estiver ativada, especifique o caminho da raiz absoluta para ler as pastas partidas como colunas de dados.

Se não for especificado, por defeito,
- Quando utiliza o caminho do ficheiro no conjunto de dados ou na lista de ficheiros na fonte, o caminho da raiz da partição é o caminho configurado no conjunto de dados.
- Quando utiliza o filtro de pasta wildcard, o caminho da raiz da partição é o sub-caminho antes do primeiro wildcard.

Por exemplo, assumindo que configura o caminho no conjunto de dados como "raiz/pasta/ano=2020/mês=08/dia=27":
- Se especificar o caminho da raiz da partição como "raiz/pasta/ano=2020", a atividade da cópia gerará mais duas colunas month e com o valor day "08" e "27", respectivamente, para além das colunas dentro dos ficheiros.
- Se não for especificado o caminho da raiz da partição, não será gerada nenhuma coluna extra.
No
maxConcurrentConnections O limite superior das ligações simultâneas estabelecidas na loja de dados durante a atividade. Especifique um valor apenas quando pretende limitar ligações simultâneas. No

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 Armazenamento Gen2 como um tipo de pia

A Azure Data Factory suporta os seguintes formatos de ficheiros. Consulte cada artigo para obter definições baseadas em formato.

As seguintes propriedades são suportadas para Data Lake Armazenamento Gen2 em storeSettings configurações no lavatório de cópias baseado em formato:

Propriedade Descrição Obrigatório
tipo A propriedade tipo em baixo storeSettings deve ser definida para AzureBlobFSWriteSettings. Yes
copyOportundo Define o comportamento da cópia quando a fonte é ficheiros de uma loja de dados baseada em ficheiros.

Os valores permitidos são:
- Preservar AHierarquia (predefinição): Preserva a hierarquia do ficheiro na pasta alvo. O percurso relativo do ficheiro de origem para a pasta de origem é idêntico ao caminho relativo do ficheiro-alvo para a pasta alvo.
- FlattenHierarchy: Todos os ficheiros da pasta de origem estão no primeiro nível da pasta alvo. Os ficheiros-alvo têm nomes autogerados.
- MergeFiles: Funde todos os ficheiros da pasta de origem para um ficheiro. Se o nome do ficheiro for especificado, o nome do ficheiro fundido é o nome especificado. Caso contrário, é um nome de ficheiro autogerado.
No
blockSizeInMB Especifique o tamanho do bloco em MB usado para escrever dados para ADLS Gen2. Saiba mais sobre Block Blobs.
O valor permitido é entre 4 MB e 100 MB.
Por predefinição, a ADF determina automaticamente o tamanho do bloco com base no tipo e dados da sua loja de origem. Para a cópia não binária na ADLS Gen2, o tamanho do bloco predefinido é de 100 MB de modo a encaixar no máximo os dados de 4,95-TB. Pode não ser ótimo quando os seus dados não são grandes, especialmente quando utiliza o Tempo de Execução de Integração Auto-hospedado com uma rede deficiente, resultando em tempo de funcionamento ou problema de desempenho. Pode especificar explicitamente um tamanho de bloco, enquanto certifique-se de que o blocoSizeInMB*50000 é grande o suficiente para armazenar os dados, caso contrário, a execução da atividade da cópia falhará.
No
maxConcurrentConnections O limite superior das ligações simultâneas estabelecidas na loja de dados durante a atividade. Especifique um valor apenas quando pretende limitar ligações simultâneas. No
do IdP Desaver os metadados personalizados quando copiar para afundar. Cada objeto sob a metadata matriz representa uma coluna extra. O name define o nome chave dos metadados, e indica o valor dos value dados dessa chave. Se forem utilizados os atributos de preservação, os metadados especificados irão unir-se/substituir-se com os metadados do ficheiro de origem.

Os valores de dados permitidos são:
- $$LASTMODIFIED: uma variável reservada indica para armazenar o último tempo modificado dos ficheiros de origem. Aplicar a fonte baseada em ficheiros apenas com formato binário.
- Expressão
- Valor estático
No

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 filtro de pasta e ficheiro

Esta secção descreve o comportamento resultante do caminho da pasta e nome do ficheiro com filtros wildcard.

folderPath fileName recursivo Estrutura de pasta de origem e resultado do filtro (os ficheiros em negrito são recuperados)
Folder* (Vazio, uso padrão) false Pasta
    File1.csv
    File2.js
    Sub-página1
        File3.csv
        File4.js
        File5.csv
Outra 14h
    File6.csv
Folder* (Vazio, uso padrão) true Pasta
    File1.csv
    File2.js
    Sub-página1
        File3.csv
        File4.js
        File5.csv
Outra 14h
    File6.csv
Folder* *.csv false Pasta
    File1.csv
    File2.js
    Sub-página1
        File3.csv
        File4.js
        File5.csv
Outra 14h
    File6.csv
Folder* *.csv true Pasta
    File1.csv
    File2.js
    Sub-página1
        File3.csv
        File4.js
        File5.csv
Outra 14h
    File6.csv

Exemplos de lista de ficheiros

Esta secção descreve o comportamento resultante da utilização do caminho da lista de ficheiros na fonte de atividade de cópia.

Assumindo que tem a seguinte estrutura de pasta de origem e quer copiar os ficheiros em negrito:

Estrutura de origem da amostra Conteúdo em FileListToCopy.txt Configuração ADF
sistema de ficheiros
    Pasta
        File1.csv
        File2.js
        Sub-página1
            File3.csv
            File4.js
            File5.csv
    Metadados
        FileListToCopy.txt
File1.csv
Sub-página1/File3.csv
Sub-página1/File5.csv
No conjunto de dados:
- Sistema de ficheiros: filesystem
- Caminho da pasta: FolderA

Na fonte de atividade de cópia:
- Caminho da lista de ficheiros: filesystem/Metadata/FileListToCopy.txt

O caminho da lista de ficheiros aponta para um ficheiro de texto na mesma loja de dados que inclui uma lista de ficheiros que pretende copiar, um ficheiro por linha com o caminho relativo ao caminho configurado no conjunto de dados.

Alguns exemplos recursivos e copyBehavior

Esta secção descreve o comportamento resultante da operação de cópia para diferentes combinações de valores recursivos e de cópias.

recursivo copyOportundo Estrutura de pasta de origem Alvo resultante
true preservarHierarquia Pasta1
    Arquivo1
    Arquivo2
    Sub-página1
        Arquivo3
        Arquivo4
        Arquivo5
A Pasta-alvo1 é criada com a mesma estrutura que a fonte:

Pasta1
    Arquivo1
    Arquivo2
    Sub-página1
        Arquivo3
        Arquivo4
        Arquivo5
true achatamento Pasta1
    Arquivo1
    Arquivo2
    Sub-página1
        Arquivo3
        Arquivo4
        Arquivo5
A Pasta-alvo1 é criada com a seguinte estrutura:

Pasta1
    nome autogerado para File1
    nome autogerado para File2
    nome autogerado para File3
    nome autogerado para File4
    nome autogerado para File5
true fusõesFilias Pasta1
    Arquivo1
    Arquivo2
    Sub-página1
        Arquivo3
        Arquivo4
        Arquivo5
A Pasta-alvo1 é criada com a seguinte estrutura:

Pasta1
    File1 + File2 + File3 + File4 + File5 os conteúdos são fundidos num ficheiro com um nome de ficheiro autogerado.
false preservarHierarquia Pasta1
    Arquivo1
    Arquivo2
    Sub-página1
        Arquivo3
        Arquivo4
        Arquivo5
A Pasta-alvo1 é criada com a seguinte estrutura:

Pasta1
    Arquivo1
    Arquivo2

Subfolder1 com File3, File4 e File5 não é recolhido.
false achatamento Pasta1
    Arquivo1
    Arquivo2
    Sub-página1
        Arquivo3
        Arquivo4
        Arquivo5
A Pasta-alvo1 é criada com a seguinte estrutura:

Pasta1
    nome autogerado para File1
    nome autogerado para File2

Subfolder1 com File3, File4 e File5 não é recolhido.
false fusõesFilias Pasta1
    Arquivo1
    Arquivo2
    Sub-página1
        Arquivo3
        Arquivo4
        Arquivo5
A Pasta-alvo1 é criada com a seguinte estrutura:

Pasta1
    O conteúdo do Ficheiro1 + Ficheiro2 é fundido num ficheiro com um nome de ficheiro autogerido. nome autogerado para File1

Subfolder1 com File3, File4 e File5 não é recolhido.

Preservar metadados durante a cópia

Quando copiar ficheiros da Amazon S3/Azure Blob/Azure Data Lake Armazenamento Gen2 a Azure Data Lake Armazenamento Gen2/Azure Blob, pode optar por preservar os metadados do ficheiro juntamente com os dados. Saiba mais com os metadados da Preserve.

Preservar ACLs do Data Lake Armazenamento Gen1/Gen2

Ao copiar ficheiros do Azure Data Lake Armazenamento Gen1/Gen2 para a Gen2, pode optar por preservar as listas de controlo de acessos POSIX (ACLs) juntamente com dados. Saiba mais entre os ACLs preservem de Data Lake Armazenamento Gen1/Gen2 a Gen2.

Dica

Para copiar dados do Azure Data Lake Armazenamento Gen1 para a Gen2 em geral, consulte os dados de Cópia do Lago de Dados Azure Armazenamento Gen1 para a Gen2 com a Azure Data Factory para uma passagem e boas práticas.

Mapeamento de propriedades de fluxo de dados

Quando estiver a transformar dados em fluxos de dados de mapeamento, pode ler e escrever ficheiros a partir do Azure Data Lake Armazenamento Gen2 nos seguintes formatos:

As definições específicas do formato estão localizadas na documentação para este formato. Para obter mais informações, consulte a transformação de Fonte no fluxo de dados de mapeamento e transformação de sumidouro no fluxo de dados de mapeamento.

Transformação de origem

Na transformação da fonte, pode ler-se a partir de um recipiente, pasta ou ficheiro individual no Azure Data Lake Armazenamento Gen2. O separador opções Source permite-lhe gerir a forma como os ficheiros são lidos.

Opções de origem

Caminho wildcard: A utilização de um padrão wildcard instruirá a ADF a rodar através de cada pasta e ficheiro correspondente numa única transformação source. Esta é uma forma eficaz de processar vários ficheiros dentro de um único fluxo. Adicione vários padrões de correspondência wildcard com o sinal + que aparece ao pairar sobre o seu padrão wildcard existente.

A partir do seu recipiente de origem, escolha uma série de ficheiros que correspondam a um padrão. Apenas o recipiente pode ser especificado no conjunto de dados. O seu percurso wildcard deve, portanto, incluir também o seu caminho de pasta a partir da pasta raiz.

Exemplos wildcard:

  • * Representa qualquer conjunto de caracteres

  • ** Representa o nidificação de diretório recursivo

  • ? Substitui um personagem

  • [] Corresponde a um dos mais caracteres nos parênteses

  • /data/sales/**/*.csv Obtém todos os ficheiros csv em /dados/vendas

  • /data/sales/20??/**/ Recebe todos os ficheiros do século XX

  • /data/sales/*/*/*.csv Obtém ficheiros csv dois níveis em /dados/vendas

  • /data/sales/2004/*/12/[XY]1?.csv Obtém todos os ficheiros 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 tiver pastas divididas na sua fonte de ficheiro com um key=value formato (por exemplo, ano=2019), então pode atribuir o nível superior dessa caixa de divisória a um nome de coluna no fluxo de dados do seu fluxo de dados.

Em primeiro lugar, desajuste um wildcard para incluir todos os caminhos que são as pastas divididas mais os ficheiros de folhas que deseja ler.

Definições de ficheiros de fonte de partição

Utilize a definição do Caminho da Raiz da Partição para definir qual é o nível superior da estrutura da pasta. Quando visualizar o conteúdo dos seus dados através de uma pré-visualização de dados, verá que a ADF adicionará as divisórias resolvidas encontradas em cada um dos níveis de pasta.

Caminho da raiz da partição

Lista de ficheiros: Este é um conjunto de arquivos. Crie um ficheiro de texto que inclua uma lista de ficheiros de caminhos relativos para processar. Aponte para este ficheiro de texto.

Coluna para armazenar nome de ficheiro: Guarde o nome do ficheiro de origem numa coluna nos seus dados. Introduza aqui um novo nome de coluna para armazenar a cadeia de nomes de ficheiros.

Após a conclusão: Opte por não fazer nada com o ficheiro de origem após o fluxo de dados, eliminar o ficheiro de origem ou mover o ficheiro de origem. Os caminhos para a mudança são relativos.

Para mover ficheiros de origem para outro pós-processamento de localização, selecione primeiro "Mover" para a operação de ficheiros. Em seguida, definir o diretório "de" Se não estiver a utilizar nenhum wildcard para o seu caminho, então a definição "a partir" será a mesma pasta que a sua pasta de origem.

Se tiver um caminho de origem com wildcard, a sua sintaxe será assim abaixo:

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

Pode especificar "a partir" como

/data/sales

E "para" como

/backup/priorSales

Neste caso, todos os ficheiros que foram obtidos em /dados/vendas são transferidos para /backup/priorSales.

Nota

As operações de ficheiros só funcionam quando inicia o fluxo de dados a partir de uma execução de gasoduto (um depurar ou execução de gasoduto) que utiliza a atividade de Flow de Dados de Execução num oleoduto. As operações de ficheiro não são executadas no modo Data Flow depurar.

Filtrar por última modificação: Pode filtrar quais os ficheiros que processa especificando um intervalo de datas de quando foram modificados pela última vez. Todos os horários estão na UTC.

Propriedades de pia

Na transformação do lavatório, você pode escrever para um recipiente ou pasta em Azure Data Lake Armazenamento Gen2. o separador Definições permite-lhe gerir a forma como os ficheiros são escritos.

opções de afundar

Limpe a pasta: Determina se a pasta de destino é ou não apurada antes de os dados serem escritos.

Opção nome de ficheiro: Determina como os ficheiros de destino são nomeados na pasta de destino. As opções de nome do ficheiro são:

  • Predefinição: Permita que o Spark nomeie ficheiros com base em predefinições PART.
  • Padrão: Introduza um padrão que enumera os seus ficheiros de saída por partição. Por exemplo, os empréstimos[n].csv criarão loans1.csv, loans2.csv, e assim por diante.
  • Por partição: Introduza um nome de ficheiro por partição.
  • Como dados na coluna: Desave o ficheiro de saída ao valor de uma coluna. O caminho é relativo ao recipiente do conjunto de dados, não à pasta de destino. Se tiver um caminho de pasta no seu conjunto de dados, será ultrapassado.
  • Saída para um único ficheiro: Combine os ficheiros de saída divididos num único ficheiro nomeado. O caminho é relativo à pasta do conjunto de dados. Por favor, esteja ciente de que a operação de fusão te pode possivelmente falhar com base no tamanho do nó. Esta opção não é recomendada para grandes conjuntos de dados.

Citar tudo: Determina se deve incluir todos os valores em ações

Propriedades de atividade de procura

Para obter detalhes sobre as propriedades, consulte a atividade de Lookup.

Propriedades de atividade getMetadata

Para saber mais detalhes sobre as propriedades, consulte a atividade da GetMetadata

Eliminar propriedades de atividade

Para obter detalhes sobre as propriedades, verifique a atividade de Eliminar

Modelos legados

Nota

Os modelos seguintes ainda são suportados como é para retrocompatibilidade. Sugere-se que utilize o novo modelo mencionado nas secções acima, e a UI de autoria da ADF passou a gerar o novo modelo.

Modelo de conjunto de dados legado

Propriedade Descrição Obrigatório
tipo A propriedade tipo do conjunto de dados deve ser definida para AzureBlobFSFile. Yes
folderPath Caminho para a pasta em Data Lake Armazenamento Gen2. Se não for especificado, aponta para a raiz.

O filtro Wildcard é suportado. Os wildcards permitidos são * (corresponde a zero ou mais caracteres) e ? (corresponde a zero ou single character). Use ^ para escapar se o nome da sua pasta tiver um wildcard ou se este char de fuga estiver dentro.

Exemplos: sistema de ficheiros/pasta/. Veja mais exemplos em exemplos de pasta e filtro de ficheiros.
No
fileName Nome ou filtro wildcard para os ficheiros sob a especificada "folderPath". Se não especificar um valor para esta propriedade, o conjunto de dados aponta para todos os ficheiros da pasta.

Para o filtro, os wildcards permitidos são * (corresponde a zero ou mais caracteres) e ? (corresponde a zero ou caracteres individuais).
- Exemplo 1: "fileName": "*.csv"
- Exemplo 2: "fileName": "???20180427.txt"
Use ^ para escapar se o seu nome de ficheiro real tiver um wildcard ou se este char de fuga estiver lá dentro.

Quando o data de ficheiro não é especificado para um conjunto de dados de saída e a preservaçãoHierarquia não é especificado na pia da atividade, a atividade da cópia gera automaticamente o nome do ficheiro com o seguinte padrão: "Dados.". atividade executar ID GUID]. [GUID se FlattenHierarchy]. [formato se configurado]. [compressão se configurado]", por exemplo, "Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.gz". Se copiar de uma fonte tabular usando um nome de mesa em vez de uma consulta, o padrão de nome é "[nome de mesa].[ formato]. [compressão se configurado]", por exemplo, "MyTable.csv".
No
modificadoDatetimeStart Filtro de ficheiros com base no atributo Última Modificação. Os ficheiros são selecionados se o seu último tempo modificado estiver dentro do intervalo de tempo entre modifiedDatetimeStart e modifiedDatetimeEnd . . O tempo é aplicado ao fuso horário UTC no formato de "2018-12-01T05:00:00Z".

O desempenho geral do movimento de dados é afetado por permitir esta definição quando pretende fazer filtro de ficheiros com enormes quantidades de ficheiros.

As propriedades podem ser NUAS, o que significa que nenhum filtro de atributos de ficheiro é aplicado no conjunto de dados. Quando modifiedDatetimeStart tem um valor de data, mas é modifiedDatetimeEnd NU, significa que os ficheiros cujo último atributo modificado é superior ou igual ao valor da data são selecionados. Quando modifiedDatetimeEnd tem um valor de data, mas é modifiedDatetimeStart NU, significa que os ficheiros cujo último atributo modificado é inferior ao valor da data são selecionados.
No
modificadoDatetimeEnd Filtro de ficheiros com base no atributo Última Modificação. Os ficheiros são selecionados se o seu último tempo modificado estiver dentro do intervalo de tempo entre modifiedDatetimeStart e modifiedDatetimeEnd . . O tempo é aplicado ao fuso horário UTC no formato de "2018-12-01T05:00:00Z".

O desempenho geral do movimento de dados é afetado por permitir esta definição quando pretende fazer filtro de ficheiros com enormes quantidades de ficheiros.

As propriedades podem ser NUAS, o que significa que nenhum filtro de atributos de ficheiro é aplicado no conjunto de dados. Quando modifiedDatetimeStart tem um valor de data, mas é modifiedDatetimeEnd NU, significa que os ficheiros cujo último atributo modificado é superior ou igual ao valor da data são selecionados. Quando modifiedDatetimeEnd tem um valor de data, mas é modifiedDatetimeStart NU, significa que os ficheiros cujo último atributo modificado é inferior ao valor da data são selecionados.
No
formato Se pretender copiar ficheiros como está entre lojas baseadas em ficheiros (cópia binária), ignore a secção de formato nas definições de conjunto de dados de entrada e saída.

Se pretender analisar ou gerar ficheiros com um formato específico, os seguintes tipos de formato de ficheiros são suportados: TextFormat, JsonFormat, AvroFormat, OrcFormat e ParquetFormat. Desa um destes valores, o tipo de propriedade em formato. Para mais informações, consulte o formato Text, formato JSON, formato Avro, formato ORCe secções de formato Parquet.
Não (apenas para cenário de cópia binária)
compressão Especifique o tipo e o nível de compressão para os dados. Para obter mais informações, consulte formatos de ficheiros suportados e codecs de compressão.
Os tipos suportados são GZip, Deflate, BZip2 e ZipDeflate.
Os níveis suportados são ideais e mais rápidos.
No

Dica

Para copiar todos os ficheiros numa pasta, especifique apenas o apêndio.
Para copiar um único ficheiro com um nome próprio, especifique a pastaPath com uma peça de pasta e arquiveme com um nome de ficheiro.
Para copiar um subconjunto de ficheiros numa pasta, especifique a pastaPath com uma peça de pasta e arquive o nome de ficheiros com um filtro wildcard.

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 de origem de atividade de cópia de legado

Propriedade Descrição Obrigatório
tipo A propriedade tipo da fonte de atividade de cópia deve ser definida para AzureBlobFSSource. Yes
recursivo Indica se os dados são lidos novamente a partir das sub-dobradeiras ou apenas a partir da pasta especificada. Quando a recursiva é definida como verdadeira e a pia é uma loja baseada em ficheiros, uma pasta ou sub-dobrador vazio não é copiado ou criado na pia.
Os valores permitidos são verdadeiros (padrão) e falsos.
No
maxConcurrentConnections O limite superior das ligações simultâneas estabelecidas na loja de dados durante a atividade. Especifique um valor apenas quando pretende limitar ligações simultâneas. No

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 pia de atividade de cópia legacy

Propriedade Descrição Obrigatório
tipo A propriedade do tipo do lavatório de atividade de cópia deve ser definida para AzureBlobFSSink. Yes
copyOportundo Define o comportamento da cópia quando a fonte é ficheiros de uma loja de dados baseada em ficheiros.

Os valores permitidos são:
- Preservar AHierarquia (predefinição): Preserva a hierarquia do ficheiro na pasta alvo. O percurso relativo do ficheiro de origem para a pasta de origem é idêntico ao caminho relativo do ficheiro-alvo para a pasta alvo.
- FlattenHierarchy: Todos os ficheiros da pasta de origem estão no primeiro nível da pasta alvo. Os ficheiros-alvo têm nomes autogerados.
- MergeFiles: Funde todos os ficheiros da pasta de origem para um ficheiro. Se o nome do ficheiro for especificado, o nome do ficheiro fundido é o nome especificado. Caso contrário, é um nome de ficheiro autogerado.
No
maxConcurrentConnections O limite superior das ligações simultâneas estabelecidas na loja de dados durante a atividade. Especifique um valor apenas quando pretende limitar ligações simultâneas. No

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

Passos seguintes

Para obter uma lista de lojas de dados suportadas como fontes e sumidouros pela atividade de cópia na Data Factory, consulte lojas de dados suportadas.