Esecuzione e trigger di pipeline in Azure Data FactoryPipeline execution and triggers in Azure Data Factory

Una esecuzione di pipeline in Azure Data Factory definisce un'istanza dell'esecuzione di una pipeline.A pipeline run in Azure Data Factory defines an instance of a pipeline execution. Se una pipeline viene eseguita alle ore 8:00, alle 9:00 e alle 10:00, ad esempio,For example, say you have a pipeline that executes at 8:00 AM, 9:00 AM, and 10:00 AM. si hanno tre esecuzioni di pipeline separate.In this case, there are three separate runs of the pipeline, or pipeline runs. ognuna con un ID di esecuzione pipeline univoco.Each pipeline run has a unique pipeline run ID. Un ID di esecuzione è un GUID che definisce in modo univoco la specifica esecuzione della pipeline.A run ID is a GUID that uniquely defines that particular pipeline run.

Le istanze delle esecuzioni di pipeline vengono in genere create passando argomenti ai parametri definiti nelle pipeline.Pipeline runs are typically instantiated by passing arguments to parameters that you define in the pipeline. È possibile eseguire una pipeline manualmente o tramite un trigger.You can execute a pipeline either manually or by using a trigger. Questo articolo fornisce informazioni dettagliate su entrambe le modalità di esecuzione di una pipeline.This article provides details about both ways of executing a pipeline.

Esecuzione manuale (su richiesta)Manual execution (on-demand)

L'esecuzione manuale di una pipeline è detta anche esecuzione su richiesta.The manual execution of a pipeline is also referred to as on-demand execution.

Si supponga ad esempio che sia disponibile una pipeline denominata copyPipeline che si vuole eseguire.For example, say you have a basic pipeline named copyPipeline that you want to execute. La pipeline ha una singola attività che esegue una copia da una cartella di origine in Archiviazione BLOB di Azure a una cartella di destinazione nella stessa risorsa di archiviazione.The pipeline has a single activity that copies from an Azure Blob storage source folder to a destination folder in the same storage. La definizione JSON seguente illustra questa pipeline di esempio:The following JSON definition shows this sample pipeline:

{
    "name": "copyPipeline",
    "properties": {
        "activities": [
            {
                "type": "Copy",
                "typeProperties": {
                    "source": {
                        "type": "BlobSource"
                    },
                    "sink": {
                        "type": "BlobSink"
                    }
                },
                "name": "CopyBlobtoBlob",
                "inputs": [
                    {
                        "referenceName": "sourceBlobDataset",
                        "type": "DatasetReference"
                    }
                ],
                "outputs": [
                    {
                        "referenceName": "sinkBlobDataset",
                        "type": "DatasetReference"
                    }
                ]
            }
        ],
        "parameters": {
            "sourceBlobContainer": {
                "type": "String"
            },
            "sinkBlobContainer": {
                "type": "String"
            }
        }
    }
}

Nella definizione JSON la pipeline accetta due parametri: sourceBlobContainer e sinkBlobContainer.In the JSON definition, the pipeline takes two parameters: sourceBlobContainer and sinkBlobContainer. Passare valori a questi parametri in fase di esecuzione.You pass values to these parameters at runtime.

È possibile eseguire manualmente la pipeline usando uno dei metodi seguenti:You can manually run your pipeline by using one of the following methods:

  • .NET SDK.NET SDK
  • Modulo di Azure PowerShellAzure PowerShell module
  • API RESTREST API
  • Python SDKPython SDK

API RESTREST API

Il comando di esempio seguente illustra come eseguire manualmente la pipeline usando l'API REST:The following sample command shows you how to manually run your pipeline by using the REST API:

POST
https://management.azure.com/subscriptions/mySubId/resourceGroups/myResourceGroup/providers/Microsoft.DataFactory/factories/myDataFactory/pipelines/copyPipeline/createRun?api-version=2017-03-01-preview

Per un esempio completo, vedere Guida introduttiva: Creare una data factory usando l'API REST.For a complete sample, see Quickstart: Create a data factory by using the REST API.

Azure PowerShellAzure PowerShell

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.

Il comando di esempio seguente illustra come eseguire manualmente la pipeline usando Azure PowerShell:The following sample command shows you how to manually run your pipeline by using Azure PowerShell:

Invoke-AzDataFactoryV2Pipeline -DataFactory $df -PipelineName "Adfv2QuickStartPipeline" -ParameterFile .\PipelineParameters.json

I parametri vengono passati nel corpo del payload della richiesta.You pass parameters in the body of the request payload. In .NET SDK, Azure PowerShell e Python SDK passare i valori in un dizionario passato come argomento alla chiamata:In the .NET SDK, Azure PowerShell, and the Python SDK, you pass values in a dictionary that's passed as an argument to the call:

{
  "sourceBlobContainer": "MySourceFolder",
  "sinkBlobContainer": "MySinkFolder"
}

Il payload di risposta è un ID univoco dell'esecuzione della pipeline:The response payload is a unique ID of the pipeline run:

{
  "runId": "0448d45a-a0bd-23f3-90a5-bfeea9264aed"
}

Per un esempio completo, vedere Guida introduttiva: Creare una data factory con Azure PowerShell.For a complete sample, see Quickstart: Create a data factory by using Azure PowerShell.

.NET SDK.NET SDK

La chiamata di esempio seguente illustra come eseguire manualmente la pipeline usando .NET SDK:The following sample call shows you how to manually run your pipeline by using the .NET SDK:

client.Pipelines.CreateRunWithHttpMessagesAsync(resourceGroup, dataFactoryName, pipelineName, parameters)

Per un esempio completo, vedere Guida introduttiva: Creare una data factory e una pipeline con .NET SDK.For a complete sample, see Quickstart: Create a data factory by using the .NET SDK.

Nota

È possibile usare .NET SDK per richiamare le pipeline di Data Factory da Funzioni di Azure, dai propri servizi Web e così via.You can use the .NET SDK to invoke Data Factory pipelines from Azure Functions, from your own web services, and so on.

Attivare l'esecuzioneTrigger execution

I trigger rappresentano una modalità alternativa per attivare una esecuzione di pipeline.Triggers are another way that you can execute a pipeline run. I trigger rappresentano un'unità di elaborazione che determina quando deve essere avviata l'esecuzione di una pipeline.Triggers represent a unit of processing that determines when a pipeline execution needs to be kicked off. Data Factory supporta attualmente tre tipi di trigger:Currently, Data Factory supports three types of triggers:
  • Trigger di pianificazione: un trigger che richiama una pipeline con una pianificazione basata sul tempo reale.Schedule trigger: A trigger that invokes a pipeline on a wall-clock schedule.

  • Trigger di finestra a cascata: un trigger che viene attivato a intervalli periodici, mantenendo al tempo stesso lo stato.Tumbling window trigger: A trigger that operates on a periodic interval, while also retaining state.

  • Trigger basato su eventi: un trigger che risponde a un evento.Event-based trigger: A trigger that responds to an event.

Pipeline e trigger hanno una relazione molti-a-molti (ad eccezione del trigger della finestra a cascata). Più trigger possono avviare una singola pipeline o un singolo trigger può avviare più pipeline.Pipelines and triggers have a many-to-many relationship (except for the tumbling window trigger).Multiple triggers can kick off a single pipeline, or a single trigger can kick off multiple pipelines. Nella definizione di trigger seguente la proprietà pipelines fa riferimento a un elenco di pipeline attivate dal trigger specifico.In the following trigger definition, the pipelines property refers to a list of pipelines that are triggered by the particular trigger. La definizione della proprietà include i valori dei parametri della pipeline.The property definition includes values for the pipeline parameters.

Definizione del trigger di baseBasic trigger definition

{
    "properties": {
        "name": "MyTrigger",
        "type": "<type of trigger>",
        "typeProperties": {...},
        "pipelines": [
            {
                "pipelineReference": {
                    "type": "PipelineReference",
                    "referenceName": "<Name of your pipeline>"
                },
                "parameters": {
                    "<parameter 1 Name>": {
                        "type": "Expression",
                        "value": "<parameter 1 Value>"
                    },
                    "<parameter 2 Name>": "<parameter 2 Value>"
                }
            }
        ]
    }
}

Trigger di pianificazioneSchedule trigger

Un trigger di pianificazione esegue le pipeline con una pianificazione basata sul tempo reale.A schedule trigger runs pipelines on a wall-clock schedule. Questo trigger supporta opzioni di calendario periodiche e avanzate.This trigger supports periodic and advanced calendar options. Il trigger supporta, ad esempio, intervalli come "settimanale" o "Lunedì alle 17:00 e giovedì alle 21:00".For example, the trigger supports intervals like "weekly" or "Monday at 5:00 PM and Thursday at 9:00 PM." Il trigger di pianificazione è flessibile perché il criterio del set di dati è indipendente e il trigger non distingue tra dati di serie temporali e non temporali.The schedule trigger is flexible because the dataset pattern is agnostic, and the trigger doesn't discern between time-series and non-time-series data.

Per altre informazioni ed esempi sui trigger di pianificazione, vedere Creare un trigger di pianificazione.For more information about schedule triggers and for examples, see Create a schedule trigger.

Definizione del trigger di pianificazioneSchedule trigger definition

Quando si crea un trigger di pianificazione, si specificano la pianificazione e la ricorrenza usando una definizione JSON.When you create a schedule trigger, you specify scheduling and recurrence by using a JSON definition.

Per fare in modo che il trigger di pianificazione attivi l'esecuzione di una pipeline, includere un riferimento di pipeline della pipeline specifica nella definizione del trigger.To have your schedule trigger kick off a pipeline run, include a pipeline reference of the particular pipeline in the trigger definition. Pipeline e trigger hanno una relazione molti-a-molti.Pipelines and triggers have a many-to-many relationship. Più trigger possono attivare una singola pipeline.Multiple triggers can kick off a single pipeline. Un singolo trigger può attivare più pipeline.A single trigger can kick off multiple pipelines.

{
  "properties": {
    "type": "ScheduleTrigger",
    "typeProperties": {
      "recurrence": {
        "frequency": <<Minute, Hour, Day, Week, Year>>,
        "interval": <<int>>, // How often to fire
        "startTime": <<datetime>>,
        "endTime": <<datetime>>,
        "timeZone": "UTC",
        "schedule": { // Optional (advanced scheduling specifics)
          "hours": [<<0-24>>],
          "weekDays": [<<Monday-Sunday>>],
          "minutes": [<<0-60>>],
          "monthDays": [<<1-31>>],
          "monthlyOccurrences": [
            {
              "day": <<Monday-Sunday>>,
              "occurrence": <<1-5>>
            }
          ]
        }
      }
    },
  "pipelines": [
    {
      "pipelineReference": {
        "type": "PipelineReference",
        "referenceName": "<Name of your pipeline>"
      },
      "parameters": {
        "<parameter 1 Name>": {
          "type": "Expression",
          "value": "<parameter 1 Value>"
        },
        "<parameter 2 Name>": "<parameter 2 Value>"
      }
    }
  ]}
}

Importante

La proprietà parameters è una proprietà obbligatoria dell'elemento pipelines.The parameters property is a mandatory property of the pipelines element. Se la pipeline non accetta parametri, è necessario includere una definizione JSON vuota per la proprietà parameters.If your pipeline doesn't take any parameters, you must include an empty JSON definition for the parameters property.

Panoramica dello schemaSchema overview

La tabella seguente fornisce una panoramica generale degli elementi dello schema principali correlati alla ricorrenza e alla pianificazione di un trigger:The following table provides a high-level overview of the major schema elements that are related to recurrence and scheduling a trigger:

Proprietà JSONJSON property DescrizioneDescription
startTimestartTime Valore data-ora.A date-time value. Per le pianificazioni di base, il valore della proprietà startTime si applica alla prima occorrenza.For basic schedules, the value of the startTime property applies to the first occurrence. Per le pianificazioni complesse, il trigger viene attivato non prima del valore startTime specificato.For complex schedules, the trigger starts no sooner than the specified startTime value.
endTimeendTime Data e ora di fine per il trigger.The end date and time for the trigger. Il trigger non viene eseguito dopo la data e l'ora di fine specificate.The trigger doesn't execute after the specified end date and time. Il valore della proprietà non può essere nel passato.The value for the property can't be in the past.
timeZonetimeZone Fuso orario.The time zone. È attualmente supportato solo il fuso orario UTC.Currently, only the UTC time zone is supported.
recurrencerecurrence Oggetto recurrence che specifica le regole di ricorrenza per il trigger.A recurrence object that specifies the recurrence rules for the trigger. L'oggetto recurrence supporta gli elementi frequency, interval, endTime, count e schedule.The recurrence object supports the frequency, interval, endTime, count, and schedule elements. Quando viene definito un oggetto recurrence, l'elemento frequency è obbligatorio.When a recurrence object is defined, the frequency element is required. Gli altri elementi dell'oggetto recurrence sono facoltativi.The other elements of the recurrence object are optional.
frequencyfrequency Unità di frequenza con cui il trigger si ripete.The unit of frequency at which the trigger recurs. I valori supportati includono "minute", "hour", "day", "week" e "month".The supported values include "minute", "hour", "day", "week", and "month".
intervalinterval Numero intero positivo indicante l'intervallo per il valore frequency.A positive integer that denotes the interval for the frequency value. Il valore frequency determina la frequenza con cui viene eseguito il trigger.The frequency value determines how often the trigger runs. Se, ad esempio, interval è 3 e frequency è "week", il trigger si ripete ogni tre settimane.For example, if the interval is 3 and the frequency is "week", the trigger recurs every three weeks.
scheduleschedule Pianificazione della ricorrenza per il trigger.The recurrence schedule for the trigger. Un trigger con un valore frequency specificato modifica la ricorrenza in base a una pianificazione di ricorrenza.A trigger with a specified frequency value alters its recurrence based on a recurrence schedule. La proprietà schedule contiene modifiche per la ricorrenza basate su minuti, ore, giorni della settimana, giorni del mese e numero della settimana.The schedule property contains modifications for the recurrence that are based on minutes, hours, week days, month days, and week number.

Esempio di trigger di pianificazioneSchedule trigger example

