Criar atividades e pipelines de data factory

Concluído

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

  • Atividades de movimentação de dados
  • Atividades de transformação de dados
  • Atividades de controle

Atividades de movimentação de dados

As atividades de movimentação de dados simplesmente movem dados de um armazenamento de dados para outro. Você pode usar a atividade Copy para executar atividades de movimentação de dados ou usando JSON. Há uma ampla variedade de armazenamentos de dados com suporte como fonte e como coletor. Essa lista está sempre aumentando e você pode encontrar as informações mais recentes aqui.

Atividades de transformação de dados

As atividades de transformação de dados podem ser executadas nativamente dentro da 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 o Azure Databricks, Lote do Azure, Banco de Dados SQL e Azure Synapse Analytics, Serviços de Machine Learning, máquinas virtuais do Azure e HDInsight. Você pode fazer uso de qualquer pacote existente do SQL Server Integration Services (SSIS) armazenado em um catálogo para ser executado no Azure

Como essa lista está sempre em evolução, você pode obter as informações mais recentes aqui.

Atividades de controle

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

Atividade de controle Descrição
Atividade de execução de pipeline A atividade de execução de pipeline permite que um pipeline do Data Factory invoque outro pipeline.
ForEachActivity A atividade ForEach define um fluxo de controle repetitivo no seu pipeline. Essa atividade é usada para iterar em uma coleção e executa atividades especificadas em um loop. A implementação dessa atividade em loop é semelhante à estrutura em loop Foreach nas linguagens de programação.
WebActivity A atividade da Web pode ser usada para chamar um ponto de extremidade REST personalizado de um pipeline do Data Factory. Você pode passar conjuntos de dados e serviços vinculados a serem consumidos e acessados pela atividade.
Atividade de pesquisa A atividade de pesquisa pode ser usada para ler ou procurar um registro/nome de tabela/valor de qualquer fonte externa. Essa saída pode referenciada pelas atividades com êxito.
Atividade de obtenção de metadados A atividade GetMetadata pode ser usada para recuperar metadados de todos os dados no Azure Data Factory.
Atividade Until Implementa o loop Do-Until, que é semelhante à estrutura de looping Do-Until em linguagens de programação. Ela executa um conjunto de atividades em um loop até que a condição associada à atividade seja avaliada como verdadeira. Especifique um valor de tempo limite para a atividade Until no Data Factory.
Atividade Condição Se A Condição If pode ser usada para ramificar com base em condições que são avaliadas como true ou false. A atividade If Condition fornece a mesma funcionalidade que uma instrução if fornece em linguagens de programação. Ela avalia um conjunto de atividades quando a condição é avaliada como true e outro conjunto de atividades quando a condição é avaliada como false.
Atividade Wait Quando você usa uma atividade de espera em um pipeline, o pipeline aguarda o período de tempo especificado antes de continuar com a execução de atividades subsequentes.

Você pode obter as informações mais recentes aqui.

Atividades e pipelines

Definindo atividades

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

{
    "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 Obrigatório
name Nome da atividade. Sim
descrição Texto que descreve para que a atividade é usada. Não
type Define o tipo da atividade. Sim
linkedServiceName Nome do serviço vinculado usado pela atividade. Sim para HDInsight, Atividade de Pontuação de Lote do Machine Learning e Atividade de Procedimento Armazenado
typeProperties As propriedades na seção typeProperties dependem de cada tipo de atividade. Não
policy Políticas que afetam o comportamento de tempo de execução da atividade. Essa propriedade inclui o comportamento de tempo limite e de repetição. Não
dependsOn Esta propriedade é usada para definir as dependências de atividade e o modo como as atividades subsequentes dependem de atividades anteriores. Não

Definindo atividades de controle

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 Obrigatório
name Nome da atividade. Sim
descrição Texto que descreve para que a atividade é usada. Sim
type Define o tipo da atividade. Sim
typeProperties As propriedades na seção typeProperties dependem de cada tipo de atividade. Não
dependsOn Esta propriedade é usada para definir as dependências de atividade e o modo como as atividades subsequentes dependem de atividades anteriores. Não

Definindo pipelines

Veja como um pipeline é definido no formato JSON:

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

A tabela a seguir descreve as propriedades no JSON acima:

Propriedade Descrição Obrigatório
name Nome do pipeline. Sim
descrição Texto que descreve qual a utilidade do pipeline. Não
atividades A seção Atividades pode ter uma ou mais atividades definidas dentro dela. Sim
parameters A seção parâmetros pode ter um ou mais parâmetros definidos no pipeline, tornando seu pipeline 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 do nome de script "partitionweblogs.hql" que é armazenado no serviço vinculado chamado "StorageLinkedService", com uma entrada chamada "AzureBlobInput" e uma saída chamada "AzureBlobOutput". Ele executa isso no recurso de computação definido no serviço vinculado denominado “HDInsightOnDemandLinkedService”

O pipeline é agendado para ser executado mensalmente e tentará executar três vezes caso ele 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"
    }
}