Pipelines et activités dans Azure Data FactoryPipelines and Activities in Azure Data Factory

Notes

Cet article s’applique à la version 1 de Data Factory.This article applies to version 1 of Data Factory. Si vous utilisez la version actuelle du service Data Factory, consultez Pipelines dans V2.If you are using the current version of the Data Factory service, see Pipelines in V2.

Cet article vous aide à comprendre les pipelines et les activités dans Azure Data Factory, et à les utiliser dans l’optique de créer des workflows pilotés par les données de bout en bout pour vos scénarios de déplacement des données et de traitement des données.This article helps you understand pipelines and activities in Azure Data Factory and use them to construct end-to-end data-driven workflows for your data movement and data processing scenarios.

Notes

Cet article suppose que vous avez parcouru les articles Présentation du service Azure Data Factory.This article assumes that you have gone through Introduction to Azure Data Factory. Si vous n’avez pas d’expérience pratique de création de fabriques de données, le didacticiel relatif à la transformation de données et/ou le didacticiel relatif au déplacement de données vous aidera à mieux comprendre cet article.If you do not have hands-on-experience with creating data factories, going through data transformation tutorial and/or data movement tutorial would help you understand this article better.

Notes

Cet article a été mis à jour pour tenir compte de l’utilisation du nouveau module Az d’Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Vous pouvez toujours utiliser le module AzureRM, qui continue à recevoir des correctifs de bogues jusqu’à au moins décembre 2020.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Pour en savoir plus sur le nouveau module Az et la compatibilité avec AzureRM, consultez Présentation du nouveau module Az d’Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Pour des instructions d’installation du module Az, consultez Installer Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Vue d'ensembleOverview

Une fabrique de données peut avoir un ou plusieurs pipelines.A data factory can have one or more pipelines. Un pipeline constitue un regroupement logique d’activités qui exécutent ensemble une tâche.A pipeline is a logical grouping of activities that together perform a task. Les activités d’un pipeline définissent les actions à effectuer sur les données.The activities in a pipeline define actions to perform on your data. Par exemple, vous pouvez utiliser une activité de copie pour copier des données d’un serveur SQL Server local dans un stockage Blob Azure.For example, you may use a copy activity to copy data from an on-premises SQL Server to an Azure Blob Storage. Utilisez ensuite une activité Hive qui exécute un script Hive sur un cluster Azure HDInsight pour traiter/transformer les données du stockage Blob afin de produire des données de sortie.Then, use a Hive activity that runs a Hive script on an Azure HDInsight cluster to process/transform data from the blob storage to produce output data. Enfin, utilisez une deuxième activité de copie pour copier les données de sortie dans un Azure SQL Data Warehouse sur lequel des solutions de génération de rapports décisionnelles sont développées.Finally, use a second copy activity to copy the output data to an Azure SQL Data Warehouse on top of which business intelligence (BI) reporting solutions are built.

Une activité peut inclure zéro ou plusieurs jeux de données d’entrée et produire un ou plusieurs jeux de données de sortie.An activity can take zero or more input datasets and produce one or more output datasets. Le diagramme suivant montre la relation entre le pipeline, l’activité et le jeu de données dans Data Factory :The following diagram shows the relationship between pipeline, activity, and dataset in Data Factory:

Relation entre le pipeline, l’activité et le jeu de données

Un pipeline vous permet de gérer les activités en tant que groupe et non pas individuellement.A pipeline allows you to manage activities as a set instead of each one individually. Par exemple, vous pouvez déployer, planifier, interrompre et reprendre un pipeline, plutôt que de gérer indépendamment des activités dans le pipeline.For example, you can deploy, schedule, suspend, and resume a pipeline, instead of dealing with activities in the pipeline independently.

Data Factory prend en charge deux types d’activités : les activités de déplacement des données et les activités de transformation des données.Data Factory supports two types of activities: data movement activities and data transformation activities. Chaque activité peut avoir zéro ou plusieurs jeux de données d’entrée et produire un ou plusieurs jeux de données de sortie.Each activity can have zero or more input datasets and produce one or more output datasets.

Un jeu de données d’entrée représente l’entrée d’une activité dans le pipeline, tandis qu’un jeu de données de sortie représente la sortie de l’activité.An input dataset represents the input for an activity in the pipeline and an output dataset represents the output for the activity. Les jeux de données identifient les données dans différents magasins de données, par exemple des tables, des fichiers, des dossiers et des documents.Datasets identify data within different data stores, such as tables, files, folders, and documents. Après avoir créé un jeu de données, vous pouvez l’utiliser avec des activités d’un pipeline.After you create a dataset, you can use it with activities in a pipeline. Un jeu de données peut, par exemple, constituer un jeu de données d’entrée/sortie d’une activité de copie ou d’une activité HDInsightHive.For example, a dataset can be an input/output dataset of a Copy Activity or an HDInsightHive Activity. Pour plus d’informations sur les jeux de données, consultez l’article Jeux de données dans Azure Data Factory.For more information about datasets, see Datasets in Azure Data Factory article.

Activités de déplacement des donnéesData movement activities