{
    "properties": {
        "name": "MyTrigger",
        "type": "ScheduleTrigger",
        "typeProperties": {
            "recurrence": {
                "frequency": "Hour",
                "interval": 1,
                "startTime": "2017-11-01T09:00:00-08:00",
                "endTime": "2017-11-02T22:00:00-08:00"
            }
        },
        "pipelines": [{
                "pipelineReference": {
                    "type": "PipelineReference",
                    "referenceName": "SQLServerToBlobPipeline"
                },
                "parameters": {}
            },
            {
                "pipelineReference": {
                    "type": "PipelineReference",
                    "referenceName": "SQLServerToAzureSQLPipeline"
                },
                "parameters": {}
            }
        ]
    }
}

Impostazioni predefinite dello schema, limiti ed esempiSchema defaults, limits, and examples

Proprietà JSONJSON property TipoType ObbligatorioRequired Valore predefinitoDefault value Valori validiValid values EsempioExample
startTimestartTime stringastring Yes NessunaNone Date-ore ISO 8601ISO 8601 date-times "startTime" : "2013-01-09T09:30:00-08:00"
recurrencerecurrence oggettoobject Yes NessunaNone Oggetto recurrenceA recurrence object "recurrence" : { "frequency" : "monthly", "interval" : 1 }
intervalinterval numbernumber NoNo 11 Da 1 a 10001 to 1000 "interval":10
endTimeendTime stringastring Yes NessunaNone Valore di data e ora che fa riferimento a un momento nel futuroA date-time value that represents a time in the future "endTime" : "2013-02-09T09:30:00-08:00"
scheduleschedule oggettoobject NoNo NessunaNone Oggetto scheduleA schedule object "schedule" : { "minute" : [30], "hour" : [8,17] }

Proprietà startTimestartTime property

La tabella seguente illustra come la proprietà startTime controlla l'esecuzione di un trigger:The following table shows you how the startTime property controls a trigger run:

Valore startTimestartTime value Ricorrenza senza pianificazioneRecurrence without schedule Ricorrenza con pianificazioneRecurrence with schedule
L'ora di inizio è nel passatoStart time is in the past Calcola l'ora della prima esecuzione futura dopo l'ora di inizio e avvia l'esecuzione in corrispondenza di tale ora.Calculates the first future execution time after the start time, and runs at that time.

Avvia le esecuzioni successive calcolate a partire dall'ora dell'ultima esecuzione.Runs subsequent executions calculated from the last execution time.

Vedere l'esempio sotto a questa tabella.See the example that follows this table.
Il trigger viene avviato non prima dell'ora di inizio specificata.The trigger starts no sooner than the specified start time. La prima occorrenza è basata sulla pianificazione, calcolata a partire dall'ora di inizio.The first occurrence is based on the schedule, calculated from the start time.

Avvia le esecuzioni successive in base alla pianificazione di ricorrenza.Runs subsequent executions based on the recurrence schedule.
L'ora di inizio è nel futuro o nel presenteStart time is in the future or the current time Avvia l'esecuzione una sola volta all'ora di inizio specificata.Runs once at the specified start time.

Avvia le esecuzioni successive calcolate a partire dall'ora dell'ultima esecuzione.Runs subsequent executions calculated from the last execution time.
Il trigger viene avviato non prima dell'ora di inizio specificata.The trigger starts no sooner than the specified start time. La prima occorrenza è basata sulla pianificazione, calcolata a partire dall'ora di inizio.The first occurrence is based on the schedule, calculated from the start time.

Avvia le esecuzioni successive in base alla pianificazione di ricorrenza.Runs subsequent executions based on the recurrence schedule.

È possibile esaminare uno scenario in cui l'ora di inizio è nel passato, con una ricorrenza, ma nessuna pianificazione.Let's look at an example of what happens when the start time is in the past, with a recurrence, but no schedule. Si supponga che l'ora corrente sia le 13:00 del 08/04/2017, l'ora di inizio sia le 14:00 del 07/04/2017 e la ricorrenza sia ogni due giorni.Assume that the current time is 2017-04-08 13:00, the start time is 2017-04-07 14:00, and the recurrence is every two days. Il valore di ricorrenza viene definito impostando la proprietà Frequency su "Day" e la proprietà Interval su 2. Si noti che il valore di StartTime è nel passato e si verifica prima dell'ora corrente.(The recurrence value is defined by setting the frequency property to "day" and the interval property to 2.) Notice that the startTime value is in the past and occurs before the current time.

In queste condizioni, la prima esecuzione avviene il 9 aprile 2017 alle 14:00.Under these conditions, the first execution is 2017-04-09 at 14:00. Il motore dell'utilità di pianificazione calcola le occorrenze dall'ora di inizio dell'esecuzione.The Scheduler engine calculates execution occurrences from the start time. Vengono eliminate tutte le istanze in passato.Any instances in the past are discarded. Il motore utilizza l'istanza successiva che si verifica in futuro.The engine uses the next instance that occurs in the future. In questo scenario l'ora di inizio corrisponde alle 14:00 del 07/04/2017.In this scenario, the start time is 2017-04-07 at 2:00 PM. L'istanza successiva viene eseguita due giorni dopo tale orario, ovvero alle 14:00 del 09/04/2017.The next instance is two days from that time, which is on 2017-04-09 at 2:00 PM.

