Créer des activités et pipelines de fabrique de données
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"
}
}