L’activité de copie dans Data Factory permet de copier les données d’un magasin de données source vers un magasin de données récepteur.Copy Activity in Data Factory copies data from a source data store to a sink data store. Data Factory prend en charge les magasins de données suivants.Data Factory supports the following data stores. Les données de n’importe quelle source peuvent être écrites dans n’importe quel récepteur.Data from any source can be written to any sink. Cliquez sur une banque de données pour découvrir comment copier des données depuis/vers cette banque.Click a data store to learn how to copy data to and from that store.

CatégorieCategory Banque de donnéesData store Prise en charge en tant que sourceSupported as a source Prise en charge en tant que récepteurSupported as a sink
Microsoft AzureAzure stockage d’objets blob AzureAzure Blob storage
  Azure Cosmos DB (API SQL)Azure Cosmos DB (SQL API)
  Azure Data Lake Storage Gen1Azure Data Lake Storage Gen1
  Azure SQL DatabaseAzure SQL Database
  Azure SQL Data WarehouseAzure SQL Data Warehouse
  Index Recherche AzureAzure Search Index
  Stockage Table AzureAzure Table storage
Bases de donnéesDatabases Amazon RedshiftAmazon Redshift
  DB2*DB2*
  MySQL*MySQL*
  Oracle*Oracle*
  PostgreSQL*PostgreSQL*
  SAP Business Warehouse*SAP Business Warehouse*
  SAP HANA*SAP HANA*
  SQL Server*SQL Server*
  Sybase*Sybase*
  Teradata*Teradata*
NoSQLNoSQL Cassandra*Cassandra*
  MongoDB*MongoDB*
FileFile Amazon S3Amazon S3
  Système de fichiers*File System*
  FTPFTP
  HDFS*HDFS*
  SFTPSFTP
AutresOthers HTTP génériqueGeneric HTTP
  OData génériqueGeneric OData
  ODBC générique*Generic ODBC*
  SalesforceSalesforce
  Table web (table HTML)Web Table (table from HTML)

Notes

Les banques de données signalées par un astérisque (*) peuvent être locales ou résider sur une instance Azure IaaS. Elles nécessitent que vous installiez une passerelle de gestion des données sur un ordinateur local ou Azure IaaS.Data stores with * can be on-premises or on Azure IaaS, and require you to install Data Management Gateway on an on-premises/Azure IaaS machine.

Pour plus d’informations, consultez l’article Activités de déplacement des données.For more information, see Data Movement Activities article.

Activités de transformation des donnéesData transformation activities

Azure Data Factory prend en charge les activités de transformation suivantes, qui peuvent être ajoutées à des pipelines, soit individuellement soit de façon chaînée avec une autre activité.Azure Data Factory supports the following transformation activities that can be added to pipelines either individually or chained with another activity.

Activités de transformation des donnéesData transformation activity Environnement de calculCompute environment
HiveHive HDInsight [Hadoop]HDInsight [Hadoop]
PigPig HDInsight [Hadoop]HDInsight [Hadoop]
MapReduceMapReduce HDInsight [Hadoop]HDInsight [Hadoop]
Diffusion en continu HadoopHadoop Streaming HDInsight [Hadoop]HDInsight [Hadoop]
SparkSpark HDInsight [Hadoop]HDInsight [Hadoop]
Activités Machine Learning : exécution par lot et ressource de mise à jourMachine Learning activities: Batch Execution and Update Resource Microsoft AzureAzure VM
Procédure stockéeStored Procedure SQL Azure, Azure SQL Data Warehouse ou SQL ServerAzure SQL, Azure SQL Data Warehouse, or SQL Server
Langage U-SQL du service Analytique Data LakeData Lake Analytics U-SQL Service Analytique Azure Data LakeAzure Data Lake Analytics
DotNetDotNet HDInsight [Hadoop] ou Azure BatchHDInsight [Hadoop] or Azure Batch

Notes

Vous pouvez utiliser l'activité MapReduce pour exécuter des programmes Spark sur votre cluster HDInsight Spark.You can use MapReduce activity to run Spark programs on your HDInsight Spark cluster. Consultez la page Appeler des programmes Spark à partir d’Azure Data Factory pour plus d’informations.See Invoke Spark programs from Azure Data Factory for details. Vous pouvez créer une activité personnalisée pour exécuter des scripts R sur votre cluster HDInsight si R est installé.You can create a custom activity to run R scripts on your HDInsight cluster with R installed. Consultez la page Exécuter des scripts R avec Azure Data Factory.See Run R Script using Azure Data Factory.

Pour plus d’informations, consultez l’article Activités de déplacement des données.For more information, see Data Transformation Activities article.

Activités .NET personnaliséesCustom .NET activities

Si vous devez déplacer des données vers ou à partir d’une banque de données qui n’est pas prise en charge par l’activité de copie, ou transformer des données à l’aide de votre propre logique, créez une activité .NET personnalisée.If you need to move data to/from a data store that the Copy Activity doesn't support, or transform data using your own logic, create a custom .NET activity. Pour plus d’informations sur la création et l’utilisation d’une activité personnalisée, consultez Utilisation des activités personnalisées dans un pipeline Azure Data Factory.For details on creating and using a custom activity, see Use custom activities in an Azure Data Factory pipeline.

