Pipeline e attività in Azure Data FactoryPipelines and Activities in Azure Data Factory

Nota

Le informazioni di questo articolo sono valide per la versione 1 di Data Factory.This article applies to version 1 of Data Factory. Se si usa la versione corrente del servizio Data Factory, vedere le informazioni sulle pipeline nella versione 2.If you are using the current version of the Data Factory service, see Pipelines in V2.

Questo articolo fornisce informazioni sulle pipeline e sulle attività in Azure Data Factory e su come usarle per creare flussi di lavoro completi basati sui dati per gli scenari di elaborazione e trasferimento dei dati.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.

Nota

Questo articolo è da leggersi dopo aver consultato l' Introduzione a Data factory di Azure.This article assumes that you have gone through Introduction to Azure Data Factory. Se non si ha esperienza diretta nella creazione di data factory, l'esercitazione sulla trasformazione dei dati e/o quella sullo spostamento dei dati può essere utile per comprendere meglio questo articolo.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.

Nota

Questo articolo è stato aggiornato per usare il nuovo modulo Az di Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. È comunque possibile usare il modulo AzureRM, che continuerà a ricevere correzioni di bug almeno fino a dicembre 2020.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Per altre informazioni sul nuovo modulo Az e sulla compatibilità di AzureRM, vedere Introduzione del nuovo modulo Az di Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Per istruzioni sull'installazione del modulo Az, vedere Installare Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

PanoramicaOverview

Una data factory può comprendere una o più pipeline.A data factory can have one or more pipelines. Una pipeline è un raggruppamento logico di attività che insieme eseguono un compito.A pipeline is a logical grouping of activities that together perform a task. Le attività in una pipeline definiscono le azioni da eseguire sui dati.The activities in a pipeline define actions to perform on your data. Ad esempio, è possibile usare un'attività di copia per copiare i dati da un Server SQL locale a un'archiviazione BLOB di Azure.For example, you may use a copy activity to copy data from an on-premises SQL Server to an Azure Blob Storage. Quindi, usare un'attività Hive che esegue uno script Hive in un cluster HDInsight di Azure per elaborare o trasformare i dati dall'archivio BLOB per produrre dati di output.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. Infine, usare una seconda attività di copia per copiare i dati di output in un Azure SQL Data Warehouse in cui vengono compilate le soluzioni di report di business intelligence, BI.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.

Un'attività può non avere alcun set di dati di input o può averne più di uno e generare uno o più set di dati di output.An activity can take zero or more input datasets and produce one or more output datasets. Nel diagramma seguente viene illustrata la relazione tra attività, set di dati e pipeline in Data Factory:The following diagram shows the relationship between pipeline, activity, and dataset in Data Factory:

Relazione tra pipeline, attività e set di dati

Una pipeline consente di gestire le attività come un set anziché singolarmente.A pipeline allows you to manage activities as a set instead of each one individually. Ad esempio, è possibile distribuire, pianificare, sospendere e riprendere una pipeline, anziché gestire le attività della pipeline singolarmente.For example, you can deploy, schedule, suspend, and resume a pipeline, instead of dealing with activities in the pipeline independently.

Data Factory supporta due tipi di attività: attività di spostamento dei dati e attività di trasformazione dei dati.Data Factory supports two types of activities: data movement activities and data transformation activities. Ogni attività può non avere alcun set di dati di input o può averne più di uno e generare uno o più set di dati di output.Each activity can have zero or more input datasets and produce one or more output datasets.

Un set di dati di input rappresenta l'input per un'attività nella pipeline, un set di dati di output rappresenta l'output dell'attività.An input dataset represents the input for an activity in the pipeline and an output dataset represents the output for the activity. I set di dati identificano i dati all'interno dei diversi archivi dati, come tabelle, file, cartelle e documenti.Datasets identify data within different data stores, such as tables, files, folders, and documents. Dopo aver creato un set di dati, è possibile usarlo con le attività in una pipeline.After you create a dataset, you can use it with activities in a pipeline. Ad esempio, un set di dati può essere configurato come set di dati di input o di output di un'attività di copia o un'attività HDInsightHive.For example, a dataset can be an input/output dataset of a Copy Activity or an HDInsightHive Activity. Per altre informazioni sui set di dati, vedere l'articolo Set di dati in Azure Data Factory.For more information about datasets, see Datasets in Azure Data Factory article.

