Criar pipelines e atividades de data factory

Concluído

As atividades no Azure Data Factory definem as ações que serão executadas nos dados e há três categorias, incluindo:

  • Atividades de movimento de dados
  • Atividades de transformação de dados
  • Atividades de controlo

Atividades de movimento de dados

As atividades de movimentação de dados simplesmente movem dados de um armazenamento de dados para outro. Você pode usar a Atividade de cópia para executar atividades de movimentação de dados ou usando JSON. Há uma ampla gama de armazenamentos de dados que são suportados como fonte e como coletor. Esta lista é cada vez maior, e você pode encontrar as últimas informações aqui.

Atividades de transformação de dados

As atividades de transformação de dados podem ser executadas nativamente na ferramenta de criação do Azure Data Factory usando o Fluxo de Dados de Mapeamento. Como alternativa, você pode chamar um recurso de computação para alterar ou aprimorar dados por meio de transformação ou executar a análise dos dados. Isso inclui tecnologias de computação como Azure Databricks, Azure Batch, Banco de Dados SQL e Azure Synapse Analytics, Serviços de Machine Learning, Máquinas Virtuais do Azure e HDInsight. Você pode usar qualquer pacote existente do SQL Server Integration Services (SSIS) armazenado em um catálogo para executar no Azure

Como esta lista está sempre a evoluir, pode obter as informações mais recentes aqui.

Atividades de controlo

Ao criar graficamente soluções ADF, você pode usar o fluxo de controle dentro do projeto para orquestrar atividades de pipeline que incluem atividades de encadeamento em uma sequência, ramificação, definição de parâmetros no nível de pipeline e passagem de argumentos ao invocar o pipeline sob demanda ou a partir de um gatilho. As capacidades atuais incluem:

Atividade de Controlo Description
Atividade Executar Pipeline A atividade Executar Pipeline permite que um pipeline do Data Factory invoque outro pipeline.
Atividade ForEach A atividade ForEach define um fluxo de controlo de repetição no seu pipeline. Esta atividade é utilizada para iterar uma coleção e executa atividades especificadas em ciclo. A implementação de ciclo desta atividade é semelhante à estrutura de ciclo Foreach nas linguagens de programação.
Atividade Web A atividade Web pode ser utilizada para chamar um ponto final REST personalizado a partir de um pipeline do Data Factory. Pode transmitir conjuntos de dados e serviços ligados aos quais a atividade tem acesso e que pode consumir.
Atividade de Pesquisa A atividade de Pesquisa pode ser utilizada para ler ou procurar registos/nomes de tabelas/valores em qualquer origem externa. Este resultado pode ser ainda referenciado por atividades subsequentes.
Atividade Obter Metadados A atividade Obter Metadados pode ser utilizada para obter os metadados de quaisquer dados no Azure Data Factory.
Atividade Until Implementa o ciclo Do-Until que é semelhante à estrutura de ciclo Do-Until nas linguagens de programação. Executa um conjunto de atividades num ciclo até que a condição associada às atividades seja avaliada como verdadeira. Pode especificar um valor de tempo limite para a atividade Until no Data Factory.
Atividade Se Condição Se Condição pode ser utilizada com base em ramos numa condição que é avaliada como verdadeira ou falsa. A atividade Se Condição disponibiliza a mesma funcionalidade que as instruções “se” fornecem nas linguagens de programação. Ele avalia um conjunto de atividades quando a condição é avaliada como verdadeira e outro conjunto de atividades quando a condição é avaliada como falsa.
Atividade Aguardar Quando utiliza uma atividade Aguardar num pipeline, este aguarda o período de tempo especificado antes de continuar a execução das atividades subsequentes.

Pode obter as informações mais recentes aqui.

Atividades e gasodutos

Definição de atividades

Ao usar a notação JSON, a seção de atividades pode ter uma ou mais atividades definidas dentro dela. Existem dois tipos principais de atividades: atividades de Execução e de Controlo. As atividades de execução (também conhecidas como computação) incluem atividades de movimentação e transformação de dados. Têm a estrutura de nível superior abaixo:

{
    "name": "Execution Activity Name",
    "description": "description",
    "type": "<ActivityType>",
    "typeProperties":
    {
    },
    "linkedServiceName": "MyLinkedService",
    "policy":
    {
    },
    "dependsOn":
    {
    }
}