Planifier des pipelinesSchedule pipelines

Un pipeline est actif uniquement entre son heure de début et son heure de fin.A pipeline is active only between its start time and end time. Il n'est pas exécuté avant l'heure de début, ni après l'heure de fin.It is not executed before the start time or after the end time. Lorsque le pipeline est suspendu, il n’est pas exécuté, quelle que soit son heure de début et de fin.If the pipeline is paused, it does not get executed irrespective of its start and end time. Pour qu'un pipeline soit exécuté, il ne doit pas être suspendu.For a pipeline to run, it should not be paused. Consultez Planification et exécution pour comprendre le fonctionnement de planification et de l’exécution dans Azure Data Factory.See Scheduling and Execution to understand how scheduling and execution works in Azure Data Factory.

Pipeline JSONPipeline JSON

Examinons de plus près la définition d’un pipeline au format JSON.Let us take a closer look on how a pipeline is defined in JSON format. La structure générique d'un pipeline se présente comme suit :The generic structure for a pipeline looks as follows:

{
    "name": "PipelineName",
    "properties":
    {
        "description" : "pipeline description",
        "activities":
        [

        ],
        "start": "<start date-time>",
        "end": "<end date-time>",
        "isPaused": true/false,
        "pipelineMode": "scheduled/onetime",
        "expirationTime": "15.00:00:00",
        "datasets":
        [
        ]
    }
}
TagTag DescriptionDescription ObligatoireRequired
namename Nom du pipeline.Name of the pipeline. Spécifiez un nom qui représente l’action effectuée par le pipeline.Specify a name that represents the action that the pipeline performs.
  • Nombre maximal de caractères : 260Maximum number of characters: 260
  • Doit commencer par une lettre, un chiffre ou un trait de soulignement (_)Must start with a letter number, or an underscore (_)
  • Les caractères suivants ne sont pas autorisés : « . », « + », « ? », « / », « < », « > », « * », « % », « & », « : », « \ »Following characters are not allowed: “.”, “+”, “?”, “/”, “<”,”>”,”*”,”%”,”&”,”:”,”\”
OUIYes
descriptiondescription Spécifiez le texte décrivant la raison motivant l’utilisation du pipeline.Specify the text describing what the pipeline is used for. OUIYes
activitiesactivities La section Activités peut contenir une ou plusieurs activités définies.The activities section can have one or more activities defined within it. Consultez la section suivante pour plus d’informations sur l’élément JSON des activités.See the next section for details about the activities JSON element. OUIYes
startstart Date et heure de début du pipeline.Start date-time for the pipeline. Doit se trouver au format ISO.Must be in ISO format. Par exemple : 2016-10-14T16:32:41Z.For example: 2016-10-14T16:32:41Z.

Il est possible de spécifier une heure locale, par exemple une heure EST.It is possible to specify a local time, for example an EST time. Voici un exemple : 2016-02-27T06:00:00-05:00, qui correspond à 6h EST.Here is an example: 2016-02-27T06:00:00-05:00", which is 6 AM EST.

Ensemble, les propriétés de début et de fin spécifient la période active du pipeline.The start and end properties together specify active period for the pipeline. Les tranches de sortie sont uniquement générées pendant cette période active.Output slices are only produced with in this active period.
NonNo

Si vous spécifiez une valeur pour la propriété end, vous devez en spécifier une pour la propriété start.If you specify a value for the end property, you must specify value for the start property.

Les heures de début et de fin peuvent être toutes les deux non renseignées pour créer un pipeline.The start and end times can both be empty to create a pipeline. Vous devez spécifier les deux valeurs pour définir une période active d’exécution du pipeline.You must specify both values to set an active period for the pipeline to run. Si vous ne spécifiez pas d’heures de début et de fin lors de la création d’un pipeline, vous pouvez les définir à l’aide de la cmdlet Set-AzDataFactoryPipelineActivePeriod ultérieurement.If you do not specify start and end times when creating a pipeline, you can set them using the Set-AzDataFactoryPipelineActivePeriod cmdlet later.
endend Date et heure de fin du pipeline.End date-time for the pipeline. Si spécifiée, doit être au format ISO.If specified must be in ISO format. Par exemple : 2016-10-14T17:32:41ZFor example: 2016-10-14T17:32:41Z

Il est possible de spécifier une heure locale, par exemple une heure EST.It is possible to specify a local time, for example an EST time. Voici un exemple : 2016-02-27T06:00:00-05:00, qui correspond à 6h EST.Here is an example: 2016-02-27T06:00:00-05:00, which is 6 AM EST.

Pour exécuter le pipeline indéfiniment, spécifiez 9999-09-09 comme valeur pour la propriété end.To run the pipeline indefinitely, specify 9999-09-09 as the value for the end property.

