Créer des activités et pipelines de fabrique de données

Effectué

Les activités dans Azure Data Factory définissent les actions à exécuter sur les données. Il en existe trois catégories :

  • Activités de déplacement des données
  • Activités de transformation des données
  • Activités de contrôle

Activités de déplacement des données

Les activités de déplacement des données déplacent simplement les données d’un magasin de données vers un autre. Vous pouvez utiliser l’activité Copy pour effectuer des activités de déplacement des données ou utiliser JSON. Il existe un large éventail de magasins de données pris en charge en tant que source et récepteur. Cette liste évolue constamment. Les informations les plus récentes sont disponibles ici.

Activités de transformation des données

Les activités de transformation des données peuvent être exécutées en mode natif dans l’outil de création d’Azure Data Factory à l’aide du flux de données de mappage. Vous pouvez aussi appeler une ressource de calcul pour modifier ou améliorer les données par transformation, ou effectuer une analyse des données. Il s’agit notamment de technologies de calcul, comme Azure Databricks, Azure Batch, SQL Database et Azure Synapse Analytics, Machine Learning Services, Machines virtuelles Azure et HDInsight. Vous pouvez utiliser n’importe quel package SQL Server Integration Services (SSIS) existant, stocké dans un catalogue, pour l’exécuter dans Azure.

Comme cette liste évolue constamment, vous pouvez obtenir les informations les plus récentes ici.

Activités de contrôle

Lors de la création graphique de solutions ADF, vous pouvez utiliser le flux de contrôle inclus dans la conception pour orchestrer les activités de pipeline qui incluent le chaînage d’activités dans une séquence, la création de branches, la définition de paramètres au niveau du pipeline et le passage d’arguments lors de l’appel du pipeline à la demande ou à partir d’un déclencheur. Les fonctionnalités actuelles incluent :

Activité de contrôle Description
Activité d’exécution du pipeline L’activité d’exécution du pipeline permet à un pipeline Data Factory d’appeler un autre pipeline.
ForEachActivity L’activité ForEach définit un flux de contrôle répétitif dans votre pipeline. Elle permet d’effectuer une itération sur une collection, et exécute des activités spécifiées dans une boucle. L’implémentation en boucle de cette activité est semblable à la structure d’exécution en boucle de Foreach dans les langages de programmation.
WebActivity Une activité web peut être utilisée pour appeler un point de terminaison REST personnalisé à partir d’un pipeline Data Factory. Vous pouvez transmettre des jeux de données et des services liés que l’activité peut utiliser et auxquels elle peut accéder.
Activité de recherche L’activité de recherche peut être utilisée pour lire ou rechercher un enregistrement, un nom de table ou une valeur à partir de n’importe quelle source externe. Cette sortie peut être référencée par des activités complémentaires.
Activité d’obtention des métadonnées L’activité d’obtention des métadonnées peut être utilisée pour récupérer les métadonnées de n’importe quelle donnée dans Azure Data Factory.
Activité jusqu’à Implémente une boucle Exécuter jusqu’à semblable à la structure Do-Until des langages de programmation. Elle exécute un ensemble d’activités dans une boucle jusqu’à ce que la condition associée à l’activité retourne la valeur true. Vous pouvez spécifier une valeur de délai d’attente pour l’activité Until dans Data Factory.
Activité Condition si L’activité IfCondition peut être utilisée pour créer une branche en fonction de l’évaluation d’une condition par la valeur true ou false. L’activité IfCondition fournit les mêmes fonctionnalités qu’une instruction «if » dans les langages de programmation. La condition évalue un ensemble d’activités si l’expression renvoie true et un autre ensemble d’activités si elle renvoie false.
Activité d’attente Quand vous utilisez une activité Wait dans un pipeline, celui-ci attend pendant la période spécifiée avant de poursuivre l’exécution des activités suivantes.

Vous pouvez obtenir les informations les plus récentes ici.

Activités et pipelines

Définition des activités

Lors de l’utilisation de la notation JSON, une ou plusieurs activités peuvent être définies dans la section des activités. Il existe deux principaux types d’activités : les activités d’exécution et de contrôle. Les activités d’exécution (également appelées activités de calcul) incluent le déplacement des données et la transformation des données. Elles possèdent la structure de niveau supérieur suivante :

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

La table suivante décrit les propriétés dans le JSON ci-dessus :

Propriété Description Obligatoire
name Nom de l’activité. Oui
description Texte décrivant ce pour quoi l’activité est utilisée. Non
type Définit le type de l’activité. Oui
linkedServiceName Nom du service lié utilisé par l’activité. Oui pour HDInsight, Activité de scoring par lots Machine Learning et Activité de procédure stockée
typeProperties Les propriétés de la section typeProperties dépendent de chaque type d’activité. Non
policy Stratégies affectant le comportement d’exécution de l’activité. Cette propriété inclut le comportement de délai d’expiration et de nouvelle tentative. Non
dependsOn Cette propriété est utilisée pour définir des dépendances des activités, et la manière dont les activités suivantes dépendent des activités précédentes. Non

Définition des activités de contrôle

Dans Data Factory, une activité de contrôle est définie au format JSON comme suit :

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

La table suivante décrit les propriétés dans le JSON ci-dessus :

Propriété Description Obligatoire
name Nom de l’activité. Oui
description Texte décrivant ce pour quoi l’activité est utilisée. Oui
type Définit le type de l’activité. Oui
typeProperties Les propriétés de la section typeProperties dépendent de chaque type d’activité. Non
dependsOn Cette propriété est utilisée pour définir des dépendances des activités, et la manière dont les activités suivantes dépendent des activités précédentes. Non

Définition des pipelines

Voici comment un pipeline est défini au format JSON :

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

La table suivante décrit les propriétés dans le JSON ci-dessus :

Propriété Description Obligatoire
name Nom du pipeline. Oui
description Texte décrivant ce pour quoi le pipeline est utilisé. Non
activities La section Activités peut contenir une ou plusieurs activités définies. Oui
parameters La section Paramètres peut comporter un ou plusieurs des paramètres définis dans le pipeline, afin de rendre votre pipeline plus flexible en vue de sa réutilisation. Non

Exemple

Le code JSON suivant définit le pipeline nommé « MyFirstPipeline ». Il contient un seul type d’activité, HDInsightHive, qui appelle une requête à partir du script nommé « partitionweblogs.hql », stocké dans le service lié nommé « StorageLinkedService », avec une entrée nommée « AzureBlobInput » et une sortie nommée « AzureBlobOutput ». L’exemple exécute ce code sur la ressource de calcul définie dans le service lié nommé « HDInsightOnDemandLinkedService ».

Le pipeline est planifié pour s’exécuter tous les mois, à 3 reprises en cas d’échec.

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