Si noti che la prima esecuzione sarebbe la stessa anche se startTime fosse alle 14:00 del 05/04/2017 o alle 14:00 del 01/04/2017.The first execution time is the same even whether startTime is 2017-04-05 14:00 or 2017-04-01 14:00. Dopo la prima esecuzione, le esecuzioni successive vengono calcolate in base alla pianificazione.After the first execution, subsequent executions are calculated by using the schedule. Le esecuzioni successive saranno alle 14:00 dell'11/04/2017, quindi alle 14:00 del 13/04/2017, alle 14:00 del 15/04/2017 e così via.Therefore, the subsequent executions are on 2017-04-11 at 2:00 PM, then on 2017-04-13 at 2:00 PM, then on 2017-04-15 at 2:00 PM, and so on.

Quando infine le ore o i minuti non sono impostati nella pianificazione di un trigger, le ore o i minuti della prima esecuzione vengono usati come impostazioni predefinite.Finally, when hours or minutes aren’t set in the schedule for a trigger, the hours or minutes of the first execution are used as defaults.

Proprietà scheduleschedule property

È possibile usare schedule per limitare il numero di esecuzioni del trigger.You can use schedule to limit the number of trigger executions. Se ad esempio la pianificazione di un trigger con frequenza mensile prevede l'esecuzione solo il giorno 31, il trigger viene eseguito solo nei mesi che includono trentuno giorni.For example, if a trigger with a monthly frequency is scheduled to run only on day 31, the trigger runs only in those months that have a thirty-first day.

È anche possibile usare schedule per espandere il numero di esecuzioni del trigger.You can also use schedule to expand the number of trigger executions. Ad esempio, un trigger con una frequenza mensile la cui esecuzione è pianificata per i giorni 1 e 2 del mese viene eseguito il primo e il secondo giorno del mese, invece che una volta al mese.For example, a trigger with a monthly frequency that's scheduled to run on month days 1 and 2, runs on the first and second days of the month, rather than once a month.

Se vengono specificati più elementi schedule, la valutazione viene eseguita a partire dall'impostazione più grande della pianificazione fino a quella più piccola, ovvero, numero della settimana, giorno del mese, giorno della settimana, ora e minuto.If multiple schedule elements are specified, the order of evaluation is from the largest to the smallest schedule setting: week number, month day, week day, hour, minute.

La tabella seguente illustra in modo dettagliato gli elementi schedule:The following table describes the schedule elements in detail:

Elemento JSONJSON element DescrizioneDescription Valori validiValid values
minutesminutes Minuti dell'ora in cui verrà eseguito il trigger.Minutes of the hour at which the trigger runs. - Numero intero- Integer
- Matrice di numeri interi- Array of integers
hourshours Ore del giorno in cui verrà eseguito il trigger.Hours of the day at which the trigger runs. - Numero intero- Integer
- Matrice di numeri interi- Array of integers
weekDaysweekDays Giorni della settimana in cui verrà eseguito il trigger.Days of the week the trigger runs. Il valore può essere specificato solo con una frequenza settimanale.The value can be specified only with a weekly frequency.
- Monday- Monday
- Tuesday- Tuesday
- Wednesday- Wednesday
- Thursday- Thursday
- Friday- Friday
- Saturday- Saturday
- Sunday- Sunday
- Matrice di valori relativi ai giorni (la dimensione massima della matrice è 7)- Array of day values (maximum array size is 7)

I valori dei giorni non fanno distinzione tra maiuscole e minuscoleDay values are not case-sensitive
monthlyOccurrencesmonthlyOccurrences Giorni del mese in cui verrà eseguito il trigger.Days of the month on which the trigger runs. Il valore può essere specificato solo con una frequenza mensile.The value can be specified with a monthly frequency only. - Matrice di oggetti monthlyOccurrence: { "day": day, "occurrence": occurrence }- Array of monthlyOccurrence objects: { "day": day, "occurrence": occurrence }
- L'attributo day è il giorno della settimana in cui verrà eseguito il trigger.- The day attribute is the day of the week on which the trigger runs. Ad esempio, una proprietà monthlyOccurrences con un valore day uguale a {Sunday} indica ogni domenica del mese.For example, a monthlyOccurrences property with a day value of {Sunday} means every Sunday of the month. L'attributo day è obbligatorio.The day attribute is required.
- L'attributo occurrence indica l'occorrenza dell'attributo day specificato durante il mese.- The occurrence attribute is the occurrence of the specified day during the month. Ad esempio, una proprietà monthlyOccurrences con i valori day e occurrence uguali a {Sunday, -1} indica l'ultima domenica del mese.For example, a monthlyOccurrences property with day and occurrence values of {Sunday, -1} means the last Sunday of the month. L'attributo occurrence è facoltativo.The occurrence attribute is optional.
monthDaysmonthDays Giorno del mese in cui verrà eseguito il trigger.Day of the month on which the trigger runs. Il valore può essere specificato solo con una frequenza mensile.The value can be specified with a monthly frequency only. - Qualsiasi valore <= -1 e >= -31- Any value <= -1 and >= -31
- Qualsiasi valore >= 1 e <= 31- Any value >= 1 and <= 31
- Matrice di valori- Array of values

Trigger di finestra a cascataTumbling window trigger

I trigger di finestra a cascata vengono attivati in base a un intervallo di tempo periodico a partire da un'ora di inizio specificata, mantenendo al tempo stesso lo stato.Tumbling window triggers are a type of trigger that fires at a periodic time interval from a specified start time, while retaining state. Le finestre a cascata sono costituite da una serie di intervalli temporali di dimensioni fisse, contigui e non sovrapposti.Tumbling windows are a series of fixed-sized, non-overlapping, and contiguous time intervals.

Per altre informazioni ed esempi sui trigger di finestra a cascata, vedere Creare un trigger di finestra a cascata.For more information about tumbling window triggers and for examples, see Create a tumbling window trigger.

Trigger basato su eventiEvent-based trigger

Un trigger basato su eventi esegue le pipeline in risposta a un evento, ad esempio l'arrivo di un file o l'eliminazione di un file in Archiviazione BLOB di Azure.An event-based trigger runs pipelines in response to an event, such as the arrival of a file, or the deletion of a file, in Azure Blob Storage.

Per altre informazioni sui trigger basati su eventi, vedere Create a trigger that runs a pipeline in response to an event (Creare un trigger che esegue una pipeline in risposta a un evento).For more information about event-based triggers, see Create a trigger that runs a pipeline in response to an event.

Esempi di pianificazioni di ricorrenza del triggerExamples of trigger recurrence schedules

Questa sezione fornisce esempi di pianificazioni di ricorrenza.This section provides examples of recurrence schedules. È incentrata sull'oggetto schedule e sui rispettivi elementi.It focuses on the schedule object and its elements.

Gli esempi presumono che il valore interval sia 1 e che il valore frequency sia corretto in base alla definizione della pianificazione.The examples assume that the interval value is 1, and that the frequency value is correct according to the schedule definition. Non è ad esempio possibile avere un valore frequency uguale a "day" e anche una modifica monthDays nell'oggetto schedule.For example, you can't have a frequency value of "day" and also have a monthDays modification in the schedule object. Questi tipi di restrizioni vengono descritti nella tabella disponibile nella sezione precedente.These kinds of restrictions are described in the table in the preceding section.

EsempioExample DescrizioneDescription
{"hours":[5]} Viene eseguito alle 5:00 ogni giorno.Run at 5:00 AM every day.
{"minutes":[15], "hours":[5]} Viene eseguito alle 05:15 ogni giorno.Run at 5:15 AM every day.
{"minutes":[15], "hours":[5,17]} Viene eseguito alle 05:15 e alle 17:15 ogni giorno.Run at 5:15 AM and 5:15 PM every day.
{"minutes":[15,45], "hours":[5,17]} Viene eseguito alle 05:15, alle 05:45, alle 17:15 e alle 17:45 ogni giorno.Run at 5:15 AM, 5:45 AM, 5:15 PM, and 5:45 PM every day.
{"minutes":[0,15,30,45]} Viene eseguito ogni 15 minuti.Run every 15 minutes.
{hours":[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]} Viene eseguito ogni ora.Run every hour.

Il trigger viene eseguito ogni ora.This trigger runs every hour. I minuti vengono controllati dal valore startTime, se specificato.The minutes are controlled by the startTime value, when a value is specified. Se non è specificato un valore, i minuti vengono controllati dall'ora di creazione.If a value isn't specified, the minutes are controlled by the creation time. Se ad esempio l'ora di inizio o l'ora di creazione (qualunque delle due si applichi) è 12:25, il trigger viene eseguito alle 00:25, 01:25, 02:25, ..., 23:25.For example, if the start time or creation time (whichever applies) is 12:25 PM, the trigger runs at 00:25, 01:25, 02:25, ..., and 23:25.

Questa pianificazione equivale a un trigger con un valore frequency pari a "hour", un valore interval di 1 e nessun oggetto schedule.This schedule is equivalent to having a trigger with a frequency value of "hour", an interval value of 1, and no schedule. Questa pianificazione può essere usata con valori diversi per frequency e interval per creare altri trigger.This schedule can be used with different frequency and interval values to create other triggers. Quando ad esempio il valore frequency è "month", la pianificazione viene eseguita solo una volta al mese, invece che ogni giorno, quando il valore frequency è "day".For example, when the frequency value is "month", the schedule runs only once a month, rather than every day when the frequency value is "day".
{"minutes":[0]} Viene eseguito ogni ora all'inizio dell'ora.Run every hour on the hour.

Questo trigger viene eseguito ogni ora con l'ora che inizia alle 00:00, 01:00, 02:00 e così via.This trigger runs every hour on the hour starting at 12:00 AM, 1:00 AM, 2:00 AM, and so on.

Questa pianificazione equivale a un trigger con un valore frequency pari a "hour" e un valore startTime di zero minuti e nessun oggetto schedule, ma un valore frequency pari a "day".This schedule is equivalent to a trigger with a frequency value of "hour" and a startTime value of zero minutes, and no schedule but a frequency value of "day". Se il valore frequency è "week" o "month", la pianificazione viene eseguita rispettivamente solo una volta alla settimana o una volta al giorno.If the frequency value is "week" or "month", the schedule executes one day a week or one day a month only, respectively.
{"minutes":[15]} Viene eseguito 15 minuti dopo l'inizio di ogni ora.Run at 15 minutes past every hour.

Questo trigger viene eseguito ogni ora, 15 minuti dopo l'inizio dell'ora a partire dalle 00:15, 01:15, 02:15 e così via e terminando alle 23:15.This trigger runs every hour at 15 minutes past the hour starting at 00:15 AM, 1:15 AM, 2:15 AM, and so on, and ending at 11:15 PM.
{"hours":[17], "weekDays":["saturday"]} Viene eseguito alle 17:00 di ogni sabato.Run at 5:00 PM on Saturdays every week.
{"hours":[17], "weekDays":["monday", "wednesday", "friday"]} Viene eseguito alle 17:00 di ogni lunedì, mercoledì e venerdì.Run at 5:00 PM on Monday, Wednesday, and Friday every week.
{"minutes":[15,45], "hours":[17], "weekDays":["monday", "wednesday", "friday"]} Viene eseguito alle 17:15 e alle 17:45 di ogni lunedì, mercoledì e venerdì.Run at 5:15 PM and 5:45 PM on Monday, Wednesday, and Friday every week.
{"minutes":[0,15,30,45], "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} Viene eseguito ogni 15 minuti nei giorni feriali.Run every 15 minutes on weekdays.
{"minutes":[0,15,30,45], "hours": [9, 10, 11, 12, 13, 14, 15, 16] "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} Viene eseguito ogni 15 minuti nei giorni feriali tra le 09:00 e le 16:45.Run every 15 minutes on weekdays between 9:00 AM and 4:45 PM.
{"weekDays":["tuesday", "thursday"]} Viene eseguito ogni martedì e giovedì all'ora di inizio specificata.Run on Tuesdays and Thursdays at the specified start time.
{"minutes":[0], "hours":[6], "monthDays":[28]} Viene eseguito alle 6:00 del ventottesimo giorno di ogni mese, supponendo che il valore di frequency sia "month".Run at 6:00 AM on the twenty-eighth day of every month (assuming a frequency value of "month").
{"minutes":[0], "hours":[6], "monthDays":[-1]} Viene eseguito alle 06:00 dell'ultimo giorno di ogni mese.Run at 6:00 AM on the last day of the month.

Per eseguire un trigger l'ultimo giorno del mese, usare -1 invece del giorno 28, 29, 30 o 31.To run a trigger on the last day of a month, use -1 instead of day 28, 29, 30, or 31.
{"minutes":[0], "hours":[6], "monthDays":[1,-1]} Viene eseguito alle 06:00 il primo e l'ultimo giorno di ogni mese.Run at 6:00 AM on the first and last day of every month.
{monthDays":[1,14]} Viene eseguito il primo e il quattordicesimo giorno di ogni mese all'ora di inizio.Run on the first and fourteenth day of every month at the specified start time.
{"minutes":[0], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1}]} Viene eseguito il primo venerdì di ogni mese alle 05:00.Run on the first Friday of every month at 5:00 AM.
{"monthlyOccurrences":[{"day":"friday", "occurrence":1}]} Viene eseguito il primo venerdì di ogni mese all'ora di inizio specificata.Run on the first Friday of every month at the specified start time.
{"monthlyOccurrences":[{"day":"friday", "occurrence":-3}]} Viene eseguito il terzultimo venerdì di ogni mese, all'ora di inizio specificata.Run on the third Friday from the end of the month, every month, at the specified start time.
{"minutes":[15], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} Viene eseguito il primo e l'ultimo venerdì di ogni mese alle 05:15.Run on the first and last Friday of every month at 5:15 AM.
{"monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} Viene eseguito il primo e l'ultimo venerdì di ogni mese all'ora di inizio specificata.Run on the first and last Friday of every month at the specified start time.
{"monthlyOccurrences":[{"day":"friday", "occurrence":5}]} Viene eseguito il quinto venerdì di ogni mese all'ora di inizio specificata.Run on the fifth Friday of every month at the specified start time.

Quando in un mese non sono inclusi cinque venerdì, la pipeline non viene eseguita.When there's no fifth Friday in a month, the pipeline doesn't run. È consigliabile usare -1 invece di 5 per il valore occurrence per eseguire il trigger l'ultimo venerdì del mese.To run the trigger on the last occurring Friday of the month, consider using -1 instead of 5 for the occurrence value.
{"minutes":[0,15,30,45], "monthlyOccurrences":[{"day":"friday", "occurrence":-1}]} Viene eseguito ogni 15 minuti l'ultimo venerdì del mese.Run every 15 minutes on the last Friday of the month.
{"minutes":[15,45], "hours":[5,17], "monthlyOccurrences":[{"day":"wednesday", "occurrence":3}]} Viene eseguito alle 05:15, 05:45, 17:15 e 17:45 il terzo mercoledì di ogni mese.Run at 5:15 AM, 5:45 AM, 5:15 PM, and 5:45 PM on the third Wednesday of every month.

Confronto dei tipi di triggerTrigger type comparison

Il trigger di finestra a cascata e il trigger di pianificazione funzionano entrambi in base agli heartbeat temporali,The tumbling window trigger and the schedule trigger both operate on time heartbeats. ma presentano alcune differenze.How are they different?

La tabella seguente contiene un confronto del trigger di finestra a cascata e del trigger di pianificazione:The following table provides a comparison of the tumbling window trigger and schedule trigger:

Trigger di finestra a cascataTumbling window trigger Trigger di pianificazioneSchedule trigger
Scenari di recupero delle informazioniBackfill scenarios Supportato.Supported. Si possono pianificare esecuzioni della pipeline per finestre nel passato.Pipeline runs can be scheduled for windows in the past. Non supportati.Not supported. Le esecuzioni della pipeline possono essere eseguite solo in periodi di tempo compresi tra il momento corrente e il futuro.Pipeline runs can be executed only on time periods from the current time and the future.
AffidabilitàReliability 100% di affidabilità.100% reliability. Le esecuzioni della pipeline possono essere pianificate per tutte le finestre da una data di inizio specificata senza intervalli.Pipeline runs can be scheduled for all windows from a specified start date without gaps. Meno affidabile.Less reliable.
Funzionalità di ripetizione dei tentativiRetry capability Supportato.Supported. Le esecuzioni non riuscite delle pipeline hanno un criterio di ripetizione predefinito pari a 0 oppure un criterio specificato dall'utente nella definizione di un trigger.Failed pipeline runs have a default retry policy of 0, or a policy that's specified by the user in the trigger definition. Esegue automaticamente un nuovo tentativo quando le esecuzioni della pipeline non riescono a causa di limiti di concorrenza/server/limitazione delle richieste (codici di stato 400: Errore utente, 429: Troppe richieste e 500: Errore interno del server).Automatically retries when pipeline runs fail due to concurrency/server/throttling limits (that is, status codes 400: User Error, 429: Too many requests, and 500: Internal Server error). Non supportati.Not supported.
ConcorrenzaConcurrency Supportato.Supported. Gli utenti possono impostare in modo esplicito i limiti di concorrenza per il trigger.Users can explicitly set concurrency limits for the trigger. Consente un numero di esecuzioni di pipeline simultanee attivate compreso tra 1 e 50.Allows between 1 and 50 concurrent triggered pipeline runs. Non supportati.Not supported.
Variabili di sistemaSystem variables Supporta l'uso delle variabili di sistema WindowStart e WindowEnd.Supports the use of the WindowStart and WindowEnd system variables. Gli utenti possono accedere a triggerOutputs().windowStartTime e a triggerOutputs().windowEndTime come variabile di sistema del trigger nella definizione del trigger.Users can access triggerOutputs().windowStartTime and triggerOutputs().windowEndTime as trigger system variables in the trigger definition. I valori vengono usati rispettivamente come ora di inizio della finestra e ora di fine della finestra.The values are used as the window start time and window end time, respectively. Ad esempio, per un trigger di finestra a cascata che viene eseguito ogni ora, per la finestra compresa tra la 01:00 e le 02:00, la definizione è triggerOutputs().WindowStartTime = 2017-09-01T01:00:00Z e triggerOutputs().WindowEndTime = 2017-09-01T02:00:00Z.For example, for a tumbling window trigger that runs every hour, for the window 1:00 AM to 2:00 AM, the definition is triggerOutputs().WindowStartTime = 2017-09-01T01:00:00Z and triggerOutputs().WindowEndTime = 2017-09-01T02:00:00Z. Non supportati.Not supported.
Relazione tra pipeline e triggerPipeline-to-trigger relationship Supporta una relazione uno a uno.Supports a one-to-one relationship. Può essere attivata una sola pipeline.Only one pipeline can be triggered. Supporta relazioni molti a molti.Supports many-to-many relationships. Più trigger possono attivare una singola pipeline.Multiple triggers can kick off a single pipeline. Un singolo trigger può attivare più pipeline.A single trigger can kick off multiple pipelines.

Passaggi successiviNext steps

Vedere le esercitazioni seguenti:See the following tutorials: