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