Ejecución y desencadenadores de canalización en Azure Data FactoryPipeline execution and triggers in Azure Data Factory

Una ejecución de canalización en Azure Data Factory define una instancia de dicha ejecución.A pipeline run in Azure Data Factory defines an instance of a pipeline execution. Por ejemplo, supongamos que tiene una canalización que se ejecuta las 8:00 a. m., 9:00 a. m. y 10:00 a. m.For example, say you have a pipeline that executes at 8:00 AM, 9:00 AM, and 10:00 AM. En este caso, hay tres ejecuciones independientes de la canalización o ejecuciones de canalización.In this case, there are three separate runs of the pipeline, or pipeline runs. Cada canalización ejecutar tiene un identificador de canalización único.Each pipeline run has a unique pipeline run ID. El identificador de ejecución es un GUID que define de forma exclusiva una ejecución de canalización concreta.A run ID is a GUID that uniquely defines that particular pipeline run.

Normalmente las instancias de ejecuciones de canalización se crean al pasar argumentos a parámetros que se definen en las canalizaciones.Pipeline runs are typically instantiated by passing arguments to parameters that you define in the pipeline. Puede ejecutar una canalización manualmente o mediante un desencadenador.You can execute a pipeline either manually or by using a trigger. En este artículo se proporcionan detalles sobre ambas maneras de ejecutar una canalización.This article provides details about both ways of executing a pipeline.

Ejecución manual (a petición)Manual execution (on-demand)

La ejecución manual de una canalización también se conoce como ejecución a petición.The manual execution of a pipeline is also referred to as on-demand execution.

Por ejemplo, supongamos que tiene una canalización básica denominada copyPipeline que desea ejecutar.For example, say you have a basic pipeline named copyPipeline that you want to execute. La canalización tiene una única actividad que copia de una carpeta de origen en Azure Blob Storage a una carpeta de destino en el mismo almacenamiento.The pipeline has a single activity that copies from an Azure Blob storage source folder to a destination folder in the same storage. En la siguiente definición de JSON se muestra esta canalización de ejemplo: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"
            }
        }
    }
}

En la definición de JSON, la canalización toma dos parámetros: sourceBlobContainer y sinkBlobContainer.In the JSON definition, the pipeline takes two parameters: sourceBlobContainer and sinkBlobContainer. Los valores se pasan a estos parámetros en tiempo de ejecución.You pass values to these parameters at runtime.

Puede ejecutar manualmente la canalización mediante uno de los métodos siguientes:You can manually run your pipeline by using one of the following methods:

  • .NET SDK.NET SDK
  • Módulo de Azure PowerShellAzure PowerShell module
  • API DE RESTREST API
  • SDK de PythonPython SDK

API DE RESTREST API

El comando de ejemplo siguiente muestra cómo ejecutar manualmente la canalización mediante la API de 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

Para obtener un ejemplo completo, vea Inicio rápido: Creación de una instancia de Azure Data Factory y una canalización mediante la API de REST.For a complete sample, see Quickstart: Create a data factory by using the REST API.

Azure PowerShellAzure PowerShell

Nota

Este artículo se ha actualizado para usar el nuevo módulo Az de Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Aún puede usar el módulo de AzureRM que continuará recibiendo correcciones de errores hasta diciembre de 2020 como mínimo.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Para más información acerca del nuevo módulo Az y la compatibilidad con AzureRM, consulte Introducing the new Azure PowerShell Az module (Presentación del nuevo módulo Az de Azure PowerShell).To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Para obtener instrucciones sobre la instalación del módulo Az, consulte Instalación de Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

El comando de ejemplo siguiente muestra cómo ejecutar manualmente la canalización mediante 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

Los parámetros se pasan en el cuerpo de la carga de solicitud.You pass parameters in the body of the request payload. En el SDK de .NET, Azure PowerShell y el SDK de Python, los valores se pasan en un diccionario que se pasa como argumento a la llamada: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"
}

La carga de respuesta es un identificador único de la ejecución de canalización:The response payload is a unique ID of the pipeline run:

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

