Erstellen von Data-Factory-Aktivitäten und -Pipelines

Abgeschlossen

Aktivitäten innerhalb von Azure Data Factory definieren die Aktionen, die mit den Daten durchgeführt werden, wovon es drei Kategorien gibt, darunter:

  • Datenverschiebungsaktivitäten
  • Datentransformationsaktivitäten
  • Steuerungsaktivitäten

Datenverschiebungsaktivitäten

Datenverschiebungsaktivitäten verschieben einfach Daten von einem Datenspeicher in einen anderen. Sie können die Copy-Aktivität verwenden, um Datenverschiebungsaktivitäten durchzuführen, oder Sie können JSON verwenden. Es gibt eine breite Palette von Datenspeichern, die als Quelle sowie als Senke unterstützt werden. Diese Liste wird ständig erweitert, und Sie finden die neuesten Informationen hier.

Datentransformationsaktivitäten

Datentransformationsaktivitäten können nativ innerhalb des Erstellungstools von Azure Data Factory unter Verwendung des Zuordnungsdatenflusses durchgeführt werden. Alternativ können Sie eine Computeressource aufrufen, um Daten durch Transformation zu ändern oder zu erweitern, oder um eine Analyse der Daten durchzuführen. Dazu gehören Computetechnologien wie Azure Databricks, Azure Batch, SQL-Datenbank und Azure Synapse Analytics, Machine Learning Services, Azure Virtual Machines und HDInsight. Sie können alle vorhandenen SQL Server Integration Services-Pakete (SSIS), die in einem Katalog gespeichert sind, zur Ausführung in Azure verwenden

Da sich diese Liste ständig ändert, finden Sie die neuesten Informationen hier.

Steuerungsaktivitäten

Beim grafischen Erstellen von ADF-Lösungen können Sie die Ablaufsteuerung innerhalb des Entwurfs verwenden, um Pipelineaktivitäten zu orchestrieren. Diese umfassen die Verkettung von Aktivitäten in einer Sequenz, Verzweigungen, das Definieren von Parametern auf Pipelineebene sowie die Übergabe von Argumenten beim Aufrufen der Pipeline bei Bedarf oder durch einen Trigger. Die aktuellen Funktionen umfassen:

Steuerungsaktivität BESCHREIBUNG
Aktivität „Pipeline ausführen“ Mit der Aktivität „Pipeline ausführen“ kann eine Data Factory-Pipeline eine andere Pipeline aufrufen.
Aktivität „ForEach“ Mit der ForEach-Aktivität wird eine wiederholte Ablaufsteuerung in Ihrer Pipeline definiert. Diese Aktivität wird verwendet, um eine Sammlung zu durchlaufen. Sie führt die angegebenen Aktivitäten in einer Schleife aus. Die Schleifenimplementierung dieser Aktivität ähnelt der Foreach-Schleifenstruktur in Programmiersprachen.
Aktivität „Web“ Die Webaktivität kann verwendet werden, um einen benutzerdefinierten REST-Endpunkt aus einer Data Factory-Pipeline aufzurufen. Sie können Datasets und verknüpfte Dienste zur Verwendung und für den Zugriff durch die Aktivität übergeben.
Lookup-Aktivität Mit der Lookup-Aktivität können Sie einen Datensatz/Tabellennamen/Wert in einer externen Quelle lesen oder suchen. Auf die Ausgabe kann durch nachfolgende Aktivitäten verwiesen werden.
Aktivität „Metadaten abrufen“ Die Aktivität „Metadaten abrufen“ kann zum Abrufen von Metadaten für alle Daten in Azure Data Factory verwendet werden.
Aktivität „Bis“ Es wird eine „Wiederholen bis“-Schleife implementiert, die der Struktur einer Do-Until-Schleife in Programmiersprachen ähnelt. Sie führt eine Reihe von Aktivitäten in einer Schleife aus, bis die der Aktivität zugeordnete Bedingung als „true“ ausgewertet wird. In Data Factory können Sie einen Timeoutwert für die Until-Aktivität angeben.
Aktivität „Falls-Bedingung“ „If Condition“ kann zum Einrichten einer Verzweigung für Bedingungen verwendet werden, die als TRUE oder FALSE ausgewertet werden. Die Aktivität „If Condition“ bietet die gleiche Funktionalität wie eine If-Anweisung in Programmiersprachen. Sie wertet eine Aktivitätengruppe aus, wenn die Bedingung als „true“ ausgewertet wird, und eine weitere Aktivitätengruppe, wenn die Bedingung als „false“ ausgewertet wird.
Aktivität „Warten“ Wenn Sie eine Warteaktivität in einer Pipeline verwenden, wartet die Pipeline den angegebenen Zeitraum, bevor Sie die Ausführung nachfolgender Aktivitäten fortsetzt.

Die neuesten Informationen finden Sie hier.

Aktivitäten und Pipelines

Definieren von Aktivitäten

Wenn Sie JSON-Notation verwenden, können im Abschnitt „Aktivitäten“ eine oder mehrere Aktivitäten definiert sein. Es gibt zwei Haupttypen von Aktivitäten: Ausführungs- und Steuerungsaktivitäten. Ausführungsaktivitäten (auch als „Compute“ bezeichnet) beinhalten Datenverschiebungsaktivitäten und Datentransformationsaktivitäten. Sie besitzen auf oberster Ebene die folgende Struktur:

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

In der folgenden Tabelle werden die Eigenschaften im obigen JSON-Code beschrieben:

Eigenschaft Beschreibung Erforderlich
name Der Name der Aktivität. Ja
description Text, der beschreibt, wofür die Aktivität verwendet wird. Nein
type Definiert den Typ der Aktivität. Ja
linkedServiceName Name des verknüpften Diensts, der von der Aktivität verwendet wird. „Ja“ für HDInsight, Azure Machine Learning-Aktivität für die Batchbewertung und Aktivität vom Typ „Gespeicherte Prozedur“
typeProperties Eigenschaften im Abschnitt „typeProperties“ sind abhängig vom jeweiligen Typ der Aktivität. Nein
policy Richtlinien, die das Laufzeitverhalten der Aktivität beeinflussen. Diese Eigenschaft enthält Zeitlimit- und Wiederholungsverhalten. Nein
dependsOn Diese Eigenschaft wird zur Definition von Aktivitätsabhängigkeiten und von Abhängigkeiten zwischen nachfolgenden und vorherigen Aktivitäten verwendet. Nein

Definieren von Steuerungsaktivitäten

Eine Steuerungsaktivität in Data Factory wird wie folgt im JSON-Format definiert:

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

In der folgenden Tabelle werden die Eigenschaften im obigen JSON-Code beschrieben:

Eigenschaft Beschreibung Erforderlich
name Der Name der Aktivität. Ja
description Text, der beschreibt, wofür die Aktivität verwendet wird. Ja
type Definiert den Typ der Aktivität. Ja
typeProperties Eigenschaften im Abschnitt „typeProperties“ sind abhängig vom jeweiligen Typ der Aktivität. Nein
dependsOn Diese Eigenschaft wird zur Definition von Aktivitätsabhängigkeiten und von Abhängigkeiten zwischen nachfolgenden und vorherigen Aktivitäten verwendet. Nein

Definieren von Pipelines

Eine Pipeline wird wie folgt im JSON-Format definiert:

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

In der folgenden Tabelle werden die Eigenschaften im obigen JSON-Code beschrieben:

Eigenschaft Beschreibung Erforderlich
name Name der Pipeline. Ja
description Text, der beschreibt, wofür die Pipeline verwendet wird. Nein
activities Im Abschnitt activities kann mindestens eine Aktivität definiert werden. Ja
parameters Im Abschnitt Parameter kann mindestens ein Parameter in der Pipeline definiert werden. Dadurch wird die Pipeline flexibel wiederverwendbar. Nein

Beispiel

Der folgende JSON-Code definiert eine Pipeline namens „MyFirstPipeline“, die den Aktivitätstyp „HDInsightHive“ enthält, der eine Abfrage aus einem Skript namens „partitionweblogs.hql“ aufruft. Das Skript ist im verknüpften Dienst namens „StorageLinkedService“ gespeichert. Die Eingabe lautet „AzureBlobInput“ und die Ausgabe „AzureBlobOutput“. Er führt dies mit der im verknüpften Dienst mit dem Namen „HDInsightOnDemandLinkedService“ definierten Computeressource aus.

Die Pipeline soll monatlich ausgeführt werden und versucht im Falle eines Fehlers 3-mal, die Pipeline auszuführen.

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