Создание действий и конвейеров Фабрики данных

Завершено

Действия в Фабрике данных Azure определяют операции, которые будут выполняться в отношении данных. Их можно разбить на три категории.

  • Действия перемещения данных
  • Действия преобразования данных
  • Действия управления

Действия перемещения данных

Действия перемещения обеспечивают перемещение данные из одного хранилища в другое. Действия перемещения данных можно выполнять с использованием действия копирования или с помощью JSON. В качестве источника или приемника могут выступать самые разные хранилища данных. Этот список постоянно пополняется. Самые актуальные сведения вы можете найти по этой ссылке.

Действия преобразования данных

Действия преобразования данных могут выполняться в собственном средстве разработки Фабрики данных Azure с использованием потока данных сопоставления. Кроме того, вы можете вызывать вычислительный ресурс для изменения или улучшения данных посредством преобразования, а также выполнять анализ данных. К ним относятся такие вычислительные технологии, как Azure Databricks, пакетная служба Azure, база данных SQL и Azure Synapse Analytics, службы машинного обучения, виртуальные машины Azure и HDInsight. Вы можете использовать любые существующие пакеты SQL Server Integration Services (SSIS) в каталоге для выполнения в Azure.

Этот список также постоянно пополняется. Самые актуальные сведения вы можете найти на этой странице.

Действия управления

При графической разработке решений ADF вы можете использовать поток управления в проекте для оркестрации таких действий конвейера, как включение действий в последовательность, ветвление, определение параметров на уровне конвейера и передача аргументов при вызове конвейера по запросу или триггеру. На сегодняшний день поддерживаются следующие возможности.

Действие управления Description
Действие выполнения конвейера Действие выполнения конвейера позволяет конвейеру фабрики данных вызвать другой конвейер.
Действие ForEach Действие ForEach определяет повторяющийся поток управления в конвейере. Это действие используется для выполнения итерации коллекции и выполняет указанные в цикле действия. Реализация цикла этого действия аналогична структуре цикла Foreach на языках программирования.
Веб-действие Веб-действие можно использовать для вызова из конвейера фабрики данных пользовательской конечной точки REST. Вы можете передать наборы данных и связанные службы, которые будет использовать это действие и к которым оно будет обращаться.
Действие поиска Действие поиска можно использовать для считывания или поиска записи, имени таблицы и значения из внешних источников. На эти выходные данные можно затем ссылаться в последующих действиях.
Действие получения метаданных Действие GetMetadata можно использовать для получения метаданных для любых данных в фабрике данных Azure.
Действие Until Реализует цикл Do Until, который аналогичен циклической структуре Do-Until в языках программирования. Оно выполняет набор действий в цикле, пока условие, связанное с действием, не получит значение true. Можно указать значение времени ожидания для действия until в фабрике данных.
Действие условия If Это действие можно использовать для создания ветви на основе условия, результатом расчета которого является значение True или False. Действие условия If предоставляет те же функциональные возможности, что и инструкция if в языках программирования. Оно определяет набор действий, если условие принимает значение true, и другой набор действий, если условие принимает значение false.
Действие Wait Если в конвейере используется действие Wait, он приостанавливает обработку на указанный период, прежде чем возобновить выполнение последующих действий.

Самую актуальную информацию можно получить по этой ссылке.

Действия и конвейеры

Определение действий

При использовании нотации JSON в разделе действий могут определяться одно действие или несколько. Существует два основных типа действий: действия выполнения и действия управления. Действия выполнения (также называются действиями вычисления) включают в себя действия перемещения и преобразования данных. Они имеют следующую структуру верхнего уровня:

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

В следующей таблице описаны свойства приведенного выше объекта JSON.

Свойство Описание: Обязательное поле
name Имя действия . Да
description Текст, описывающий, для чего используется действие. No
type Определяет тип действия. Да
linkedServiceName Имя связанной службы, используемой действием. Да — для действия HDInsight, действия пакетной оценки показателей службы "Машинное обучение Azure" и действия хранимой процедуры
typeProperties Свойства в разделе typeProperties зависят от каждого типа действия. No
policy Политики, которые влияют на поведение во время выполнения действия. Это свойство включает время ожидания и поведение повтора. No
Свойство dependsOn Это свойство используется для определения зависимостей между последующими и предыдущими действиями. No

Определение действий управления

Действие управления в Фабрике данных определяется в формате JSON, как показано ниже.

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

В следующей таблице описаны свойства приведенного выше объекта JSON.

Свойство Описание: Обязательное поле
name Имя действия . Да
description Текст, описывающий, для чего используется действие. Да
type Определяет тип действия. Да
typeProperties Свойства в разделе typeProperties зависят от каждого типа действия. No
Свойство dependsOn Это свойство используется для определения зависимостей между последующими и предыдущими действиями. No

Определение конвейеров

Вот, как конвейер определяется в формате JSON:

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

В следующей таблице описаны свойства приведенного выше объекта JSON.

Свойство Описание: Обязательное поле
name Имя конвейера. Да
description Текст, описывающий, для чего используется конвейер. No
activities В разделе activities можно определить одно или несколько действий. Да
parameters В разделе Параметры может быть задан один или несколько параметров, определенных в конвейере, которые делают конвейер гибким для повторного использования. No

Пример

Следующий код JSON определяет конвейер с именем "MyFirstPipeline", содержащий один тип действия HDInsightHive, который будет вызывать запрос из скрипта "partitionweblogs.hql", хранящегося в связанной службе "StorageLinkedService", с входными данными "AzureBlobInput" и выходными данными "AzureBlobOutput". Он выполняется для вычислительных ресурсов, определенных в связанной службе с именем HDInsightOnDemandLinkedService.

Конвейер планируется выполнять ежемесячно. В случае сбоя повторные попытки выполнения предпринимаются три раза.

{
    "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"
    }
}