A tabela a seguir descreve as propriedades no JSON acima:

Propriedade Descrição Necessário
nome Nome da atividade. Sim
descrição Texto descrevendo para que a atividade ou é usado. Não
tipo Define o tipo de atividade. Sim
linkedServiceName Nome do serviço ligado utilizado pela atividade. Sim para HDInsight, atividade de pontuação em lote de aprendizado de máquina e atividade de procedimento armazenado
typeProperties As propriedades na secção typeProperties dependem de cada tipo de atividade. Não
política Políticas que afetam o comportamento de runtime da atividade. Esta propriedade inclui o comportamento de tempo limite e de repetição. Não
dependsOn Esta propriedade é utilizada para definir as dependências de atividade e de que forma as atividades subsequentes dependem de atividades anteriores. Não

Definição de atividades de controlo

Uma atividade de controle no Data Factory é definida no formato JSON da seguinte maneira:

{
    "name": "Control Activity Name",
    "description": "description",
    "type": "<ActivityType>",
    "typeProperties":
    {
    },
    "dependsOn":
    {
    }
}

A tabela a seguir descreve as propriedades no JSON acima:

Propriedade Descrição Necessário
nome Nome da atividade. Sim
descrição Texto descrevendo para que a atividade ou é usado. Sim
tipo Define o tipo de atividade. Sim
typeProperties As propriedades na secção typeProperties dependem de cada tipo de atividade. Não
dependsOn Esta propriedade é utilizada para definir as dependências de atividade e de que forma as atividades subsequentes dependem de atividades anteriores. Não

Definição de pipelines

Eis como os pipelines são definidos no formato JSON:

{
    "name": "PipelineName",
    "properties":
    {
        "description": "pipeline description",
        "activities":
        [
        ],
        "parameters": {
         }
    }
}

A tabela a seguir descreve as propriedades no JSON acima:

Propriedade Descrição Necessário
nome Nome do pipeline. Sim
descrição Texto descrevendo para que o pipeline é usado. Não
atividades A secção atividades pode ter uma ou mais atividades definidas na mesma. Sim
parâmetros A secção parâmetros pode ter um ou mais parâmetros definidos no pipeline, tornando-o flexível para reutilização. Não

Exemplo

O JSON a seguir define o pipeline chamado "MyFirstPipeline" que contém um tipo de atividade do HDInsightHive que chamará uma consulta de um nome de script "partitionweblogs.hql" armazenado no serviço vinculado chamado "StorageLinkedService", com uma entrada chamada "AzureBlobInput" e uma saída chamada "AzureBlobOutput". Ele executa isso em relação ao recurso de computação definido no serviço vinculado chamado "HDInsightOnDemandLinkedService"

O pipeline está programado para ser executado mensalmente e tentará executar 3 vezes caso falhe.

{
    "name": "MyFirstPipeline",
    "properties": {
        "description": "My first Azure Data Factory pipeline",
        "activities": [
            {
                "type": "HDInsightHive",
                "typeProperties": {
                    "scriptPath": "adfgetstarted/script/partitionweblogs.hql",
                    "scriptLinkedService": "StorageLinkedService",
                    "defines": {
                        "inputtable": "wasb://adfgetstarted@ctostorageaccount.blob.core.windows.net/inputdata",
                        "partitionedtable": "wasb://adfgetstarted@ctostorageaccount.blob.core.windows.net/partitioneddata"
                    }
                },
                "inputs": [
                    {
                        "name": "AzureBlobInput"
                    }
                ],
                "outputs": [
                    {
                        "name": "AzureBlobOutput"
                    }
                ],
                "policy": {
                    "concurrency": 1,
                    "retry": 3
                },
                "scheduler": {
                    "frequency": "Month",
                    "interval": 1
              },
                "name": "RunSampleHiveActivity",
                "linkedServiceName": "HDInsightOnDemandLinkedService"
            }
        ],
        "start": "2017-04-01T00:00:00Z",
        "end": "2017-04-02T00:00:00Z",
        "isPaused": false,
        "hubName": "ctogetstarteddf_hub",
        "pipelineMode": "Scheduled"
    }
}