Criar atividades e pipelines de data factory
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"
}
}