Obter atividade de metadados no Azure Data Factory ou no Azure Synapse Analytics

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Dica

Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma avaliação gratuita!

Você pode usar a atividade obtenção de metadados para recuperar os metadados de quaisquer dados no pipeline do Azure Data Factory ou do Synapse. Você pode usar a saída da atividade de obtenção de metadados em expressões condicionais para executar a validação ou consumir os metadados nas atividades subsequentes.

Criar uma atividade de obtenção de metadados com a interface do usuário

Para usar uma atividade de obtenção de metadados em um pipeline, conclua as seguintes etapas:

  1. Procure Get Metadata no painel Atividades do pipeline e arraste uma atividade de obtenção de metadados para a tela do pipeline.

  2. Selecione a nova atividade Obter Metadados na tela, se ainda não estiver selecionada, e sua guia Configurações, para editar seus detalhes.

  3. Escolha um conjunto de um ou crie outro com o botão Novo. Em seguida, você pode especificar opções de filtro e adicionar colunas dos metadados disponíveis para o conjunto de dados.

    Shows the UI for a Get Metadata activity.

  4. Use a saída da atividade como uma entrada para outra atividade, como uma atividade Switch neste exemplo. Você pode fazer referência à saída da atividade de metadados em qualquer lugar que o conteúdo dinâmico tenha suporte na outra atividade.

    Shows the pipeline with a Switch activity added to handle the output of the Get Metadata activity.

  5. No editor de conteúdo dinâmico, selecione a saída Get Metadata para fazer referência a ela na outra atividade.

    Shows the dynamic content editor with the output of the Get Metadata activity as the dynamic content.

Funcionalidades com suporte

A atividade de obtenção de metadados usa um conjunto de dados como uma entrada e retorna informações de metadados como saída. Atualmente, os seguintes conectores e metadados recuperáveis correspondentes são suportados. O tamanho máximo dos metadados retornados é de 4 MB.

Conectores com suporte

Armazenamento de arquivos

Conector/metadados itemName
(arquivo/pasta)
itemType
(arquivo/pasta)
tamanho
(arquivo)
criado
(arquivo/pasta)
lastModified1
(arquivo/pasta)
childItems
(pasta)
contentMD5
(arquivo)
structure2
(arquivo)
columnCount2
(arquivo)
exists3
(arquivo/pasta)
Amazon S3 √/√ √/√ x/x √/√ x √/√
Armazenamento compatível com Amazon S3 √/√ √/√ x/x √/√ x √/√
Google Cloud Storage √/√ √/√ x/x √/√ x √/√
Oracle Cloud Storage √/√ √/√ x/x √/√ x √/√
Armazenamento de Blobs do Azure √/√ √/√ x/x √/√ √/√
Azure Data Lake Storage Gen1 √/√ √/√ x/x √/√ x √/√
Azure Data Lake Storage Gen2 √/√ √/√ x/x √/√ √/√
Arquivos do Azure √/√ √/√ √/√ √/√ x √/√
Lakehouse do Microsoft Fabric √/√ √/√ x/x √/√ √/√
Sistema de Arquivos √/√ √/√ √/√ √/√ x √/√
SFTP √/√ √/√ x/x √/√ x √/√
FTP √/√ √/√ x/x x/x x √/√

1 Metadados lastModified:

  • Para o Amazon S3, o armazenamento compatível Amazon S3, o Google Cloud Storage e o Oracle Cloud Storage, lastModified aplica-se ao bucket e à chave, mas não à pasta virtual, e exists aplica-se ao bucket e à chave, mas não ao prefixo ou à pasta virtual.
  • Para o armazenamento de blobs do Azure, lastModified aplica-se ao contêiner e ao blob, mas não à pasta virtual.

O metadados 2structure e columnCount não têm suporte ao obter metadados de arquivos binários, JSON ou XML.

Os metadados 3exists: para Amazon S3, Armazenamento compatível com Amazon S3, Google Cloud Storage e Oracle Cloud Storage, exists aplica-se ao bucket e à chave, mas não ao prefixo ou à pasta virtual.

Observe o seguinte:

  • Ao usar a atividade obtenção de metadados em uma pasta, verifique se você tem a permissão LISTAR/EXECUTAR na pasta especificada.

  • O filtro de caracteres curingas em pastas/arquivos não tem suporte na atividade de obtenção de metadados.

  • Conjunto de filtros modifiedDatetimeStart e modifiedDatetimeEnd no conector:

    • Essas duas propriedades são usadas para filtrar os itens filho ao obter metadados de uma pasta. Ele não se aplica ao obter metadados de um arquivo.
    • Quando esse filtro é usado, o childItems na saída inclui apenas os arquivos que são modificados dentro do intervalo especificado, mas não as pastas.
    • Para aplicar esse filtro, a atividade Obtenção de Metadados enumerará todos os arquivos na pasta especificada e verificará o horário modificado. Evite apontar para uma pasta com um grande número de arquivos, mesmo se a contagem de arquivos qualificados esperada for pequena.

Banco de dados relacional

Conector/metadados estrutura ColumnCount exists
Amazon RDS para SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada do SQL do Azure
Azure Synapse Analytics
SQL Server

Opções de metadados

Você pode especificar os seguintes tipos de metadados na lista de campos de atividade de obtenção de metadados para recuperar as informações correspondentes:

Tipo de Metadados Description
itemName Nome do arquivo ou pasta.
itemType Tipo do arquivo ou pasta. O valor retornado é File ou Folder.
tamanho Tamanho do arquivo, em bytes. Aplicável somente nos arquivos.
criado O datetime da última modificação do arquivo ou da pasta.
lastModified O datetime da última modificação do arquivo ou da pasta.
childItems Lista de subpastas e arquivos na pasta determinada. Aplicável somente nas pastas. O valor de saída é uma lista do nome e tipo de cada item filho.
contentMD5 MD5 do arquivo. Aplicável somente nos arquivos.
estrutura Estrutura de dados do arquivo ou tabela de banco de dados relacional. O valor retornado é uma lista de nomes de coluna e tipos de coluna.
ColumnCount Número de colunas no arquivo ou tabela relacional.
exists Se existe um arquivo, uma pasta ou uma tabela. Se exists for especificado na lista de campos de Obtenção de Metadados, a atividade não falhará mesmo que o arquivo, a pasta ou a tabela não existam. Em vez disso, exists: false é retornado na saída.

Dica

Quando desejar validar se existe um arquivo, pasta ou tabela existem, especifique exists na lista de campos de atividade de Obtenção de Metadados. Em seguida, você pode verificar o resultado exists: true/false na saída da atividade. Se exists não for especificado na lista de campos, a atividade Obtenção de Metadados falhará se o objeto não for encontrado.

Observação

Quando receber metadados dos armazenamentos de arquivos e configurar modifiedDatetimeStart ou modifiedDatetimeEnd, o childItems na saída inclui apenas arquivos no caminho especificado que têm a hora da última modificação dentro do intervalo especificado. Itens em subpastas não estão incluídos.

Observação

Para a lista campos Estrutura fornecer a estrutura de dados real para texto delimitado e conjuntos de dados no formato do Excel, você deve habilitar a propriedade First Row as Header, que tem suporte apenas para essas fontes de dados.

Syntax

Atividade de obtenção de metadados

{
    "name":"MyActivity",
    "type":"GetMetadata",
    "dependsOn":[

    ],
    "policy":{
        "timeout":"7.00:00:00",
        "retry":0,
        "retryIntervalInSeconds":30,
        "secureOutput":false,
        "secureInput":false
    },
    "userProperties":[

    ],
    "typeProperties":{
        "dataset":{
            "referenceName":"MyDataset",
            "type":"DatasetReference"
        },
        "fieldList":[
            "size",
            "lastModified",
            "structure"
        ],
        "storeSettings":{
            "type":"AzureBlobStorageReadSettings"
        },
        "formatSettings":{
            "type":"JsonReadSettings"
        }
    }
}

Conjunto de dados

{
    "name":"MyDataset",
    "properties":{
        "linkedServiceName":{
            "referenceName":"AzureStorageLinkedService",
            "type":"LinkedServiceReference"
        },
        "annotations":[

        ],
        "type":"Json",
        "typeProperties":{
            "location":{
                "type":"AzureBlobStorageLocation",
                "fileName":"file.json",
                "folderPath":"folder",
                "container":"container"
            }
        }
    }
}

Propriedades de tipo

Atualmente, a atividade de Obtenção de Metadados pode devolver os seguintes tipos de informações de metadados:

Propriedade Descrição Obrigatório
fieldList Os tipos de informações de metadados necessárias. Para saber mais detalhes sobre metadados com suporte, consulte a seção Opções de metadados deste artigo. Sim
dataset O conjunto de dados de referência cujos metadados devem ser recuperados pela atividade de obtenção de metadados. Consulte a seção de Recursos para obter informações sobre os conectores com suporte. Consulte os tópicos específicos do conector para obter detalhes sobre a sintaxe do conjunto de dados. Sim
formatSettings Aplicar ao usar o tipo de formato do conjuntos de dados. Não
storeSettings Aplicar ao usar o tipo de formato do conjuntos de dados. No

Saída de exemplo

Os resultados da obtenção de metadados são mostrados na saída da atividade. A seguir temos dois exemplos que mostram opções extensivas de metadados. Para usar os resultados em uma atividade subsequente, use este padrão: @{activity('MyGetMetadataActivity').output.itemName}.

Obter metadados de um arquivo

{
  "exists": true,
  "itemName": "test.csv",
  "itemType": "File",
  "size": 104857600,
  "lastModified": "2017-02-23T06:17:09Z",
  "created": "2017-02-23T06:17:09Z",
  "contentMD5": "cMauY+Kz5zDm3eWa9VpoyQ==",
  "structure": [
    {
        "name": "id",
        "type": "Int64"
    },
    {
        "name": "name",
        "type": "String"
    }
  ],
  "columnCount": 2
}

Obter metadados de uma pasta

{
  "exists": true,
  "itemName": "testFolder",
  "itemType": "Folder",
  "lastModified": "2017-02-23T06:17:09Z",
  "created": "2017-02-23T06:17:09Z",
  "childItems": [
    {
      "name": "test.avro",
      "type": "File"
    },
    {
      "name": "folder hello",
      "type": "Folder"
    }
  ]
}

Saiba como sobre outras atividades de fluxo de controle compatíveis: