Copiar dados para ou a partir de Azure Data Lake Storage Gen1 usando Azure Data Factory

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Este artigo descreve como copiar dados de e para a Azure Data Lake Storage Gen1. Para saber mais sobre a Azure Data Factory, leia o artigo introdutório.

Capacidades suportadas

Este conector Azure Data Lake Storage Gen1 é suportado para as seguintes atividades:

Especificamente, com este conector pode:

Importante

Se copiar dados utilizando o tempo de integração auto-hospedado, configuure a firewall corporativa para permitir o tráfego de saída para e para a <ADLS account name>.azuredatalakestore.net login.microsoftonline.com/<tenant>/oauth2/token porta 443. Este último é o Serviço Azure Security Token que o tempo de integração precisa de comunicar para obter o token de acesso.

Introdução

Dica

Para obter uma análise de como utilizar o conector Azure Data Lake Store, consulte os dados de carga na Azure Data Lake Store.

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 da Azure Data Lake Store.

Propriedades de serviço ligadas

As seguintes propriedades são suportadas para o serviço ligado à Azure Data Lake Store:

Propriedade Descrição Obrigatório
tipo O type imóvel deve ser definido para AzureDataLakeStore. Yes
dataLakeStoreUri Informação sobre a conta da Azure Data Lake Store. Esta informação requer um dos seguintes formatos: https://[accountname].azuredatalakestore.net/webhdfs/v1 ou adl://[accountname].azuredatalakestore.net/ . Yes
subscriptionId O ID de assinatura Azure a que pertence a conta Data Lake Store. Necessário para a pia
resourceGroupName O nome do grupo de recursos Azure a que pertence a conta Data Lake Store. Necessário para a pia
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 localizada numa rede privada. Se esta propriedade não for especificada, o tempo de execução de integração Azure padrão é usado. No

Utilizar a autenticação principal do serviço

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

  1. Registe uma entidade de aplicação no Azure Ative Directory e conceda-lhe acesso à Data Lake Store. Para etapas detalhadas, consulte a autenticação do Serviço ao Serviço. 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 no Data Lake Storage Gen1 do controlo de acessos na Azure Data Lake Storage Gen1.

    • Como fonte: No Data Explorer > Access, conceda pelo menos a permissão de executar para todas as pastas a montante, incluindo a raiz, juntamente com a permissão de Leitura para que os ficheiros copiem. Pode optar por adicionar a Esta pasta e a todas as crianças para recursiva, e adicionar como uma permissão de acesso e uma entrada de permissão por defeito. Não há requisitos sobre o controlo de acesso ao nível da conta (IAM).
    • Como pia: No Data explorer > Access, conceda pelo menos a permissão de executar para todas as pastas a montante, incluindo a raiz, juntamente com a permissão de escrever para a pasta do lavatório. Pode optar por adicionar a Esta pasta e a todas as crianças para recursiva, e adicionar como uma permissão de acesso e uma entrada de permissão por defeito.

As seguintes propriedades são suportadas:

Propriedade Descrição Obrigatório
servicePrincipalId Especifique a identificação do cliente da aplicação. Yes
servicePrincipalKey Especifique a chave da aplicação. 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
inquilino Especifique as informações do inquilino, como o nome de domínio ou o ID do inquilino, segundo o qual a sua aplicação reside. Pode recuperá-lo 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 aplicação Azure Ative Directory 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

Exemplo:

{
    "name": "AzureDataLakeStoreLinkedService",
    "properties": {
        "type": "AzureDataLakeStore",
        "typeProperties": {
            "dataLakeStoreUri": "https://<accountname>.azuredatalakestore.net/webhdfs/v1",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalKey": {
                "type": "SecureString",
                "value": "<service principal key>"
            },
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>",
            "subscriptionId": "<subscription of ADLS>",
            "resourceGroupName": "<resource group of ADLS>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Utilizar 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. Pode utilizar diretamente esta identidade gerida para a autenticação da Data Lake Store, semelhante à utilização do seu próprio chefe de serviço. Permite que esta fábrica designada aceda e copie dados para ou a partir da Data Lake Store.

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

  1. Recupere a informação de identidade gerida pela fábrica de dados copiando o valor do "ID de aplicação de identidade de serviço" gerado juntamente com a sua fábrica.

  2. Conceda o acesso de identidade gerido à Data Lake Store. Veja exemplos sobre como funciona a permissão no Data Lake Storage Gen1 do controlo de acessos na Azure Data Lake Storage Gen1.

    • Como fonte: No Data Explorer > Access, conceda pelo menos a permissão de executar para todas as pastas a montante, incluindo a raiz, juntamente com a permissão de Leitura para que os ficheiros copiem. Pode optar por adicionar a Esta pasta e a todas as crianças para recursiva, e adicionar como uma permissão de acesso e uma entrada de permissão por defeito. Não há requisitos sobre o controlo de acesso ao nível da conta (IAM).
    • Como pia: No Data explorer > Access, conceda pelo menos a permissão de executar para todas as pastas a montante, incluindo a raiz, juntamente com a permissão de escrever para a pasta do lavatório. Pode optar por adicionar a Esta pasta e a todas as crianças para recursiva, e adicionar como uma permissão de acesso e uma entrada de permissão por defeito.

Na Azure Data Factory, não precisa de especificar quaisquer propriedades além das informações gerais da Data Lake Store no serviço ligado.

Exemplo:

{
    "name": "AzureDataLakeStoreLinkedService",
    "properties": {
        "type": "AzureDataLakeStore",
        "typeProperties": {
            "dataLakeStoreUri": "https://<accountname>.azuredatalakestore.net/webhdfs/v1",
            "subscriptionId": "<subscription of ADLS>",
            "resourceGroupName": "<resource group of ADLS>"
        },
        "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 o artigo 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 Azure Data Lake Store Gen1 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 AzureDataLakeStoreLocation. Yes
folderPath O caminho para uma pasta. 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 a pasta DadaPa. 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": "<ADLS Gen1 linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, auto retrieved during authoring > ],
        "typeProperties": {
            "location": {
                "type": "AzureDataLakeStoreLocation",
                "folderPath": "root/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 Pipelines . Esta secção fornece uma lista de propriedades suportadas pela fonte e pia da Azure Data Lake Store.

Azure Data Lake Store como fonte

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 Azure Data Lake Store Gen1 storeSettings em definiçõ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 AzureDataLakeStoreReadSettings. Yes
Localize os ficheiros para copiar:
OPÇÃO 1: caminho estático
Cópia do caminho da pasta/ficheiro especificado no conjunto de dados. Se pretender copiar todos os ficheiros de uma pasta, especificar ainda wildcardFileName como * .
OPÇÃO 2: intervalo de nomes
- listAfter
Recupere as pastas/ficheiros cujo nome está atrás deste valor alfabeticamente (exclusivo). Utiliza o filtro do lado do serviço para a ADLS Gen1, que proporciona um melhor desempenho do que um filtro wildcard.
A fábrica de dados aplica este filtro ao caminho definido no conjunto de dados, e apenas um nível de entidade é suportado. Veja mais exemplos em exemplos de filtro de gama Name.
No
OPÇÃO 2: intervalo de nomes
- lista Antes de
Recupere as pastas/ficheiros cujo nome esteja antes deste valor alfabeticamente (inclusive). Utiliza o filtro do lado do serviço para a ADLS Gen1, que proporciona um melhor desempenho do que um filtro wildcard.
A fábrica de dados aplica este filtro ao caminho definido no conjunto de dados, e apenas um nível de entidade é suportado. Veja mais exemplos em exemplos de filtro de gama Name.
No
OPÇÃO 3: wildcard
- wildcardFolderPath
O caminho da pasta com caracteres wildcard para filtrar 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 3: wildcard
- wildcardFileName
O nome do ficheiro com caracteres wildcard sob a pasta DadaPath/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 4: 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": "CopyFromADLSGen1",
        "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": "AzureDataLakeStoreReadSettings",
                    "recursive": true,
                    "wildcardFolderPath": "myfolder*A",
                    "wildcardFileName": "*.csv"
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Azure Data Lake Store como 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 Azure Data Lake Store Gen1 storeSettings em configurações no lavatório de cópia baseado em formato:

Propriedade Descrição Obrigatório
tipo A propriedade tipo em baixo storeSettings deve ser definida para AzureDataLakeStoreWriteSettings. 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
expiraçãoDateTime Especifica o prazo de validade dos ficheiros escritos. O tempo é aplicado ao tempo UTC no formato de "2020-03-01T08:00:00Z". Por predefinição é NU, o que significa que os ficheiros escritos nunca expiram. 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": "CopyToADLSGen1",
        "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": "AzureDataLakeStoreWriteSettings",
                    "copyBehavior": "PreserveHierarchy"
                }
            }
        }
    }
]

Exemplos de filtro de gama de nomes

Esta secção descreve o comportamento resultante dos filtros da gama de nomes.

Estrutura de origem da amostra Configuração ADF Resultado
raiz
    um
        file.csv
    machado
        file2.csv
    ax.csv
    b
        file3.csv
    bx.csv
    c
        file4.csv
    cx.csv
No conjunto de dados:
- Caminho da pasta: root

Na fonte de atividade de cópia:
- Lista depois: a
- Lista antes: b
Em seguida, os seguintes ficheiros serão copiados:

raiz
    machado
        file2.csv
    ax.csv
    b
        file3.csv

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
raiz
    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:
- Caminho da pasta: root/FolderA

Na fonte de atividade de cópia:
- Caminho da lista de ficheiros: root/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.

Exemplos de comportamento da operação de cópia

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

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
    O conteúdo do File1 + File2 + File3 + File4 + File5 é fundido num único 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 são recolhidos.
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 são recolhidos.
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 nome de ficheiro autogerido. nome autogerado para File1

Subfolder1 com File3, File4 e File5 não são recolhidos.

Preservar ACLs para data lake storage gen2

Dica

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

Se pretender replicar as listas de controlo de acesso (ACLs) juntamente com ficheiros de dados quando atualizar da Data Lake Storage Gen1 para data lake storage gen2, consulte Preserve ACLs da Data Lake Storage Gen1.

Mapeamento de propriedades de fluxo de dados

Quando estiver a transformar dados em fluxos de dados de mapeamento, pode ler e escrever ficheiros da Azure Data Lake Storage Gen1 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 na Azure Data Lake Storage Gen1. 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 do gasoduto ou execução de execução) que utiliza a atividade do Fluxo de Dados executar num oleoduto. As operações de ficheiro não são executadas no modo de depuramento do Fluxo de Dados.

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, pode escrever para um recipiente ou pasta na Azure Data Lake Storage Gen1. 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 AzureDataLakeStoreFile. Yes
folderPath Caminho para a pasta na Data Lake Store. 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 este char de fuga no interior.

Por exemplo: rootfolder/subfolder/. 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 este char de fuga 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 Texto, 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 específico, 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": "ADLSDataset",
    "properties": {
        "type": "AzureDataLakeStoreFile",
        "linkedServiceName":{
            "referenceName": "<ADLS linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "folderPath": "datalake/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 type propriedade da fonte de atividade de cópia deve ser definida para AzureDataLakeStoreSource. Yes
recursivo Indica se os dados são lidos novamente a partir das sub-dobradeiras ou apenas a partir da pasta especificada. Quando recursive é definido como verdadeiro e a pia é uma loja baseada em ficheiros, uma pasta ou sub-dobragem vazia não é copiada ou criada 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": "CopyFromADLSGen1",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<ADLS Gen1 input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "AzureDataLakeStoreSource",
                "recursive": true
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Modelo de pia de atividade de cópia legacy

Propriedade Descrição Obrigatório
tipo A type propriedade do lavatório de atividade de cópia deve ser definida para AzureDataLakeStoreSink. 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, o nome do 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": "CopyToADLSGen1",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<ADLS Gen1 output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "AzureDataLakeStoreSink",
                "copyBehavior": "PreserveHierarchy"
            }
        }
    }
]

Passos seguintes

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