Un pipeline est actif uniquement entre son heure de début et son heure de fin.A pipeline is active only between its start time and end time. Il n'est pas exécuté avant l'heure de début, ni après l'heure de fin.It is not executed before the start time or after the end time. Lorsque le pipeline est suspendu, il n’est pas exécuté, quelle que soit son heure de début et de fin.If the pipeline is paused, it does not get executed irrespective of its start and end time. Pour qu'un pipeline soit exécuté, il ne doit pas être suspendu.For a pipeline to run, it should not be paused. Consultez Planification et exécution pour comprendre le fonctionnement de planification et de l’exécution dans Azure Data Factory.See Scheduling and Execution to understand how scheduling and execution works in Azure Data Factory.
NonNo

Si vous spécifiez une valeur pour la propriété start, vous devez en spécifier une pour la propriété end.If you specify a value for the start property, you must specify value for the end property.

Consultez les remarques relatives à la propriété start .See notes for the start property.
isPausedisPaused Si la valeur est true, le pipeline ne s’exécute pas.If set to true, the pipeline does not run. Il est à l’état de pause.It's in the paused state. Valeur par défaut = false.Default value = false. Vous pouvez utiliser cette propriété pour activer ou désactiver un pipeline.You can use this property to enable or disable a pipeline. NonNo
pipelineModepipelineMode La méthode de planification des exécutions pour le pipeline.The method for scheduling runs for the pipeline. Les valeurs autorisées sont : scheduled (par défaut) et onetime.Allowed values are: scheduled (default), onetime.

« scheduled » indique que le pipeline s’exécute selon un intervalle de temps spécifié en fonction de sa période active (heure de début et de fin).‘Scheduled’ indicates that the pipeline runs at a specified time interval according to its active period (start and end time). « Onetime » indique que le pipeline ne s’exécute qu’une seule fois.‘Onetime’ indicates that the pipeline runs only once. Une fois créés, les pipelines de type onetime ne peuvent pas être modifiés ni mis à jour pour le moment.Onetime pipelines once created cannot be modified/updated currently. Consultez la page Pipeline onetime pour plus d’informations sur le paramètre onetime.See Onetime pipeline for details about onetime setting.
NonNo
expirationTimeexpirationTime Durée pendant laquelle le pipeline à usage unique est valide et doit rester configuré.Duration of time after creation for which the one-time pipeline is valid and should remain provisioned. Le pipeline est automatiquement supprimé une fois le délai d’expiration atteint s’il ne contient aucune exécution active, en échec ou en attente.If it does not have any active, failed, or pending runs, the pipeline is automatically deleted once it reaches the expiration time. La valeur par défaut est : "expirationTime": "3.00:00:00"The default value: "expirationTime": "3.00:00:00" NonNo
jeux de donnéesdatasets Liste des jeux de données à utiliser par les activités définies dans le pipeline.List of datasets to be used by activities defined in the pipeline. Cette propriété permet de définir des jeux de données spécifiques à ce pipeline et non définis dans la fabrique de données.This property can be used to define datasets that are specific to this pipeline and not defined within the data factory. Les jeux de données définis dans ce pipeline ne peuvent être utilisés que par ce pipeline et ne peuvent pas être partagés.Datasets defined within this pipeline can only be used by this pipeline and cannot be shared. Pour plus d’informations, consultez la page Étendue des jeux de données .See Scoped datasets for details. NonNo

Activité JSONActivity JSON

La section Activités peut contenir une ou plusieurs activités définies.The activities section can have one or more activities defined within it. Chaque activité possède la structure de niveau supérieur suivante :Each activity has the following top-level structure:

{
    "name": "ActivityName",
    "description": "description",
    "type": "<ActivityType>",
    "inputs": "[]",
    "outputs": "[]",
    "linkedServiceName": "MyLinkedService",
    "typeProperties":
    {

    },
    "policy":
    {
    },
    "scheduler":
    {
    }
}

Le tableau suivant décrit des propriétés de la définition JSON de l’activité :Following table describes properties in the activity JSON definition:

TagTag DescriptionDescription ObligatoireRequired
namename Nom de l’activité.Name of the activity. Spécifiez un nom qui représente l’action effectuée par l’activité.Specify a name that represents the action that the activity performs.
  • Nombre maximal de caractères : 260Maximum number of characters: 260
  • Doit commencer par une lettre, un chiffre ou un trait de soulignement (_)Must start with a letter number, or an underscore (_)
  • Les caractères suivants ne sont pas autorisés : « . », « + », « ? », « / », « < », « > », « * », « % », « & », « : », « \ »Following characters are not allowed: “.”, “+”, “?”, “/”, “<”,”>”,”*”,”%”,”&”,”:”,”\”
OUIYes
descriptiondescription Texte décrivant la raison motivant l’activité ou son utilisationText describing what the activity or is used for OUIYes
typetype Type de l’activité.Type of the activity. Consultez les sections Activités de déplacement des données et Activités de transformation des données pour en savoir plus sur les différents types d’activités.See the Data Movement Activities and Data Transformation Activities sections for different types of activities. OUIYes
inputsinputs Les tables d’entrée utilisées par l’activitéInput tables used by the activity

// one input table
"inputs": [ { "name": "inputtable1" } ],

// two input tables
"inputs": [ { "name": "inputtable1" }, { "name": "inputtable2" } ],
OUIYes
outputsoutputs Les tables de sortie utilisées par l’activité.Output tables used by the activity.