Para obtener un ejemplo completo, vea Inicio rápido: Creación de una factoría de datos de Azure PowerShell.For a complete sample, see Quickstart: Create a data factory by using Azure PowerShell.

.NET SDK.NET SDK

La llamada de ejemplo siguiente muestra cómo ejecutar manualmente la canalización mediante el SDK de .NET:The following sample call shows you how to manually run your pipeline by using the .NET SDK:

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

Para obtener un ejemplo completo, vea Inicio rápido: Creación de una factoría de datos y una canalización con SDK de .NET.For a complete sample, see Quickstart: Create a data factory by using the .NET SDK.

Nota

Puede utilizar el SDK de .NET para invocar las canalizaciones de Data Factory desde Azure Functions o de sus propios servicios web, entre otros.You can use the .NET SDK to invoke Data Factory pipelines from Azure Functions, from your own web services, and so on.

Ejecución del desencadenadorTrigger execution

Los desencadenadores son otra forma de realizar una ejecución de canalización.Triggers are another way that you can execute a pipeline run. Los desencadenadores representan una unidad de procesamiento que determina cuándo es necesario poner en marcha una ejecución de canalización.Triggers represent a unit of processing that determines when a pipeline execution needs to be kicked off. Actualmente, Data Factory admite tres tipos de desencadenadores:Currently, Data Factory supports three types of triggers:
  • Desencadenador de programación: un desencadenador que invoca una canalización en una programación de reloj.Schedule trigger: A trigger that invokes a pipeline on a wall-clock schedule.

  • Desencadenador de ventana de saltos de tamaño constante: un desencadenador que opera en un intervalo periódico, mientras conserva también el estado.Tumbling window trigger: A trigger that operates on a periodic interval, while also retaining state.

  • Desencadenador basado en eventos: un desencadenador que responde a un evento.Event-based trigger: A trigger that responds to an event.

Las canalizaciones y los desencadenadores tienen una relación de varios a varios (excepto el desencadenador de la ventana de saltos de tamaño constante). Varios desencadenadores pueden iniciar una sola canalización o un único desencadenador puede iniciar varias canalizaciones.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. En la siguiente definición de un desencadenador, la propiedad pipelines hace referencia a una lista de canalizaciones que desencadena un desencadenador en particular.In the following trigger definition, the pipelines property refers to a list of pipelines that are triggered by the particular trigger. La definición de propiedad incluye los valores para los parámetros de la canalización.The property definition includes values for the pipeline parameters.

Definición básica del desencadenadorBasic 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>"
                }
            }
        ]
    }
}

Desencadenador de programaciónSchedule trigger

Un desencadenador de programación ejecuta canalizaciones según una programación de reloj.A schedule trigger runs pipelines on a wall-clock schedule. Este desencadenador admite opciones de calendario periódicas y avanzadas.This trigger supports periodic and advanced calendar options. Por ejemplo, el desencadenador admite intervalos como "semanal" o "lunes a las 5:00 p. m. y jueves a las 9:00 p. m".For example, the trigger supports intervals like "weekly" or "Monday at 5:00 PM and Thursday at 9:00 PM." El desencadenador de programación es flexible porque el patrón de conjunto de datos es independiente y el desencadenador no distingue entre datos de series temporales y datos de series no temporales.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.

Para más información sobre los desencadenadores de programación y ejemplos, consulte Creación de un desencadenador que ejecuta una canalización en una programación.For more information about schedule triggers and for examples, see Create a schedule trigger.

Definición de desencadenador de programaciónSchedule trigger definition

Cuando se crea un desencadenador de programación, debe especificar la programación y periodicidad mediante una definición de JSON.When you create a schedule trigger, you specify scheduling and recurrence by using a JSON definition.