Attività di spostamento dei datiData movement activities

L'attività di copia in Data Factory esegue la copia dei dati da un archivio dati di origine a un archivio dati sink.Copy Activity in Data Factory copies data from a source data store to a sink data store. Data Factory supporta gli archivi dati seguenti.Data Factory supports the following data stores. I dati da qualsiasi origine possono essere scritti in qualsiasi sink.Data from any source can be written to any sink. Fare clic su un archivio dati per informazioni su come copiare dati da e verso tale archivio.Click a data store to learn how to copy data to and from that store.

CategoriaCategory Archivio datiData store Supportato come origineSupported as a source Supportato come sinkSupported as a sink
AzureAzure Archivio BLOB di AzureAzure Blob storage
  Azure Cosmos DB (API SQL)Azure Cosmos DB (SQL API)
  Azure Data Lake Storage Gen1Azure Data Lake Storage Gen1
  Database SQL di AzureAzure SQL Database
  Azure SQL Data WarehouseAzure SQL Data Warehouse
  Indice di Ricerca cognitiva di AzureAzure Cognitive Search Index
  Archivio tabelle di AzureAzure Table storage
DatabaseDatabases 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
  File system*File System*
  FTPFTP
  HDFS*HDFS*
  SFTPSFTP
AltroOthers HTTP genericoGeneric HTTP
  OData genericoGeneric OData
  ODBC generico*Generic ODBC*
  SalesforceSalesforce
  Tabella Web (tabella da HTML)Web Table (table from HTML)

Nota

Gli archivi dati contrassegnati da un asterisco (*) possono essere locali o in IaaS di Azure e richiederanno l'installazione del Gateway di gestione dati in un computer IaaS locale o in Azure.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.

Per altre informazioni, vedere l'articolo Attività di spostamento dei dati.For more information, see Data Movement Activities article.

Attività di trasformazione dei datiData transformation activities

Azure Data Factory supporta le seguenti attività di trasformazione che possono essere aggiunte alle pipeline singolarmente o con un'altra attività concatenata.Azure Data Factory supports the following transformation activities that can be added to pipelines either individually or chained with another activity.

Attività di trasformazione dei datiData transformation activity Ambiente di calcoloCompute environment
HiveHive HDInsight [Hadoop]HDInsight [Hadoop]
PigPig HDInsight [Hadoop]HDInsight [Hadoop]
MapReduceMapReduce HDInsight [Hadoop]HDInsight [Hadoop]
Hadoop StreamingHadoop Streaming HDInsight [Hadoop]HDInsight [Hadoop]
SparkSpark HDInsight [Hadoop]HDInsight [Hadoop]
Attività di Machine Learning: Esecuzione batch e Aggiorna risorsaMachine Learning activities: Batch Execution and Update Resource Macchina virtuale di AzureAzure VM
Stored procedureStored Procedure Azure SQL, Azure SQL Data Warehouse o SQL ServerAzure SQL, Azure SQL Data Warehouse, or SQL Server
Attività U-SQL di Data Lake AnalyticsData Lake Analytics U-SQL Azure Data Lake Analytics.Azure Data Lake Analytics
DotNetDotNet HDInsight [Hadoop] o Batch di AzureHDInsight [Hadoop] or Azure Batch

Nota