// one output table
"outputs": [ { "name": "outputtable1" } ],

//two output tables
"outputs": [ { "name": "outputtable1" }, { "name": "outputtable2" } ],
OUIYes
linkedServiceNamelinkedServiceName Nom du service lié utilisé par l’activité.Name of the linked service used by the activity.

Une activité peut nécessiter que vous spécifiiez le service lié à l’environnement de calcul requis.An activity may require that you specify the linked service that links to the required compute environment.
Oui pour les activités HDInsight et de calcul de score Azure Machine LearningYes for HDInsight Activity and Azure Machine Learning Batch Scoring Activity

Non pour toutes les autresNo for all others
typePropertiestypeProperties Les propriétés de la section typeProperties dépendent du type de l’activité.Properties in the typeProperties section depend on type of the activity. Pour afficher les propriétés de type d’une activité, cliquez sur les liens vers l’activité dans la section précédente.To see type properties for an activity, click links to the activity in the previous section. NonNo
policypolicy Stratégies affectant le comportement d’exécution de l’activité.Policies that affect the run-time behavior of the activity. Si aucune valeur n’est spécifiée, les stratégies par défaut sont utilisées.If it is not specified, default policies are used. NonNo
schedulerscheduler La propriété « scheduler » est utilisée pour définir la planification souhaitée pour l’activité.“scheduler” property is used to define desired scheduling for the activity. Ses sous-propriétés sont les mêmes que celles de la propriété de disponibilité dans un jeu de données.Its subproperties are the same as the ones in the availability property in a dataset. NonNo

StratégiesPolicies

Les stratégies affectent le comportement d'exécution d'une activité, en particulier lors du traitement du segment d'une table.Policies affect the run-time behavior of an activity, specifically when the slice of a table is processed. Le tableau suivant fournit les détails.The following table provides the details.

PropriétéProperty Valeurs autoriséesPermitted values Valeur par défautDefault Value DescriptionDescription
accès concurrentielconcurrency EntierInteger

Valeur maximale : 10Max value: 10
11 Nombre d’exécutions simultanées de l’activité.Number of concurrent executions of the activity.

Il détermine le nombre d’exécutions en parallèle de l’activité qui peuvent se produire sur différents segments.It determines the number of parallel activity executions that can happen on different slices. Par exemple, si une activité doit passer par un grand ensemble de données disponibles, une valeur de concurrence plus élevée accélère le traitement des données.For example, if an activity needs to go through a large set of available data, having a larger concurrency value speeds up the data processing.
executionPriorityOrderexecutionPriorityOrder NewestFirstNewestFirst

OldestFirstOldestFirst
OldestFirstOldestFirst Détermine l’ordre des segments de données qui sont traités.Determines the ordering of data slices that are being processed.

Par exemple, si vous avez 2 segments (l’un se produisant à 16 heures et l’autre à 17 heures) et que les deux sont en attente d’exécution.For example, if you have 2 slices (one happening at 4pm, and another one at 5pm), and both are pending execution. Si vous définissez executionPriorityOrder sur NewestFirst, le segment à 17 h est traité en premier.If you set the executionPriorityOrder to be NewestFirst, the slice at 5 PM is processed first. De même, si vous définissez executionPriorityOrder sur OldestFIrst, le segment à 16 h est traité en premier.Similarly if you set the executionPriorityORder to be OldestFIrst, then the slice at 4 PM is processed.
retryretry EntierInteger

La valeur max peut être 10Max value can be 10
00 Nombre de nouvelles tentatives avant que le traitement des données du segment ne soit marqué comme un échec.Number of retries before the data processing for the slice is marked as Failure. L'exécution de l'activité pour un segment de données est répétée jusqu'au nombre de tentatives spécifié.Activity execution for a data slice is retried up to the specified retry count. La nouvelle tentative est effectuée dès que possible après l'échec.The retry is done as soon as possible after the failure.
timeouttimeout TimeSpanTimeSpan 00:00:0000:00:00 Délai d'expiration de l'activité.Timeout for the activity. Exemple : 00:10:00 (implique un délai d’expiration de 10 minutes)Example: 00:10:00 (implies timeout 10 mins)

Si une valeur n’est pas spécifiée ou est égale à 0, le délai d’expiration est infini.If a value is not specified or is 0, the timeout is infinite.

Si le temps de traitement des données sur un segment dépasse la valeur du délai d’expiration, il est annulé et le système tente de réexécuter le traitement.If the data processing time on a slice exceeds the timeout value, it is canceled, and the system attempts to retry the processing. Le nombre de nouvelles tentatives dépend de la propriété « retry ».The number of retries depends on the retry property. Quand le délai d’expiration est atteint, l’état est défini sur TimedOut.When timeout occurs, the status is set to TimedOut.
delaydelay TimeSpanTimeSpan 00:00:0000:00:00 Spécifie le délai avant le début du traitement des données du segment.Specify the delay before data processing of the slice starts.

L’exécution d’activité pour une tranche de données est démarrée une fois que le délai a dépassé l’heure d’exécution prévue.The execution of activity for a data slice is started after the Delay is past the expected execution time.

Exemple : 00:10:00 (implique un délai de 10 minutes)Example: 00:10:00 (implies delay of 10 mins)
longRetrylongRetry EntierInteger

Valeur maximale : 10Max value: 10
11 Le nombre de nouvelles tentatives longues avant l’échec de l’exécution du segment.The number of long retry attempts before the slice execution is failed.

Les tentatives longRetry sont espacées par longRetryInterval.longRetry attempts are spaced by longRetryInterval. Par conséquent, si vous devez spécifier un délai entre chaque tentative, utilisez longRetry.So if you need to specify a time between retry attempts, use longRetry. Si les valeurs Retry et longRetry sont spécifiées, chaque tentative longRetry inclut des tentatives Retry et le nombre maximal de tentatives sera égal à Retry * longRetry.If both Retry and longRetry are specified, each longRetry attempt includes Retry attempts and the max number of attempts is Retry * longRetry.

Par exemple, si nous avons les paramètres suivants dans la stratégie de l’activité :For example, if we have the following settings in the activity policy:
Retry : 3Retry: 3
longRetry : 2longRetry: 2
longRetryInterval : 01:00:00longRetryInterval: 01:00:00

Supposons qu’il existe un seul segment à exécuter (dont l’état est Waiting) et que l’exécution de l’activité échoue à chaque fois.Assume there is only one slice to execute (status is Waiting) and the activity execution fails every time. Au départ, il y aurait 3 tentatives consécutives d'exécution.Initially there would be 3 consecutive execution attempts. Après chaque tentative, l’état du segment serait Retry.After each attempt, the slice status would be Retry. Une fois les 3 premières tentatives terminées, l’état du segment serait LongRetry.After first 3 attempts are over, the slice status would be LongRetry.

Après une heure (c’est-à-dire la valeur de longRetryInterval), il y aurait un autre ensemble de 3 tentatives consécutives d’exécution.After an hour (that is, longRetryInteval’s value), there would be another set of 3 consecutive execution attempts. Ensuite, l'état du segment serait Failed et aucune autre tentative ne serait exécutée.After that, the slice status would be Failed and no more retries would be attempted. Par conséquent, 6 tentatives ont été exécutées.Hence overall 6 attempts were made.

Si une exécution réussit, l’état de la tranche est Ready et aucune nouvelle tentative n’est tentée.If any execution succeeds, the slice status would be Ready and no more retries are attempted.

La valeur longRetry peut être utilisée dans les situations où les données dépendantes arrivent à des moments non déterministes ou lorsque l’environnement global où le traitement des données se produit est douteux.longRetry may be used in situations where dependent data arrives at non-deterministic times or the overall environment is flaky under which data processing occurs. Dans ces cas, l’exécution de nouvelles tentatives l’une après l’autre peut ne pas être utile et procéder ainsi après un intervalle de temps précis produit la sortie désirée.In such cases, doing retries one after another may not help and doing so after an interval of time results in the desired output.

Mise en garde : ne définissez pas de valeurs élevées pour longRetry ou longRetryInterval.Word of caution: do not set high values for longRetry or longRetryInterval. En règle générale, des valeurs plus élevées impliquent d’autres problèmes systémiques.Typically, higher values imply other systemic issues.
longRetryIntervallongRetryInterval TimeSpanTimeSpan 00:00:0000:00:00 Le délai entre les nouvelles tentatives longuesThe delay between long retry attempts

Exemple de pipeline de copieSample copy pipeline

Dans l’exemple de pipeline suivant, il existe une activité de type Copy in the d’activités .In the following sample pipeline, there is one activity of type Copy in the activities section. Dans cet exemple, l’activité de copie copie des données d’un stockage Blob Azure vers une base de données Azure SQL.In this sample, the copy activity copies data from an Azure Blob storage to an Azure SQL database.

{
  "name": "CopyPipeline",
  "properties": {
    "description": "Copy data from a blob to Azure SQL table",
    "activities": [
      {
        "name": "CopyFromBlobToSQL",
        "type": "Copy",
        "inputs": [
          {
            "name": "InputDataset"
          }
        ],
        "outputs": [
          {
            "name": "OutputDataset"
          }
        ],
        "typeProperties": {
          "source": {
            "type": "BlobSource"
          },
          "sink": {
            "type": "SqlSink",
            "writeBatchSize": 10000,
            "writeBatchTimeout": "60:00:00"
          }
        },
        "Policy": {
          "concurrency": 1,
          "executionPriorityOrder": "NewestFirst",
          "retry": 0,
          "timeout": "01:00:00"
        }
      }
    ],
    "start": "2016-07-12T00:00:00Z",
    "end": "2016-07-13T00:00:00Z"
  }
}

Notez les points suivants :Note the following points:

  • Dans la section des activités, il existe une seule activité dont le type a la valeur Copy.In the activities section, there is only one activity whose type is set to Copy.
  • L’entrée de l’activité est définie sur InputDataset et sa sortie, sur OutputDataset.Input for the activity is set to InputDataset and output for the activity is set to OutputDataset. Consultez l’article Jeux de données pour en savoir plus sur la définition de jeux de données dans JSON.See Datasets article for defining datasets in JSON.
  • Dans la section typeProperties, BlobSource est spécifié en tant que type de source et SqlSink, en tant que type de récepteur.In the typeProperties section, BlobSource is specified as the source type and SqlSink is specified as the sink type. Dans la section Activités de déplacement des données, cliquez sur le magasin de données que vous souhaitez utiliser comme source ou récepteur pour en savoir plus sur le déplacement des données vers/depuis ce magasin de données.In the Data movement activities section, click the data store that you want to use as a source or a sink to learn more about moving data to/from that data store.

Pour obtenir une description complète de la création de ce pipeline, consultez le Tutoriel : Copier des données de Stockage Blob vers SQL DatabaseFor a complete walkthrough of creating this pipeline, see Tutorial: Copy data from Blob Storage to SQL Database.

Exemple de pipeline de transformationSample transformation pipeline

Dans l’exemple de pipeline suivant, il existe une activité de type HDInsightHive in the d’activités .In the following sample pipeline, there is one activity of type HDInsightHive in the activities section. Dans cet exemple, l’activité Hive HDInsight transforme les données d’un stockage blob Azure en exécutant un fichier de script Hive sur un cluster Hadoop Azure HDInsight.In this sample, the HDInsight Hive activity transforms data from an Azure Blob storage by running a Hive script file on an Azure HDInsight Hadoop cluster.

{
    "name": "TransformPipeline",
    "properties": {
        "description": "My first Azure Data Factory pipeline",
        "activities": [
            {
                "type": "HDInsightHive",
                "typeProperties": {
                    "scriptPath": "adfgetstarted/script/partitionweblogs.hql",
                    "scriptLinkedService": "AzureStorageLinkedService",
                    "defines": {
                        "inputtable": "wasb://adfgetstarted@<storageaccountname>.blob.core.windows.net/inputdata",
                        "partitionedtable": "wasb://adfgetstarted@<storageaccountname>.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": "2016-04-01T00:00:00Z",
        "end": "2016-04-02T00:00:00Z",
        "isPaused": false
    }
}

Notez les points suivants :Note the following points:

  • Dans la section des activités, il existe une seule activité dont le type a la valeur HDInsightHive.In the activities section, there is only one activity whose type is set to HDInsightHive.
  • Le fichier de script Hive, partitionweblogs.hql, est stocké dans le compte de stockage Azure (spécifié par le service scriptLinkedService, appelé AzureStorageLinkedService) et dans le dossier script du conteneur adfgetstarted.The Hive script file, partitionweblogs.hql, is stored in the Azure storage account (specified by the scriptLinkedService, called AzureStorageLinkedService), and in script folder in the container adfgetstarted.
  • La section defines est utilisée pour spécifier les paramètres d’exécution transmis au script Hive comme valeurs de configuration Hive (par ex. ${hiveconf:inputtable}, ${hiveconf:partitionedtable}).The defines section is used to specify the runtime settings that are passed to the hive script as Hive configuration values (e.g ${hiveconf:inputtable}, ${hiveconf:partitionedtable}).

La section typeProperties est différente pour chaque activité de transformation.The typeProperties section is different for each transformation activity. Pour en savoir plus sur les propriétés de type prises en charge pour une activité de transformation, cliquez sur l’activité de transformation dans la table Activités de transformation des données.To learn about type properties supported for a transformation activity, click the transformation activity in the Data transformation activities table.

Pour obtenir une description complète de la création de ce pipeline, consultez le Tutoriel : Générer votre premier pipeline pour traiter les données à l’aide du cluster Hadoop.For a complete walkthrough of creating this pipeline, see Tutorial: Build your first pipeline to process data using Hadoop cluster.

Plusieurs activités à l’intérieur d’un pipelineMultiple activities in a pipeline

Les deux exemples de pipelines précédents ne contiennent qu’une seule activité.The previous two sample pipelines have only one activity in them. Un pipeline peut toutefois contenir plusieurs activités.You can have more than one activity in a pipeline.

Si vous avez plusieurs activités dans un pipeline et que la sortie d’une activité n’est pas une entrée dans une autre activité, les activités peuvent s’exécuter en parallèle si les segments de données d’entrée pour les activités sont prêts.If you have multiple activities in a pipeline and output of an activity is not an input of another activity, the activities may run in parallel if input data slices for the activities are ready.

Vous pouvez chaîner deux activités en utilisant le jeu de données de sortie d’une activité en tant que jeu de données d’entrée de l’autre activité.You can chain two activities by having the output dataset of one activity as the input dataset of the other activity. La seconde activité s’exécute uniquement quand la première se termine correctement.The second activity executes only when the first one completes successfully.

Chaînage des activités dans le même pipeline

Dans cet exemple, le pipeline contient deux activités : Activity1 et Activity2.In this sample, the pipeline has two activities: Activity1 and Activity2. Activity1 utilise Dataset1 comme entrée et produit une sortie Dataset2.The Activity1 takes Dataset1 as an input and produces an output Dataset2. L’activité utilise Dataset2 comme entrée et produit une sortie Dataset3.The Activity takes Dataset2 as an input and produces an output Dataset3. La sortie d’Activity1 (Dataset2) étant l’entrée d’Activity2, Activity2 n’est exécutée que lorsque l’activité se termine avec succès et produit la tranche Dataset2.Since the output of Activity1 (Dataset2) is the input of Activity2, the Activity2 runs only after the Activity completes successfully and produces the Dataset2 slice. Si Activity1 échoue pour une quelconque raison et ne produit pas la tranche Dataset2, Activity2 n’est pas exécutée pour cette tranche (par exemple : entre 9 h et 10 h).If the Activity1 fails for some reason and does not produce the Dataset2 slice, the Activity 2 does not run for that slice (for example: 9 AM to 10 AM).

Vous pouvez également chaîner des activités se trouvant dans des pipelines différents.You can also chain activities that are in different pipelines.

Chaînage des activités dans deux pipelines

Dans cet exemple, Pipeline1 ne contient qu’une seule activité qui utilise Dataset1 comme entrée et produit Dataset2 comme sortie.In this sample, Pipeline1 has only one activity that takes Dataset1 as an input and produces Dataset2 as an output. Pipeline2 ne contient également qu’une seule activité qui utilise Dataset2 comme entrée et produit Dataset3 comme sortie.The Pipeline2 also has only one activity that takes Dataset2 as an input and Dataset3 as an output.

Pour plus d’informations, consultez Planification et exécution.For more information, see scheduling and execution.

Créer et surveiller des pipelinesCreate and monitor pipelines

Vous pouvez créer des pipelines à l’aide de l’un de ces outils ou kits de développement logiciel (SDK).You can create pipelines by using one of these tools or SDKs.

  • Assistant de copieCopy Wizard
  • Visual StudioVisual Studio
  • Azure PowerShellAzure PowerShell
  • Modèle Azure Resource ManagerAzure Resource Manager template
  • API RESTREST API
  • API .NET.NET API

Consultez les didacticiels suivants pour obtenir des instructions pas à pas sur la création de pipelines à l’aide de l’un de ces outils ou kits de développement logiciel (SDK).See the following tutorials for step-by-step instructions for creating pipelines by using one of these tools or SDKs.

Une fois qu’un pipeline est créé/déployé, vous pouvez gérer et surveiller les pipelines à l’aide des panneaux du portail Azure et de l’application Surveiller et gérer.Once a pipeline is created/deployed, you can manage and monitor your pipelines by using the Azure portal blades or Monitor and Manage App. Pour des instructions pas à pas, consultez les rubriques suivantes.See the following topics for step-by-step instructions.

Pipeline onetimeOnetime pipeline

Vous pouvez créer et planifier un pipeline pour qu’il s’exécute périodiquement (par exemple  toutes les heures ou tous les jours) en fonction de l’heure de début et de l’heure de fin que vous spécifiez dans la définition du pipeline.You can create and schedule a pipeline to run periodically (for example: hourly or daily) within the start and end times you specify in the pipeline definition. Pour plus d'informations, consultez Planification des activités.See Scheduling activities for details. Vous pouvez également créer un pipeline qui ne s’exécute qu’une seule fois.You can also create a pipeline that runs only once. Pour ce faire, vous définissez la propriété pipelineMode dans la définition du pipeline sur la valeur onetime, comme indiqué dans l’exemple JSON suivant.To do so, you set the pipelineMode property in the pipeline definition to onetime as shown in the following JSON sample. La valeur par défaut de cette propriété est scheduled(planifié).The default value for this property is scheduled.

{
    "name": "CopyPipeline",
    "properties": {
        "activities": [
            {
                "type": "Copy",
                "typeProperties": {
                    "source": {
                        "type": "BlobSource",
                        "recursive": false
                    },
                    "sink": {
                        "type": "BlobSink",
                        "writeBatchSize": 0,
                        "writeBatchTimeout": "00:00:00"
                    }
                },
                "inputs": [
                    {
                        "name": "InputDataset"
                    }
                ],
                "outputs": [
                    {
                        "name": "OutputDataset"
                    }
                ],
                "name": "CopyActivity-0"
            }
        ],
        "pipelineMode": "OneTime"
    }
}

Notez les points suivants :Note the following:

  • Les heures de début et de fin ne sont pas spécifiées.Start and end times for the pipeline are not specified.
  • La disponibilité des jeux de données d’entrée et de sortie est spécifiée (fréquence et intervalle) même si les valeurs ne sont pas utilisées par Data Factory.Availability of input and output datasets is specified (frequency and interval), even though Data Factory does not use the values.
  • La vue schématique n’affiche pas les pipelines à usage unique (onetime).Diagram view does not show one-time pipelines. Ce comportement est normal.This behavior is by design.
  • Les pipelines à usage unique ne peuvent pas être mis à jour.One-time pipelines cannot be updated. Vous pouvez cloner un pipeline à usage unique, le renommer, mettre à jour ses propriétés et le déployer pour en créer un autre.You can clone a one-time pipeline, rename it, update properties, and deploy it to create another one.

Étapes suivantesNext steps