Para hacer que el desencadenador de programación dé inicio a una ejecución de canalización, incluya una referencia de canalización de la canalización en particular en la definición del desencadenador.To have your schedule trigger kick off a pipeline run, include a pipeline reference of the particular pipeline in the trigger definition. Las canalizaciones y los desencadenadores tienen una relación de varios a varios.Pipelines and triggers have a many-to-many relationship. Varios desencadenadores pueden comenzar una única canalización.Multiple triggers can kick off a single pipeline. Un único desencadenador puede iniciar varias canalizaciones.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 propiedad parameters es una propiedad obligatoria del elemento pipelines.The parameters property is a mandatory property of the pipelines element. Si la canalización no toma ningún parámetro, incluya una definición de JSON vacía para la propiedad parameters.If your pipeline doesn't take any parameters, you must include an empty JSON definition for the parameters property.

Información general del esquemaSchema overview

En la tabla siguiente se muestra información general de los elementos del esquema más importantes relacionados con la periodicidad y la programación de un desencadenador:The following table provides a high-level overview of the major schema elements that are related to recurrence and scheduling a trigger:

Propiedad JSONJSON property DESCRIPCIÓNDescription
startTimestartTime Valor de fecha y hora.A date-time value. Para las programaciones básicas, se aplica el valor de la propiedad startTime al primer caso.For basic schedules, the value of the startTime property applies to the first occurrence. Para las programaciones complejas, el desencadenador no se inicia antes del valor de startTime especificado.For complex schedules, the trigger starts no sooner than the specified startTime value.
endTimeendTime Fecha y hora de finalización para el desencadenador.The end date and time for the trigger. El desencadenador no se ejecuta después de la fecha y hora de finalización especificadas.The trigger doesn't execute after the specified end date and time. El valor de la propiedad no puede estar en el pasado.The value for the property can't be in the past.
timeZonetimeZone Zona horaria.The time zone. Actualmente, solo se admite la zona horaria UTC.Currently, only the UTC time zone is supported.
recurrencerecurrence Objeto que especifica las reglas de periodicidad para el desencadenador.A recurrence object that specifies the recurrence rules for the trigger. El objeto recurrence admite los elementos frequency, interval, endTime, count y schedule.The recurrence object supports the frequency, interval, endTime, count, and schedule elements. Cuando se define un objeto recurrence, es necesario el elemento frequency.When a recurrence object is defined, the frequency element is required. Los demás elementos del objeto recurrence son opcionales.The other elements of the recurrence object are optional.
frequencyfrequency Unidad de frecuencia a la que se repite el desencadenador.The unit of frequency at which the trigger recurs. Los valores admitidos son "minute", "hour", "day", "week" y "month".The supported values include "minute", "hour", "day", "week", and "month".
intervalinterval Entero positivo que indica el intervalo para el valor frequency.A positive integer that denotes the interval for the frequency value. El valor frequency determina la frecuencia con la que se ejecuta el desencadenador.The frequency value determines how often the trigger runs. Por ejemplo, si interval es 3 y frequency es “week”, el desencadenador se repite cada tres semanas.For example, if the interval is 3 and the frequency is "week", the trigger recurs every three weeks.
scheduleschedule La programación de periodicidad para el desencadenador.The recurrence schedule for the trigger. Un desencadenador con valor de frequency especificado modifica su periodicidad según una programación periódica.A trigger with a specified frequency value alters its recurrence based on a recurrence schedule. La propiedad schedule contiene modificaciones de la periodicidad basadas en minutos, horas, días de la semana, días del mes y número de semana.The schedule property contains modifications for the recurrence that are based on minutes, hours, week days, month days, and week number.

Ejemplo de desencadenador de programaciónSchedule 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": {}
            }
        ]
    }
}

Valores predeterminados del esquema, límites y ejemplosSchema defaults, limits, and examples

Propiedad JSONJSON property typeType ObligatorioRequired Valor predeterminadoDefault value Valores válidosValid values EjemploExample
startTimestartTime stringstring Yes NoneNone Fechas y horas ISO-8601ISO 8601 date-times "startTime" : "2013-01-09T09:30:00-08:00"
recurrencerecurrence objectobject Yes NoneNone Objeto de periodicidadA recurrence object "recurrence" : { "frequency" : "monthly", "interval" : 1 }
intervalinterval númeronumber SinNo 11 1 a 10001 to 1000 "interval":10
endTimeendTime stringstring Yes NoneNone Valor de fecha y hora que representa un período de tiempo en el futuroA date-time value that represents a time in the future "endTime" : "2013-02-09T09:30:00-08:00"
scheduleschedule objectobject SinNo NoneNone Objeto de programaciónA schedule object "schedule" : { "minute" : [30], "hour" : [8,17] }

Propiedad startTimestartTime property

En la tabla siguiente se muestra cómo la propiedad startTime controla una ejecución de desencadenador:The following table shows you how the startTime property controls a trigger run:

Valor de startTimestartTime value Periodicidad sin programaciónRecurrence without schedule Periodicidad con programaciónRecurrence with schedule
La hora de inicio está en el pasadoStart time is in the past Calcula la primera hora de ejecución futura después de la hora de inicio y se ejecuta a esa hora.Calculates the first future execution time after the start time, and runs at that time.

Realiza ejecuciones posteriores calculadas desde la última hora de ejecución.Runs subsequent executions calculated from the last execution time.

Consulte el ejemplo que sigue a esta tabla.See the example that follows this table.
El desencadenador se inicia no antes que la hora de inicio especificada.The trigger starts no sooner than the specified start time. La primera repetición se basa en la programación que se calcula a partir de la hora de inicio.The first occurrence is based on the schedule, calculated from the start time.

Realiza las sucesivas ejecuciones según la programación de periodicidad.Runs subsequent executions based on the recurrence schedule.
La hora de inicio está en el futuro o la hora actualStart time is in the future or the current time Se ejecuta una vez a la hora de inicio especificada.Runs once at the specified start time.

Realiza ejecuciones posteriores calculadas desde la última hora de ejecución.Runs subsequent executions calculated from the last execution time.
El desencadenador se inicia no antes que la hora de inicio especificada.The trigger starts no sooner than the specified start time. La primera aparición se basa en la programación que se calcula a partir de la hora de inicio.The first occurrence is based on the schedule, calculated from the start time.

Realiza las sucesivas ejecuciones según la programación de periodicidad.Runs subsequent executions based on the recurrence schedule.

Veamos un ejemplo de lo que sucede cuando startTime se encuentra en el pasado, con periodicidad, pero sin programación.Let's look at an example of what happens when the start time is in the past, with a recurrence, but no schedule. Suponga que la fecha actual es 2017-04-08 13:00, la hora de inicio es 2017-04-07 14:00, y la periodicidad es cada dos días.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. (El valor de recurrence se define estableciendo la propiedad frequency en "day" y la propiedad interval en 2). Tenga en cuenta que el valor de startTime se encuentra en el pasado y tiene lugar antes de la hora actual.(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.

En estas condiciones, la primera ejecución será el 4 de septiembre de 2017 a las 14:00.Under these conditions, the first execution is 2017-04-09 at 14:00. El motor de Scheduler calcula las repeticiones de la ejecución desde la hora de inicio.The Scheduler engine calculates execution occurrences from the start time. Se descartan las instancias en el pasado.Any instances in the past are discarded. El motor utiliza la instancia siguiente que tiene lugar en el futuro.The engine uses the next instance that occurs in the future. En este escenario, la hora de inicio es 2017-04-07 a las 2:00 p. m.In this scenario, the start time is 2017-04-07 at 2:00 PM. La siguiente instancia es dos días a partir de ese momento, que es 2017-04-09 a las 2:00 p. m.The next instance is two days from that time, which is on 2017-04-09 at 2:00 PM.

La hora de la primera ejecución es la misma si startTime es 2017-04-05 14:00 o 2017-04-01 14:00.The first execution time is the same even whether startTime is 2017-04-05 14:00 or 2017-04-01 14:00. Después de la primera ejecución, las ejecuciones posteriores se calculan mediante la programación.After the first execution, subsequent executions are calculated by using the schedule. Por lo tanto, las ejecuciones siguientes se realizan el 2017-04-11 a las 2:00 p. m., luego el 2017-04-13 a las 2:00 p. m., después el 2017-04-15 a las 2:00 p. m. y así sucesivamente.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.

Finalmente, cuando las horas o los minutos no se establecen en el programa para un desencadenador, se utilizan las horas o minutos de la primera ejecución como valores predeterminados.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.

Propiedad scheduleschedule property

Puede usar schedule para limitar el número de ejecuciones de desencadenadores.You can use schedule to limit the number of trigger executions. Por ejemplo, si un desencadenador con frecuencia mensual tiene un valor programado para ejecutarse solo el día 31, el desencadenador se ejecuta solo en los meses que tienen 31 días.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.

También puede usar schedule para expandir el número de ejecuciones de desencadenadores.You can also use schedule to expand the number of trigger executions. Por ejemplo, un desencadenador con una frecuencia mensual programado para ejecutarse en los días primero y segundo del mes, se ejecuta el primer y segundo día del mes, en lugar de una vez al mes.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.

Si se especifican varios elementos de programación, el orden de evaluación es de la configuración de programación mayor a menor: número de semana, día del mes, día de la semana, hora y 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.

En la siguiente tabla se describen los elementos de schedule con detalle:The following table describes the schedule elements in detail:

Elemento JSONJSON element DESCRIPCIÓNDescription Valores válidosValid values
minutesminutes Minutos de la hora en la que se ejecuta el desencadenador.Minutes of the hour at which the trigger runs. - Entero- Integer
- Matriz de enteros- Array of integers
hourshours Horas del día en la que se ejecuta el desencadenador.Hours of the day at which the trigger runs. - Entero- Integer
- Matriz de enteros- Array of integers
weekDaysweekDays Días de la semana en los que se ejecuta el desencadenador.Days of the week the trigger runs. El valor solo se puede especificar con una frecuencia semanal.The value can be specified only with a weekly frequency.
- Monday- Monday
- Tuesday- Tuesday
- Wednesday- Wednesday
- Thursday- Thursday
- Friday- Friday
- Saturday- Saturday
- Sunday- Sunday
- Matriz de valores de día (el tamaño máximo de la matriz es 7)- Array of day values (maximum array size is 7)

Los valores de día no distinguen mayúsculas de minúsculas.Day values are not case-sensitive
monthlyOccurrencesmonthlyOccurrences Días del mes en los que se ejecuta el desencadenador.Days of the month on which the trigger runs. El valor solo se puede especificar con una frecuencia mensual.The value can be specified with a monthly frequency only. - Matriz de objetos de monthlyOccurrence: { "day": day, "occurrence": occurrence }.- Array of monthlyOccurrence objects: { "day": day, "occurrence": occurrence }
- El atributo day es el día de la semana en el que se ejecuta el desencadenador.- The day attribute is the day of the week on which the trigger runs. Por ejemplo, una propiedad monthlyOccurrences con un valor de day de {Sunday} significa todos los domingos del mes.For example, a monthlyOccurrences property with a day value of {Sunday} means every Sunday of the month. Se necesita un atributo day.The day attribute is required.
- El atributo occurrence es la repetición del elemento day especificado durante el mes.- The occurrence attribute is the occurrence of the specified day during the month. Por ejemplo, una propiedad monthlyOccurrences valores de day y occurrence de {Sunday, -1} implica el último domingo del mes.For example, a monthlyOccurrences property with day and occurrence values of {Sunday, -1} means the last Sunday of the month. El atributo occurrence es opcional.The occurrence attribute is optional.
monthDaysmonthDays Día del mes en el que se ejecuta el desencadenador.Day of the month on which the trigger runs. El valor solo se puede especificar con una frecuencia mensual.The value can be specified with a monthly frequency only. - Cualquier valor <= -1 y >= -31- Any value <= -1 and >= -31
- Cualquier valor >= 1 y <= 31- Any value >= 1 and <= 31
- Matriz de valores- Array of values

Desencadenador de ventana de saltos de tamaño constanteTumbling window trigger