È possibile usare l'attività MapReduce per eseguire i programmi Spark nel cluster HDInsight Spark.You can use MapReduce activity to run Spark programs on your HDInsight Spark cluster. Per informazioni dettagliate, vedere Chiamare i programmi Spark da Data Factory .See Invoke Spark programs from Azure Data Factory for details. È possibile creare un'attività personalizzata per eseguire gli script R nel cluster HDInsight con R installato.You can create a custom activity to run R scripts on your HDInsight cluster with R installed. Vedere RunRScriptUsingADFSample(Esempio relativo all'esecuzione di script R con Azure Data Factory).See Run R Script using Azure Data Factory.

Per altre informazioni, vedere l'articolo Attività di trasformazione dei dati.For more information, see Data Transformation Activities article.

Attività .NET personalizzateCustom .NET activities

Per spostare i dati da e verso un archivio dati che non è supportato dall'attività di copia o per trasformare i dati usando la propria logica, creare un'attività .NET personalizzata.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. Per i dettagli sulla creazione e l'uso di un'attività personalizzata, vedere l'articolo Usare attività personalizzate in una pipeline di Azure Data Factory.For details on creating and using a custom activity, see Use custom activities in an Azure Data Factory pipeline.

Pianificare le pipelineSchedule pipelines

Una pipeline è attiva solo tra l'ora di inizio e l'ora di fine.A pipeline is active only between its start time and end time. Non viene eseguita prima dell'ora di inizio o dopo l'ora di fine.It is not executed before the start time or after the end time. Se la pipeline viene sospesa, non viene eseguita indipendentemente dall'ora di inizio e di fine.If the pipeline is paused, it does not get executed irrespective of its start and end time. Per essere eseguita, una pipeline non deve essere in pausa.For a pipeline to run, it should not be paused. Vedere Pianificazione ed esecuzione con Data factory per comprendere il funzionamento della pianificazione e dell'esecuzione in Data factory di Azure.See Scheduling and Execution to understand how scheduling and execution works in Azure Data Factory.

Pipeline JSONPipeline JSON

Osserviamo più da vicino come viene definita una pipeline nel formato JSON.Let us take a closer look on how a pipeline is defined in JSON format. La struttura generica di una pipeline è simile a quella indicata di seguito: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 DescrizioneDescription ObbligatorioRequired
namename Nome della pipeline.Name of the pipeline. Specificare un nome che rappresenti l'azione eseguita dalla pipeline.Specify a name that represents the action that the pipeline performs.
  • Numero massimo di caratteri: 260Maximum number of characters: 260
  • Deve iniziare con una lettera, un numero o un carattere di sottolineatura (_)Must start with a letter number, or an underscore (_)
  • Non sono consentiti i caratteri seguenti: ".", "+", "?", "/", "<", ">", "*", "%", "&", ":", "\"Following characters are not allowed: “.”, “+”, “?”, “/”, “<”,”>”,”*”,”%”,”&”,”:”,”\”
Yes
descriptiondescription Specificare il testo descrittivo che illustra lo scopo della pipeline.Specify the text describing what the pipeline is used for. Yes
attivitàactivities Nella sezione delle attività possono essere definite una o più attività.The activities section can have one or more activities defined within it. Vedere la sezione successiva per informazioni dettagliate sulle attività dell'elemento JSON.See the next section for details about the activities JSON element. Yes
startstart Data e ora di inizio per la pipeline.Start date-time for the pipeline. Devono essere nel formato ISO,Must be in ISO format. Ad esempio: 2016-10-14T16:32:41Z.For example: 2016-10-14T16:32:41Z.

È possibile specificare un'ora locale, ad esempio in base al fuso orario EST.It is possible to specify a local time, for example an EST time. Di seguito viene riportato un esempio: 2016-02-27T06:00:00-05:00, che indica le 06:00 EST.Here is an example: 2016-02-27T06:00:00-05:00", which is 6 AM EST.

Le proprietà start ed end insieme specificano il periodo attivo per la pipeline.The start and end properties together specify active period for the pipeline. Le sezioni di output vengono generate solo in questo periodo attivo.Output slices are only produced with in this active period.
NoNo

Se si specifica un valore per la proprietà di fine, è necessario specificare un valore anche per la proprietà di avvio.If you specify a value for the end property, you must specify value for the start property.

L'ora di inizio e l'ora di fine possono essere entrambe vuote per creare una pipeline.The start and end times can both be empty to create a pipeline. È necessario specificare entrambi i valori per impostare un periodo attivo per l'esecuzione della pipeline.You must specify both values to set an active period for the pipeline to run. Se non si specificano gli orari di inizio e di fine durante la creazione di una pipeline, è possibile impostarli usando il cmdlet Set-AzDataFactoryPipelineActivePeriod in un secondo momento.If you do not specify start and end times when creating a pipeline, you can set them using the Set-AzDataFactoryPipelineActivePeriod cmdlet later.
endend Data e ora di fine per la pipeline.End date-time for the pipeline. Se specificate, devono essere in formato ISO.If specified must be in ISO format. Ad esempio: 2016-10-14T17:32:41ZFor example: 2016-10-14T17:32:41Z

È possibile specificare un'ora locale, ad esempio in base al fuso orario EST.It is possible to specify a local time, for example an EST time. Di seguito è fornito l'esempio 2016-02-27T06:00:00-05:00, che indica le 6 EST.Here is an example: 2016-02-27T06:00:00-05:00, which is 6 AM EST.

Per eseguire la pipeline illimitatamente, specificare 9999-09-09 come valore per la proprietà end.To run the pipeline indefinitely, specify 9999-09-09 as the value for the end property.

Una pipeline è attiva solo tra l'ora di inizio e l’ora di fine.A pipeline is active only between its start time and end time. Non viene eseguita prima dell'ora di inizio o dopo l'ora di fine.It is not executed before the start time or after the end time. Se la pipeline viene sospesa, non viene eseguita indipendentemente dall'ora di inizio e di fine.If the pipeline is paused, it does not get executed irrespective of its start and end time. Per essere eseguita, una pipeline non deve essere in pausa.For a pipeline to run, it should not be paused. Vedere Pianificazione ed esecuzione con Data factory per comprendere il funzionamento della pianificazione e dell'esecuzione in Data factory di Azure.See Scheduling and Execution to understand how scheduling and execution works in Azure Data Factory.
NoNo

Se si specifica un valore per la proprietà di avvio, è necessario specificare un valore anche per la proprietà di fine.If you specify a value for the start property, you must specify value for the end property.

Vedere le note della proprietà start .See notes for the start property.
isPausedisPaused Se impostata su true, la pipeline non viene eseguita.If set to true, the pipeline does not run. È in stato di sospensione.It's in the paused state. Valore predefinito = false.Default value = false. È possibile usare questa proprietà per abilitare o disabilitare una pipeline.You can use this property to enable or disable a pipeline. NoNo
pipelineModepipelineMode Metodo di pianificazione delle esecuzioni per la pipeline.The method for scheduling runs for the pipeline. I valori consentiti sono scheduled (predefinito) e onetime.Allowed values are: scheduled (default), onetime.

"Scheduled" indica che la pipeline viene eseguita a intervalli di tempo specificati in base al periodo di attività, ovvero all'ora di inizio e di fine.‘Scheduled’ indicates that the pipeline runs at a specified time interval according to its active period (start and end time). "Onetime" indica che la pipeline viene eseguita una sola volta.‘Onetime’ indicates that the pipeline runs only once. Al momento, dopo aver creato una pipeline monouso non è possibile modificarla o aggiornarla.Onetime pipelines once created cannot be modified/updated currently. Per informazioni dettagliate sull'impostazione onetime, vedere la sezione Pipeline monouso .See Onetime pipeline for details about onetime setting.
NoNo
expirationTimeexpirationTime Periodo di tempo dopo la creazione in cui la pipeline monouso è valida e deve rimanere con provisioning eseguito.Duration of time after creation for which the one-time pipeline is valid and should remain provisioned. Se non ha esecuzioni attive, non riuscite o in sospeso, quando viene raggiunta la scadenza, la pipeline viene eliminata automaticamente.If it does not have any active, failed, or pending runs, the pipeline is automatically deleted once it reaches the expiration time. Il valore predefinito: "expirationTime": "3.00:00:00"The default value: "expirationTime": "3.00:00:00" NoNo
set di datidatasets Elenco dei set di dati usati dalle attività definite nella pipeline.List of datasets to be used by activities defined in the pipeline. Questa proprietà può essere usata per definire i set di dati specifici di questa pipeline e non definiti all'interno della data factory.This property can be used to define datasets that are specific to this pipeline and not defined within the data factory. I set di dati definiti all'interno di questa pipeline possono essere usati solo da questa pipeline e non possono essere condivisi.Datasets defined within this pipeline can only be used by this pipeline and cannot be shared. Per informazioni dettagliate, vedere la sezione Set di dati con ambito .See Scoped datasets for details. NoNo

Attività JSONActivity JSON

Nella sezione delle attività possono essere definite una o più attività.The activities section can have one or more activities defined within it. Ogni attività presenta la seguente struttura di livello superiore:Each activity has the following top-level structure:

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

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

La tabella seguente descrive le proprietà all'interno della definizione JSON dell'attività:Following table describes properties in the activity JSON definition:

TagTag DescrizioneDescription ObbligatorioRequired
namename Nome dell'attività.Name of the activity. Specificare un nome che rappresenti l'azione eseguita dall'attività.Specify a name that represents the action that the activity performs.
  • Numero massimo di caratteri: 260Maximum number of characters: 260
  • Deve iniziare con una lettera, un numero o un carattere di sottolineatura (_)Must start with a letter number, or an underscore (_)
  • Non sono ammessi i caratteri seguenti: ".", "+", "?", "/", "<", ">", "*", "%", "&", ":", "\"Following characters are not allowed: “.”, “+”, “?”, “/”, “<”,”>”,”*”,”%”,”&”,”:”,”\”
Yes
descriptiondescription Testo descrittivo per il tipo o lo scopo dell'attivitàText describing what the activity or is used for Yes
typetype Tipo di attività.Type of the activity. Per informazioni sui diversi tipi di attività, vedere le sezioni Attività di spostamento dei dati e Attività di trasformazione dei dati.See the Data Movement Activities and Data Transformation Activities sections for different types of activities. Yes
inputsinputs Tabelle di input usate dall'attivitàInput tables used by the activity

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

// two input tables
"inputs": [ { "name": "inputtable1" }, { "name": "inputtable2" } ],
Yes
outputsoutputs Tabelle di output usate dall'attività.Output tables used by the activity.

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

//two output tables
"outputs": [ { "name": "outputtable1" }, { "name": "outputtable2" } ],
Yes
linkedServiceNamelinkedServiceName Nome del servizio collegato usato dall'attività.Name of the linked service used by the activity.

Per un'attività può essere necessario specificare il servizio collegato che collega all'ambiente di calcolo richiesto.An activity may require that you specify the linked service that links to the required compute environment.
Sì per Attività di HDInsight e Attività di assegnazione punteggio batch di Azure Machine LearningYes for HDInsight Activity and Azure Machine Learning Batch Scoring Activity

No per tutto il restoNo for all others
typePropertiestypeProperties Le proprietà nella sezione typeProperties dipendono dal tipo di attività.Properties in the typeProperties section depend on type of the activity. Per visualizzare le proprietà del tipo per un'attività, fare clic sui collegamenti all'attività nella sezione precedente.To see type properties for an activity, click links to the activity in the previous section. NoNo
policypolicy Criteri che influiscono sul comportamento di runtime dell'attività.Policies that affect the run-time behavior of the activity. Se vengono omessi, vengono usati i criteri predefiniti.If it is not specified, default policies are used. NoNo
schedulerscheduler La proprietà "scheduler" viene usata per definire la pianificazione per l'attività.“scheduler” property is used to define desired scheduling for the activity. Le relative proprietà secondarie sono quelle indicate nella sezione Disponibilità dei set di dati.Its subproperties are the same as the ones in the availability property in a dataset. NoNo

CriteriPolicies

I criteri influiscono sul comportamento in fase di esecuzione di un'attività, in particolare quando viene elaborata la sezione di una tabella.Policies affect the run-time behavior of an activity, specifically when the slice of a table is processed. La tabella seguente fornisce informazioni dettagliate.The following table provides the details.

ProprietàProperty Valori consentitiPermitted values Default ValueDefault Value DescrizioneDescription
Concorrenzaconcurrency IntegerInteger

Valore massimo: 10Max value: 10
11 Numero di esecuzioni simultanee dell'attività.Number of concurrent executions of the activity.

Determina il numero di esecuzioni di attività parallele che possono verificarsi in sezioni diverse.It determines the number of parallel activity executions that can happen on different slices. Ad esempio, se un'attività deve passare attraverso grandi set di dati disponibili, con un valore di concorrenza maggiore che consente di velocizzare l'elaborazione dei dati.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 Determina l'ordine delle sezioni di dati che vengono elaborate.Determines the ordering of data slices that are being processed.

Ad esempio nel caso in cui si abbiano 2 sezioni, una alle 16.00 e l'altra alle 17.00, ed entrambe siano in attesa di esecuzione.For example, if you have 2 slices (one happening at 4pm, and another one at 5pm), and both are pending execution. Se si imposta executionPriorityOrder su NewestFirst, viene elaborata per prima la sezione delle 17:00.If you set the executionPriorityOrder to be NewestFirst, the slice at 5 PM is processed first. Allo stesso modo, se si imposta executionPriorityORder su OldestFIrst, verrà elaborata per prima la sezione delle 16:00.Similarly if you set the executionPriorityORder to be OldestFIrst, then the slice at 4 PM is processed.
retryretry IntegerInteger

Valore massimo: 10Max value can be 10
00 Numero di tentativi prima che l'elaborazione dei dati per la sezione sia contrassegnata come errore.Number of retries before the data processing for the slice is marked as Failure. L'esecuzione dell’attività per una sezione di dati viene ritentata fino al numero di tentativi specificato.Activity execution for a data slice is retried up to the specified retry count. Il tentativo viene eseguito appena possibile dopo l'errore.The retry is done as soon as possible after the failure.
timeouttimeout TimeSpanTimeSpan 00:00:0000:00:00 Timeout per l'attività.Timeout for the activity. Esempio: 00:10:00 (implica un timeout di 10 minuti)Example: 00:10:00 (implies timeout 10 mins)

Se un valore non è specificato o è 0, il timeout è infinito.If a value is not specified or is 0, the timeout is infinite.

Se il tempo di elaborazione dei dati in una sezione supera il valore di timeout, viene annullato e il sistema prova a ripetere l'elaborazione.If the data processing time on a slice exceeds the timeout value, it is canceled, and the system attempts to retry the processing. Il numero di tentativi dipende dalla proprietà retry.The number of retries depends on the retry property. Quando si verifica il timeout, lo stato viene impostato su TimedOut.When timeout occurs, the status is set to TimedOut.
delaydelay TimeSpanTimeSpan 00:00:0000:00:00 Specificare il ritardo prima che abbia inizio l'elaborazione dei dati della sezione.Specify the delay before data processing of the slice starts.

L'esecuzione dell'attività per una sezione di dati viene avviata non appena il ritardo supera il tempo di esecuzione previsto.The execution of activity for a data slice is started after the Delay is past the expected execution time.

Esempio: 00:10:00 (implica un ritardo di 10 minuti)Example: 00:10:00 (implies delay of 10 mins)
longRetrylongRetry IntegerInteger

Valore massimo: 10Max value: 10
11 Numero di tentativi estesi prima che l'esecuzione della sezione dia esito negativo.The number of long retry attempts before the slice execution is failed.

I tentativi longRetry sono distanziati da longRetryInterval.longRetry attempts are spaced by longRetryInterval. Pertanto, se è necessario specificare un tempo tra i tentativi, utilizzare longRetry.So if you need to specify a time between retry attempts, use longRetry. Se si specificano sia Retry che longRetry, ogni tentativo longRetry include tentativi Retry e il numero massimo di tentativi corrisponde a Retry * longRetry.If both Retry and longRetry are specified, each longRetry attempt includes Retry attempts and the max number of attempts is Retry * longRetry.

Ad esempio, se si hanno le seguenti impostazioni nel criterio attività: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

si presume che la sezione da eseguire sia solo una, con stato Waiting, e che l'esecuzione dell'attività abbia ogni volta esito negativo.Assume there is only one slice to execute (status is Waiting) and the activity execution fails every time. All’inizio vi saranno tre tentativi di esecuzione consecutivi.Initially there would be 3 consecutive execution attempts. Dopo ogni tentativo, lo stato della sezione sarà Retry.After each attempt, the slice status would be Retry. Una volta terminati i 3 tentativi sulla sezione, lo stato sarà LongRetry.After first 3 attempts are over, the slice status would be LongRetry.

Dopo un'ora (vale a dire il valore di longRetryInteval), verrà eseguita un'altra serie di 3 tentativi di esecuzione consecutivi.After an hour (that is, longRetryInteval’s value), there would be another set of 3 consecutive execution attempts. Al termine, lo stato della sezione sarà Failed e non verranno eseguiti altri tentativi.After that, the slice status would be Failed and no more retries would be attempted. Quindi, sono stati eseguiti 6 tentativi.Hence overall 6 attempts were made.

Se un'esecuzione ha esito positivo, lo stato della sezione sarà Ready e non saranno ripetuti altri tentativi.If any execution succeeds, the slice status would be Ready and no more retries are attempted.

longRetry può essere usato nelle situazioni in cui i dati dipendenti arrivano in orari non deterministici o l'ambiente complessivo in cui si verifica l'elaborazione dei dati è debole.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. In tali casi, l'esecuzione di tentativi consecutivi potrebbe non essere utile, mentre l'applicazione di un intervallo consente di ottenere il risultato voluto.In such cases, doing retries one after another may not help and doing so after an interval of time results in the desired output.

Attenzione: non impostare valori elevati per longRetry o longRetryInterval.Word of caution: do not set high values for longRetry or longRetryInterval. In genere, valori più elevati comportano altri problemi sistemici.Typically, higher values imply other systemic issues.
longRetryIntervallongRetryInterval TimeSpanTimeSpan 00:00:0000:00:00 Il ritardo tra tentativi longRetryThe delay between long retry attempts

Esempio di una pipeline di copiaSample copy pipeline

In questa pipeline di esempio è presente un'attività di tipo Copy in the attività .In the following sample pipeline, there is one activity of type Copy in the activities section. In questo esempio, l'attività di copia consente di copiare i dati da un'archiviazione BLOB di Azure a un database SQL di Azure.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"
  }
}

Tenere presente quanto segue:Note the following points:

  • Nella sezione delle attività esiste una sola attività con l'oggetto type impostato su Copy.In the activities section, there is only one activity whose type is set to Copy.
  • L'input per l'attività è impostato su InputDataset e l'output è impostato su OutputDataset.Input for the activity is set to InputDataset and output for the activity is set to OutputDataset. Vedere l'articolo Set di dati per la definizione di set di dati in JSON.See Datasets article for defining datasets in JSON.
  • Nella sezione typeProperties vengono specificati BlobSource come tipo di origine e SqlSink come tipo di sink.In the typeProperties section, BlobSource is specified as the source type and SqlSink is specified as the sink type. Nella sezione Attività di spostamento dati, scegliere l'archivio dati che si desidera usare come origine o un sink per avere altre informazioni sullo spostamento dei dati da e verso tale archivio dati.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.

Per la procedura completa di creazione di questa pipeline, vedere Esercitazione: copiare i dati dall'archivio BLOB al database SQL.For a complete walkthrough of creating this pipeline, see Tutorial: Copy data from Blob Storage to SQL Database.

Esempio di una pipeline di trasformazioneSample transformation pipeline

In questa pipeline di esempio è presente un'attività di tipo HDInsightHive in the attività .In the following sample pipeline, there is one activity of type HDInsightHive in the activities section. In questo esempio, l' attività Hive di HDInsight trasforma i dati da un archivio BLOB di Azure tramite l'esecuzione di un file di script Hive in un cluster Hadoop di 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
    }
}

Tenere presente quanto segue:Note the following points:

  • Nella sezione attività esiste una sola attività con l'oggetto type impostato su HDInsightHive.In the activities section, there is only one activity whose type is set to HDInsightHive.
  • Il file di script Hive, partitionweblogs.hql, è archiviato nell'account di archiviazione di Azure (specificato da scriptLinkedService, denominato AzureStorageLinkedService) e nella cartella script nel contenitore 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 sezione defines viene usata per specificare le impostazioni di runtime che vengono passate allo script Hive come valori di configurazione Hive, ad esempio ${hiveconf:inputtable} e ${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 sezione typeProperties è diversa per ogni attività di trasformazione.The typeProperties section is different for each transformation activity. Per altre informazioni sulle proprietà del tipo supportate per un'attività di trasformazione, fare clic sull'attività di trasformazione nella tabella Data transformation activities (Attività di trasformazione dati).To learn about type properties supported for a transformation activity, click the transformation activity in the Data transformation activities table.

Per la procedura completa della creazione di questa pipeline, vedere Esercitazione: creare la prima pipeline per elaborare i dati usando il cluster Hadoop.For a complete walkthrough of creating this pipeline, see Tutorial: Build your first pipeline to process data using Hadoop cluster.

Attività multiple in una pipelineMultiple activities in a pipeline

Le due pipeline di due esempio precedenti contengono una sola attività.The previous two sample pipelines have only one activity in them. È possibile avere più di un'attività in una pipeline.You can have more than one activity in a pipeline.

Se si hanno più attività in una pipeline e l'output di un'attività non è l'input di un'altra attività, le attività possono essere eseguite in parallelo se le sezioni di dati di input per le attività sono pronte.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.

È possibile concatenare due attività usando il set di dati di output di un'attività come set di dati di input di altre attività.You can chain two activities by having the output dataset of one activity as the input dataset of the other activity. La seconda attività viene eseguita solo quando la prima viene completata correttamente.The second activity executes only when the first one completes successfully.

Concatenamento di attività nella stessa pipeline

In questo esempio, la pipeline ha due attività: Activity1 e Activity2.In this sample, the pipeline has two activities: Activity1 and Activity2. Activity1 accetta Dataset1 come input e produce un output Dataset2.The Activity1 takes Dataset1 as an input and produces an output Dataset2. Activity2 accetta Dataset2 come input e produce un output Dataset3.The Activity takes Dataset2 as an input and produces an output Dataset3. Poiché l'output di Activity1 (Dataset2) è l'input di Activity2, Activity2 viene eseguita solo in seguito al corretto completamento dell'attività precedente e genera la sezione 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. Se il completamento di Activity1 per qualche motivo non riesce e non produce la sezione Dataset2, Activity2 non viene eseguita per tale sezione, ad esempio dalle 09:00 alle 10:00.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).

È anche possibile concatenare le attività che si trovano in pipeline diverse.You can also chain activities that are in different pipelines.

Concatenamento di attività in due pipeline

In questo esempio, Pipeline1 ha una sola attività che accetta come input Dataset1 e genera come output Dataset2.In this sample, Pipeline1 has only one activity that takes Dataset1 as an input and produces Dataset2 as an output. Pipeline2 ha una sola attività che accetta come input Dataset2 e genera come output Dataset3.The Pipeline2 also has only one activity that takes Dataset2 as an input and Dataset3 as an output.

Per altre informazioni, vedere Pianificazione ed esecuzione.For more information, see scheduling and execution.

Creare e monitorare le pipelineCreate and monitor pipelines

È possibile creare pipeline usando uno di questi strumenti o SDK.You can create pipelines by using one of these tools or SDKs.

  • Copia guidataCopy Wizard
  • Visual StudioVisual Studio
  • Azure PowerShellAzure PowerShell
  • Modello di Azure Resource ManagerAzure Resource Manager template
  • API RESTREST API
  • API .NET.NET API

Vedere le esercitazioni seguenti per istruzioni dettagliate sulla creazione di pipeline tramite uno di questi strumenti o SDK.See the following tutorials for step-by-step instructions for creating pipelines by using one of these tools or SDKs.

Dopo aver creato o distribuito una pipeline, è possibile gestire e monitorare le pipeline usando i pannelli del portale di Azure o con un'app di gestione e monitoraggio.Once a pipeline is created/deployed, you can manage and monitor your pipelines by using the Azure portal blades or Monitor and Manage App. Vedere l'argomento successivo per le istruzioni dettagliate.See the following topics for step-by-step instructions.

Pipeline monousoOnetime pipeline

È possibile creare e pianificare una pipeline da eseguire periodicamente, ad esempio ogni ora o ogni giorno, tra le ore di inizio e di fine specificate nella definizione della 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. Per informazioni dettagliate, vedere la sezione Pianificazione delle attività.See Scheduling activities for details. È anche possibile creare una pipeline che viene eseguita una sola volta.You can also create a pipeline that runs only once. A tale scopo, impostare la proprietà pipelineMode nella definizione della pipeline su onetime, come illustrato nell'esempio JSON seguente.To do so, you set the pipelineMode property in the pipeline definition to onetime as shown in the following JSON sample. Il valore predefinito per questa proprietà è scheduled.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"
    }
}

Tenere presente quanto segue:Note the following:

  • Le ore di inizio e fine della pipeline non vengono specificate.Start and end times for the pipeline are not specified.
  • La disponibilità dei set di dati di input e output viene specificata (frequenza e intervallo) anche se i valori non vengono usati da Data Factory.Availability of input and output datasets is specified (frequency and interval), even though Data Factory does not use the values.
  • Le pipeline monouso non vengono visualizzate nella vista Diagramma.Diagram view does not show one-time pipelines. Questo comportamento dipende dalla progettazione.This behavior is by design.
  • Le pipeline monouso non possono essere aggiornate.One-time pipelines cannot be updated. È possibile clonare una pipeline monouso, rinominarla, aggiornarne le proprietà e distribuirla per crearne un'altra.You can clone a one-time pipeline, rename it, update properties, and deploy it to create another one.

Passaggi successiviNext steps