Los desencadenadores de ventana de saltos de tamaño constante son un tipo de desencadenador que se activa en un intervalo de tiempo periódico a partir de una hora de inicio especificada, mientras conserva el estado.Tumbling window triggers are a type of trigger that fires at a periodic time interval from a specified start time, while retaining state. Las ventanas de saltos de tamaño constante son una serie de intervalos de tiempo de tamaño fijo, contiguos y que no se superponen.Tumbling windows are a series of fixed-sized, non-overlapping, and contiguous time intervals.

Para más información sobre los desencadenadores de ventanas de saltos de tamaño constante y ejemplos, consulte Creación de un desencadenador que ejecuta una canalización en una ventana de saltos de tamaño constante.For more information about tumbling window triggers and for examples, see Create a tumbling window trigger.

Desencadenador basado en eventosEvent-based trigger

Un desencadenador basado en eventos ejecuta canalizaciones en respuesta a un evento como, por ejemplo, la llegada de un archivo, o su eliminación, en Azure Blob Storage.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.

Para más información acerca de los desencadenadores basados en eventos, consulte Create a trigger that runs a pipeline in response to an event (Creación de un desencadenador que ejecuta una canalización en respuesta a un evento).For more information about event-based triggers, see Create a trigger that runs a pipeline in response to an event.

Ejemplos de programaciones de periodicidad del desencadenadorExamples of trigger recurrence schedules

En esta sección se proporcionan ejemplos de programaciones de periodicidad.This section provides examples of recurrence schedules. Se centra en el objeto schedule y sus elementos.It focuses on the schedule object and its elements.

Los ejemplos asumen que el valor de interval es 1 y que el valor de frequency es correcto según la definición de la programación.The examples assume that the interval value is 1, and that the frequency value is correct according to the schedule definition. Por ejemplo, no puede tener un valor de frequency de "day" y tener también una modificación de monthDays en el objeto schedule.For example, you can't have a frequency value of "day" and also have a monthDays modification in the schedule object. Estos tipos de restricciones se describen en la tabla de la sección anterior.These kinds of restrictions are described in the table in the preceding section.

EjemploExample DESCRIPCIÓNDescription
{"hours":[5]} Se ejecuta a las 5:00 a. m. todos los días.Run at 5:00 AM every day.
{"minutes":[15], "hours":[5]} Se ejecuta a las 5:15 a. m. todos los días.Run at 5:15 AM every day.
{"minutes":[15], "hours":[5,17]} Se ejecuta a las 5:15 a. m. y 5:15 p. m. todos los días.Run at 5:15 AM and 5:15 PM every day.
{"minutes":[15,45], "hours":[5,17]} Se ejecuta a las 5:15 a. m., 5:45 a. m., 5:15 p. m. y 5:45 p. m. todos los días.Run at 5:15 AM, 5:45 AM, 5:15 PM, and 5:45 PM every day.
{"minutes":[0,15,30,45]} Se ejecuta cada 15 minutos.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]} Se ejecuta cada hora.Run every hour.

Este desencadenador se ejecuta cada hora.This trigger runs every hour. Los minutos se controlan mediante el valor de startTime, cuando se especifica un valor.The minutes are controlled by the startTime value, when a value is specified. Si no se especifica un valor, los minutos los controla el tiempo de creación.If a value isn't specified, the minutes are controlled by the creation time. Por ejemplo, si la hora de inicio o la hora de creación (lo que corresponda) es 12:25 p. m., el desencadenador se ejecuta a las 00:25, 01:25, 02:25… y 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.

Su programación equivale a tener un desencadenador con un valor de frequency de "hour", un valor de interval de 1 y ningún valor de schedule.This schedule is equivalent to having a trigger with a frequency value of "hour", an interval value of 1, and no schedule. Esta programación puede usarse con diferentes valores en frequency e interval para crear otros desencadenadores.This schedule can be used with different frequency and interval values to create other triggers. Por ejemplo, cuando el valor de frequency es "month", la ejecución de la programación se ejecuta solo una vez al mes, en lugar de cada día, cuando el valor de frequency es "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]} Se ejecuta cada hora durante la hora.Run every hour on the hour.

Este desencadenador se ejecuta cada hora a partir de las 12:00 a. m., 1:00 a. m., 2:00 a. m., y así sucesivamente.This trigger runs every hour on the hour starting at 12:00 AM, 1:00 AM, 2:00 AM, and so on.

Esta programación es equivalente a un desencadenador con un valor de frequency de "hour" y un valor de startTime de cero minutos, y sin valor de schedule pero con un valor de frequency de "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". Si el valor de frequency es "week" o "month", la programación ejecuta únicamente un día a la semana o un día al mes, respectivamente.If the frequency value is "week" or "month", the schedule executes one day a week or one day a month only, respectively.
{"minutes":[15]} Se ejecuta 15 minutos después de cada hora en punto.Run at 15 minutes past every hour.

Este desencadenador se ejecuta cada hora 15 minutos después de la hora en punto desde las 00:15 a. m., 1:15 a. m., 2:15 a. m. y así sucesivamente, y finalizando a las 11:15 p. m.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"]} Se ejecuta a las 5:00 p. m. los sábados de cada semana.Run at 5:00 PM on Saturdays every week.
{"hours":[17], "weekDays":["monday", "wednesday", "friday"]} Se ejecuta a las 5:00 p. m. los lunes, miércoles y viernes de cada semana.Run at 5:00 PM on Monday, Wednesday, and Friday every week.
{"minutes":[15,45], "hours":[17], "weekDays":["monday", "wednesday", "friday"]} Se ejecuta a las 5:15 p. m. y 5:45 p. m. los lunes, miércoles y viernes de cada semana.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"]} Se ejecuta cada 15 minutos los días laborables.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"]} Se ejecuta cada 15 minutos los días laborables entre las 9:00 a. m. y las 4:45 p. m.Run every 15 minutes on weekdays between 9:00 AM and 4:45 PM.
{"weekDays":["tuesday", "thursday"]} Se ejecuta los martes y jueves a la hora de inicio especificada.Run on Tuesdays and Thursdays at the specified start time.
{"minutes":[0], "hours":[6], "monthDays":[28]} Se ejecuta a las 6:00 a. m. del día 28 de cada mes (suponiendo un valor de frequency de "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]} Se ejecuta a las 6:00 a. m. el último día del mes.Run at 6:00 AM on the last day of the month.

Para ejecutar un desencadenador el último día del mes, use -1 en lugar del día 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]} Se ejecuta a las 6:00 a. m. el primer y el último día del mes.Run at 6:00 AM on the first and last day of every month.
{monthDays":[1,14]} Se ejecuta el primer y decimocuarto día de cada mes a la hora de inicio especificada.Run on the first and fourteenth day of every month at the specified start time.
{"minutes":[0], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1}]} Se ejecuta el primer viernes de cada mes a las 5:00 a. m.Run on the first Friday of every month at 5:00 AM.
{"monthlyOccurrences":[{"day":"friday", "occurrence":1}]} Se ejecuta el primer viernes de cada mes a la hora de inicio especificada.Run on the first Friday of every month at the specified start time.
{"monthlyOccurrences":[{"day":"friday", "occurrence":-3}]} Se ejecuta el tercer viernes desde el final del mes, todos los meses, a la hora de inicio especificada.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}]} Se ejecuta el primer viernes de cada mes a las 5:15 a. m.Run on the first and last Friday of every month at 5:15 AM.
{"monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} Se ejecuta el primer y el último viernes de cada mes a la hora de inicio especificada.Run on the first and last Friday of every month at the specified start time.
{"monthlyOccurrences":[{"day":"friday", "occurrence":5}]} Se ejecuta el quinto viernes de cada mes a la hora de inicio especificada.Run on the fifth Friday of every month at the specified start time.

Si no existe el quinto viernes de un mes, la canalización no se ejecuta.When there's no fifth Friday in a month, the pipeline doesn't run. Considere usar -1 en lugar de 5 para el valor occurrence para ejecutar el desencadenador en el último viernes del mes.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}]} Se ejecuta cada 15 minutos el último viernes del mes.Run every 15 minutes on the last Friday of the month.
{"minutes":[15,45], "hours":[5,17], "monthlyOccurrences":[{"day":"wednesday", "occurrence":3}]} Se ejecuta a las 5:15 a. m., 5:45 a. m., 5:15 a. m. y las 5:45 a. m. el tercer miércoles de cada mes.Run at 5:15 AM, 5:45 AM, 5:15 PM, and 5:45 PM on the third Wednesday of every month.

Comparación de tipos de desencadenadoresTrigger type comparison

El desencadenador de ventana de saltos de tamaño constante y el de programación funcionan con latidos de tiempo.The tumbling window trigger and the schedule trigger both operate on time heartbeats. ¿En qué se diferencian?How are they different?

En la siguiente tabla se muestra una comparación entre el desencadenador de ventana de saltos de tamaño constante y el desencadenador de programación:The following table provides a comparison of the tumbling window trigger and schedule trigger:

Desencadenador de ventana de saltos de tamaño constanteTumbling window trigger Desencadenador de programaciónSchedule trigger
Escenarios de reposiciónBackfill scenarios Se admite.Supported. Las ejecuciones de canalización se pueden programar para ventanas en el pasado.Pipeline runs can be scheduled for windows in the past. No compatible.Not supported. Se pueden realizar las ejecuciones de canalización solo en períodos de tiempo del momento actual y en el futuro.Pipeline runs can be executed only on time periods from the current time and the future.
ConfiabilidadReliability 100 % confiabilidad.100% reliability. Las ejecuciones de canalización se pueden programar para todas las ventanas de una fecha de inicio especificada sin intervalos.Pipeline runs can be scheduled for all windows from a specified start date without gaps. Menos confiable.Less reliable.
Funcionalidad de reintentoRetry capability Se admite.Supported. Las ejecuciones de canalización erróneas tienen una directiva de reintentos predeterminada de 0 u otra especificada por el usuario en la definición del desencadenador.Failed pipeline runs have a default retry policy of 0, or a policy that's specified by the user in the trigger definition. Realiza un reintento automáticamente cuando se produce un error en la ejecución de la canalización debido a los límites de simultaneidad/servidor/limitación (es decir, códigos de estado 400: Error de usuario, 429: Demasiadas solicitudes y 500: Error interno del servidor).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). No compatible.Not supported.
ConcurrencyConcurrency Se admite.Supported. Los usuarios pueden establecer explícitamente límites de simultaneidad para el desencadenador.Users can explicitly set concurrency limits for the trigger. Permite entre 1 y 50 ejecuciones simultáneas de canalizaciones desencadenadas.Allows between 1 and 50 concurrent triggered pipeline runs. No compatible.Not supported.
Variables del sistemaSystem variables Admite el uso de las variables del sistema WindowStart y WindowEnd.Supports the use of the WindowStart and WindowEnd system variables. Los usuarios pueden acceder a triggerOutputs().windowStartTime y triggerOutputs().windowEndTime como variables del sistema del desencadenador en la definición del desencadenador.Users can access triggerOutputs().windowStartTime and triggerOutputs().windowEndTime as trigger system variables in the trigger definition. Los valores se utilizan como la hora de inicio y la hora de finalización de la ventana, respectivamente.The values are used as the window start time and window end time, respectively. Por ejemplo, para un desencadenador de la ventana de saltos de tamaño constante que se ejecuta cada hora, para la ventana de 1:00 a. m. a 2:00 a. m., la definición es triggerOutputs().WindowStartTime = 2017-09-01T01:00:00Z y 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. No compatible.Not supported.
Relación de canalización a desencadenadorPipeline-to-trigger relationship Admite las relaciones uno a uno.Supports a one-to-one relationship. Solo se puede desencadenar una canalización.Only one pipeline can be triggered. Admite relaciones muchos a muchos.Supports many-to-many relationships. Varios desencadenadores pueden comenzar una única canalización.Multiple triggers can kick off a single pipeline. Un único desencadenador puede iniciar varias canalizaciones.A single trigger can kick off multiple pipelines.

Pasos siguientesNext steps

Vea los siguientes tutoriales:See the following tutorials: