Erstellen eines Triggers zum Ausführen einer Pipeline gemäß einem Zeitplan
GILT FÜR: Azure Data Factory Azure Synapse Analytics
Tipp
Testen Sie Data Factory in Microsoft Fabric, eine All-in-One-Analyselösung für Unternehmen. Microsoft Fabric deckt alle Aufgaben ab, von der Datenverschiebung bis hin zu Data Science, Echtzeitanalysen, Business Intelligence und Berichterstellung. Erfahren Sie, wie Sie kostenlos eine neue Testversion starten!
Dieser Artikel enthält Informationen zum Zeitplantrigger und den Schritten zum Erstellen, Starten und Überwachen eines Zeitplantriggers. Informationen zu anderen Triggertypen finden Sie unter Pipelineausführung und -trigger.
Bei der Erstellung eines Plantriggers geben Sie einen Zeitplan wie ein Startdatum, ein Wiederholungsintervall oder ein Enddatum für den Trigger an und ordnen diesem eine Pipeline zu. Pipelines und Trigger haben eine m:m-Beziehung. Mehrere Trigger können eine einzelne Pipeline starten. Ein einzelnder Trigger kann mehrere Pipelines starten.
In den folgenden Abschnitten werden die Schritte zum Erstellen eines Zeitplantriggers durch unterschiedliche Methoden erläutert.
Die Benutzerportale von Azure Data Factory und Azure Synapse
Sie können einen Plantrigger erstellen, um eine regelmäßige Ausführung der Pipeline (z. B. stündlich oder täglich) festzulegen.
Hinweis
Eine vollständige exemplarische Vorgehensweise zum Erstellen einer Pipeline und eines Plantriggers, in der der Trigger der Pipeline zugeordnet sowie die Pipeline ausgeführt und überwacht wird, finden Sie im Schnellstart: Erstellen einer Data Factory über die Azure Data Factory-Benutzeroberfläche.
Wechseln Sie in Data Factory zur Registerkarte Bearbeiten oder in Azure Synapse zur Registerkarte Integrieren.
Klicken Sie im Menü auf Trigger und dann auf Neu/Bearbeiten.
Klicken Sie auf der Seite Trigger hinzufügen auf Trigger auswählen und dann auf Neu.
Auf der Seite Neuer Trigger:
Überprüfen Sie, ob Zeitplan als Typ ausgewählt ist.
Geben Sie als Startdatum den Startzeitpunkt des Triggers an. Dieser Wert ist standardmäßig auf den aktuellen datetime-Wert in UTC (koordinierte Weltzeit) festgelegt.
Geben Sie die Zeitzone an, in der der Trigger erstellt wird. Die Zeitzoneneinstellung gilt für Startdatum, Enddatum und Ausführungszeiten planen unter Erweiterte Wiederholungsoptionen. Durch eine Änderung der Zeitzone wird das Startdatum nicht automatisch geändert. Stellen Sie sicher, dass das Startdatum in der angegebenen Zeitzone korrekt ist. Die Zeitangabe unter Geplante Ausführungszeit des Triggers wird als nach dem Startdatum interpretiert. (Stellen Sie sicher, dass der Startzeitpunkt mindestens 1 Minute früher als die Ausführungszeit ist. Andernfalls wird die Pipeline bei der nächsten Wiederholung ausgelöst.)
Hinweis
Bei Zeitzonen mit Umstellung zwischen Sommerzeit und Winterzeit wird die Triggerzeit automatisch zweimal im Jahr angepasst, wenn die Wiederholung auf Tage oder länger festgelegt ist. Um die Anpassung an die Sommer-/Winterzeit zu deaktivieren, wählen Sie eine Zeitzone aus, in der diese Umstellung nicht erfolgt, z. B. UTC.
Die Anpassung an die Sommer-/Winterzeit erfolgt nur für Trigger, bei denen die Wiederholung auf Tage oder länger festgelegt ist. Wenn der Trigger auf Stunden oder Minuten festgelegt ist, wird er weiterhin in regelmäßigen Abständen ausgelöst.
Legen Sie für den Trigger Wiederholen fest. Wählen Sie einen Wert aus der Dropdownliste aus (Minütlich, Stündlich, Täglich, Wöchentlich und Monatlich). Geben Sie den Multiplikator in das Textfeld ein. Beispiel: Wenn der Trigger einmal alle 15 Minuten ausgeführt werden soll, wählen Sie Minütlich aus, und geben Sie 15 in das Textfeld ein.
Wenn Sie unter Wiederholung die Option Tag(e), Woche(n) oder Monat(e) auswählen, wird Erweiterte Wiederholungsoptionen angezeigt.
Zum Angeben eines Endzeitpunkts wählen Sie Enddatum angeben aus. Legen Sie einen Wert für Endet am fest, und klicken auf OK.
Für jede Pipelineausführung fallen Gebühren an. Wenn Sie Tests durchführen, sollten Sie darauf achten, dass die Pipeline nur ein paar Mal ausgelöst wird. Stellen Sie jedoch sicher, dass zwischen Veröffentlichungszeit und Endzeit ausreichend Zeit für die Pipelineausführung bleibt. Der Trigger wird erst nach Veröffentlichung der Lösung wirksam, nicht beim Speichern des Triggers auf der Benutzeroberfläche.
Wählen Sie im Fenster Neuer Trigger für die Option Aktiviert die Schaltfläche Ja und dann OK aus. Über dieses Kontrollkästchen können Sie den Trigger später deaktivieren.
Überprüfen Sie im Fenster Neuer Trigger die Warnmeldung, und wählen Sie OK aus.
Klicken Sie auf Alle veröffentlichen, um die Änderungen zu veröffentlichen. Der Trigger startet die Pipelineausführung erst, wenn die Änderungen veröffentlicht wurden.
Wechseln Sie auf der linken Seite zur Registerkarte Pipelineausführungen, und wählen Sie Aktualisieren aus, um die Liste zu aktualisieren. Sie können die Pipelineausführungen anzeigen, die vom geplanten Trigger ausgelöst werden. Beachten Sie die Werte in der Spalte Ausgelöst durch. Wenn Sie die Option Jetzt auslösen verwenden, wird die manuelle Triggerausführung in der Liste angezeigt.
Wechseln Sie zur Ansicht Triggerausführungen>Zeitplan.
Azure PowerShell
Hinweis
Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren von Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.
In diesem Abschnitt erfahren Sie, wie Sie mit Azure PowerShell einen Zeitplantrigger erstellen, starten und überwachen. Um zu sehen, wie dieses Beispiel funktioniert, gehen Sie zuerst den Schnellstart: Erstellen einer Data Factory mit Azure PowerShell durch. Fügen Sie anschließend den folgenden Code zur „main“-Methode hinzu, der einen Zeitplantrigger erstellt und startet, der alle 15 Minuten ausgeführt wird. Der Trigger ist einer Pipeline namens Adfv2QuickStartPipeline
zugeordnet, die Sie im Rahmen des Schnellstarts erstellen.
Voraussetzungen
- Azure-Abonnement. Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
- Azure PowerShell. Befolgen Sie die Anweisungen unter Installieren von Azure PowerShell unter Windows mit PowerShellGet.
Beispielcode
Erstellen Sie im Ordner *C:\ADFv2QuickStartPSH* eine JSON-Datei namens MyTrigger.json und dem folgenden Inhalt:
Wichtig
Legen Sie den Wert des
startTime
-Elements vor dem Speichern der JSON-Datei auf die aktuelle UTC-Zeit fest. Legen Sie den Wert desendTime
-Elements auf eine Stunde nach der aktuellen UTC-Zeit fest.{ "properties": { "name": "MyTrigger", "type": "ScheduleTrigger", "typeProperties": { "recurrence": { "frequency": "Minute", "interval": 15, "startTime": "2017-12-08T00:00:00Z", "endTime": "2017-12-08T01:00:00Z", "timeZone": "UTC" } }, "pipelines": [{ "pipelineReference": { "type": "PipelineReference", "referenceName": "Adfv2QuickStartPipeline" }, "parameters": { "inputPath": "adftutorial/input", "outputPath": "adftutorial/output" } } ] } }
Im JSON-Codeausschnitt:
Das
type
Element des Triggers wird aufScheduleTrigger
festgelegt.Das
frequency
-Element wird aufMinute
festgelegt und dasinterval
-Element auf15
. So führt der Trigger die Pipeline zwischen dem Start- und Endzeitpunkt alle 15 Minuten aus.Das
timeZone
-Element gibt die Zeitzone an, in der der Trigger erstellt wird. Diese Einstellung gilt sowohl fürstartTime
als auch fürendTime
.Das
endTime
-Element ist auf eine Stunde nach dem Wert desstartTime
-Elements festgelegt. So führt der Trigger die Pipeline 15 Minuten, 30 Minuten und 45 Minuten nach der Startzeit aus. Denken Sie daran, die Startzeit in die aktuelle UTC-Zeit und die Endzeit in eine Stunde nach der Startzeit zu ändern.Wichtig
Für die UTC-Zeitzone müssen
startTime
undendTime
im Formatyyyy-MM-ddTHH:mm:ss
Z vorliegen. Für andere Zeitzonen müssenstartTime
undendTime
im Formatyyyy-MM-ddTHH:mm:ss
vorliegen.Gemäß der Norm ISO 8601 markiert das Suffix
Z
des Zeitstempels den datetime-Wert für die Zeitzone UTC und macht dastimeZone
-Feld damit überflüssig. Wenn das SuffixZ
für UTC fehlt, tritt bei der Aktivierung des Triggers ein Fehler auf.Der Trigger ist der Pipeline
Adfv2QuickStartPipeline
zugeordnet. Um einen Trigger mehreren Pipelines zuzuordnen, fügen Sie weiterepipelineReference
-Abschnitte hinzu.Die Pipeline im Schnellstart akzeptiert zwei
parameters
-Werte:inputPath
undoutputPath
. Sie übergeben Werte für diese Parameter aus dem Trigger.
Erstellen Sie mit dem Cmdlet Set-AzDataFactoryV2Trigger einen Trigger:
Set-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger" -DefinitionFile "C:\ADFv2QuickStartPSH\MyTrigger.json"
Vergewissern Sie sich, dass der Status des Triggers Beendet lautet, indem Sie das Cmdlet Get-AzDataFactoryV2Trigger verwenden:
Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
Starten Sie den Trigger mithilfe des Cmdlets Start-AzDataFactoryV2Trigger:
Start-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
Vergewissern Sie sich, dass der Status des Triggers Gestartet lautet, indem Sie das Cmdlet Get-AzDataFactoryV2Trigger verwenden:
Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
Rufen Sie Triggerausführungen in Azure PowerShell mit dem Cmdlet Get-AzDataFactoryV2TriggerRun ab. Führen Sie in regelmäßigen Abständen den folgenden Befehl aus, um die Informationen zu den Triggerausführungen abzurufen. Aktualisieren Sie die Werte von
TriggerRunStartedAfter
undTriggerRunStartedBefore
entsprechend den Werten in Ihrer Triggerdefinition:Get-AzDataFactoryV2TriggerRun -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -TriggerName "MyTrigger" -TriggerRunStartedAfter "2017-12-08T00:00:00" -TriggerRunStartedBefore "2017-12-08T01:00:00"
Hinweis
Die Triggerzeit für Plantrigger ist im UTC-Zeitstempel angegeben.
TriggerRunStartedAfter
undTriggerRunStartedBefore
erwarten auch den UTC-Zeitstempel.Informationen zum Überwachen von Trigger- bzw. Pipelineausführungen im Azure-Portal finden Sie unter Überwachen der Pipeline.
Azure CLI
In diesem Abschnitt erfahren Sie, wie Sie mithilfe der Azure CLI einen Plantrigger erstellen, starten und überwachen. Um zu sehen, wie dieses Beispiel funktioniert, gehen Sie zuerst den Schnellstart: Erstellen einer Azure Data Factory mit der Azure CLI durch. Führen Sie dann die folgenden Schritte aus, um einen Plantrigger zu erstellen, der alle 15 Minuten ausgeführt wird, und diesen zu starten. Der Trigger ist einer Pipeline namens Adfv2QuickStartPipeline
zugeordnet, die Sie im Rahmen des Schnellstarts erstellen.
Voraussetzungen
Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter Schnellstart für Bash in Azure Cloud Shell.
Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.
Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.
Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.
Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.
Beispielcode
Erstellen Sie in Ihrem Arbeitsverzeichnis die JSON-Datei MyTrigger.json mit den Eigenschaften für den Trigger. Verwenden Sie für dieses Beispiel den folgenden Inhalt:
Wichtig
Legen Sie den Wert des
startTime
-Elements vor dem Speichern der JSON-Datei auf die aktuelle UTC-Zeit fest. Legen Sie den Wert desendTime
-Elements auf eine Stunde nach der aktuellen UTC-Zeit fest.{ "name": "MyTrigger", "type": "ScheduleTrigger", "typeProperties": { "recurrence": { "frequency": "Minute", "interval": 15, "startTime": "2017-12-08T00:00:00Z", "endTime": "2017-12-08T01:00:00Z", "timeZone": "UTC" } }, "pipelines": [{ "pipelineReference": { "type": "PipelineReference", "referenceName": "Adfv2QuickStartPipeline" }, "parameters": { "inputPath": "adftutorial/input", "outputPath": "adftutorial/output" } } ] }
Im JSON-Codeausschnitt:
Das
type
Element des Triggers wird aufScheduleTrigger
festgelegt.Das
frequency
-Element wird aufMinute
festgelegt und dasinterval
-Element auf15
. So führt der Trigger die Pipeline zwischen dem Start- und Endzeitpunkt alle 15 Minuten aus.Das
timeZone
-Element gibt die Zeitzone an, in der der Trigger erstellt wird. Diese Einstellung gilt sowohl fürstartTime
als auch fürendTime
.Das
endTime
-Element ist auf eine Stunde nach dem Wert desstartTime
-Elements festgelegt. So führt der Trigger die Pipeline 15 Minuten, 30 Minuten und 45 Minuten nach der Startzeit aus. Denken Sie daran, die Startzeit in die aktuelle UTC-Zeit und die Endzeit in eine Stunde nach der Startzeit zu ändern.Wichtig
Für die UTC-Zeitzone müssen
startTime
und „endTime“ im Formatyyyy-MM-ddTHH:mm:ss
Z vorliegen. Für andere Zeitzonen müssenstartTime
undendTime
im Formatyyyy-MM-ddTHH:mm:ss
vorliegen.Gemäß der Norm ISO 8601 markiert das Suffix Z des Zeitstempels den datetime-Wert für die Zeitzone UTC und macht das
timeZone
-Feld damit überflüssig. Wenn das Suffix Z für UTC fehlt, tritt bei der Aktivierung des Triggers ein Fehler auf.Der Trigger ist der Pipeline
Adfv2QuickStartPipeline
zugeordnet. Um einen Trigger mehreren Pipelines zuzuordnen, fügen Sie weiterepipelineReference
-Abschnitte hinzu.Die Pipeline im Schnellstart akzeptiert zwei
parameters
-Werte:inputPath
undoutputPath
. Sie übergeben Werte für diese Parameter aus dem Trigger.
Erstellen Sie einen Trigger mit dem Befehl az datafactory trigger create:
az datafactory trigger create --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger" --properties @MyTrigger.json
Vergewissern Sie sich mithilfe des Befehls az datafactory trigger show, dass der Status des Triggers Beendet lautet:
az datafactory trigger show --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger"
Starten Sie den Trigger mit dem Befehl az datafactory trigger start:
az datafactory trigger start --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger"
Vergewissern Sie sich mithilfe des Befehls az datafactory trigger show, dass der Status des Triggers Gestartet lautet:
az datafactory trigger show --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger"
Rufen Sie die Triggerausführungen in der Azure CLI mit dem Befehl az datafactory trigger-run query-by-factory ab. Führen Sie in regelmäßigen Abständen den folgenden Befehl aus, um die Informationen zu den Triggerausführungen abzurufen. Aktualisieren Sie die Werte von
last-updated-after
undlast-updated-before
entsprechend den Werten in Ihrer Triggerdefinition:az datafactory trigger-run query-by-factory --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --filters operand="TriggerName" operator="Equals" values="MyTrigger" --last-updated-after "2017-12-08T00:00:00" --last-updated-before "2017-12-08T01:00:00"
Hinweis
Die Triggerzeiten für Plantrigger sind im UTC-Zeitstempel angegeben. last-updated-after und last-updated-before erwarten ebenfalls den UTC-Zeitstempel.
Informationen zum Überwachen von Trigger- bzw. Pipelineausführungen im Azure-Portal finden Sie unter Überwachen der Pipeline.
.NET SDK
In diesem Abschnitt erfahren Sie, wie Sie mit dem .NET SDK einen Trigger erstellen, starten und überwachen. Um zu sehen, wie dieses Beispiel funktioniert, gehen Sie zuerst den Schnellstart: Erstellen einer Data Factory mit dem .NET-SDK durch. Fügen Sie anschließend den folgenden Code zur „main“-Methode hinzu, der einen Zeitplantrigger erstellt und startet, der alle 15 Minuten ausgeführt wird. Der Trigger ist einer Pipeline namens Adfv2QuickStartPipeline
zugeordnet, die Sie im Rahmen des Schnellstarts erstellen.
Um einen Zeitplantrigger zu erstellen und zu starten, der alle 15 Minuten ausgeführt wird, fügen Sie den folgenden Code zur main-Methode hinzu:
// Create the trigger
Console.WriteLine("Creating the trigger");
// Set the start time to the current UTC time
DateTime startTime = DateTime.UtcNow;
// Specify values for the inputPath and outputPath parameters
Dictionary<string, object> pipelineParameters = new Dictionary<string, object>();
pipelineParameters.Add("inputPath", "adftutorial/input");
pipelineParameters.Add("outputPath", "adftutorial/output");
// Create a schedule trigger
string triggerName = "MyTrigger";
ScheduleTrigger myTrigger = new ScheduleTrigger()
{
Pipelines = new List<TriggerPipelineReference>()
{
// Associate the Adfv2QuickStartPipeline pipeline with the trigger
new TriggerPipelineReference()
{
PipelineReference = new PipelineReference(pipelineName),
Parameters = pipelineParameters,
}
},
Recurrence = new ScheduleTriggerRecurrence()
{
// Set the start time to the current UTC time and the end time to one hour after the start time
StartTime = startTime,
TimeZone = "UTC",
EndTime = startTime.AddHours(1),
Frequency = RecurrenceFrequency.Minute,
Interval = 15,
}
};
// Now, create the trigger by invoking the CreateOrUpdate method
TriggerResource triggerResource = new TriggerResource()
{
Properties = myTrigger
};
client.Triggers.CreateOrUpdate(resourceGroup, dataFactoryName, triggerName, triggerResource);
// Start the trigger
Console.WriteLine("Starting the trigger");
client.Triggers.Start(resourceGroup, dataFactoryName, triggerName);
Zum Erstellen von Triggern in einer anderen Zeitzone als UTC sind folgende Einstellungen erforderlich:
<<ClientInstance>>.SerializationSettings.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat;
<<ClientInstance>>.SerializationSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Unspecified;
<<ClientInstance>>.SerializationSettings.DateParseHandling = DateParseHandling.None;
<<ClientInstance>>.DeserializationSettings.DateParseHandling = DateParseHandling.None;
<<ClientInstance>>.DeserializationSettings.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat;
<<ClientInstance>>.DeserializationSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Unspecified;
Fügen Sie zum Überwachen einer Triggerausführung im Beispiel den folgenden Code vor der letzten Console.WriteLine
-Anweisung hinzu:
// Check that the trigger runs every 15 minutes
Console.WriteLine("Trigger runs. You see the output every 15 minutes");
for (int i = 0; i < 3; i++)
{
System.Threading.Thread.Sleep(TimeSpan.FromMinutes(15));
List<TriggerRun> triggerRuns = client.Triggers.ListRuns(resourceGroup, dataFactoryName, triggerName, DateTime.UtcNow.AddMinutes(-15 * (i + 1)), DateTime.UtcNow.AddMinutes(2)).ToList();
Console.WriteLine("{0} trigger runs found", triggerRuns.Count);
foreach (TriggerRun run in triggerRuns)
{
foreach (KeyValuePair<string, string> triggeredPipeline in run.TriggeredPipelines)
{
PipelineRun triggeredPipelineRun = client.PipelineRuns.Get(resourceGroup, dataFactoryName, triggeredPipeline.Value);
Console.WriteLine("Pipeline run ID: {0}, Status: {1}", triggeredPipelineRun.RunId, triggeredPipelineRun.Status);
List<ActivityRun> runs = client.ActivityRuns.ListByPipelineRun(resourceGroup, dataFactoryName, triggeredPipelineRun.RunId, run.TriggerRunTimestamp.Value, run.TriggerRunTimestamp.Value.AddMinutes(20)).ToList();
}
}
}
Informationen zum Überwachen von Trigger- bzw. Pipelineausführungen im Azure-Portal finden Sie unter Überwachen der Pipeline.
Python SDK
In diesem Abschnitt erfahren Sie, wie Sie mit dem Python-SDK einen Trigger erstellen, starten und überwachen. Um zu sehen, wie dieses Beispiel funktioniert, gehen Sie zuerst den Schnellstart: Erstellen einer Data Factory mithilfe des Python-SDK durch. Fügen Sie dann im Python-Skript den folgenden Codeblock nach dem Codeblock monitor the pipeline run
hinzu. Dieser Code erzeugt einen Zeitplantrigger, der alle 15 Minuten zwischen den angegebenen Start- und Endzeiten ausgeführt wird. Ändern Sie die Variable start_time
in die aktuelle UTC-Zeit und die Variable end_time
in eine Stunde nach der aktuellen UTC-Zeit.
# Create a trigger
tr_name = 'mytrigger'
scheduler_recurrence = ScheduleTriggerRecurrence(frequency='Minute', interval='15',start_time='2017-12-12T04:00:00Z', end_time='2017-12-12T05:00:00Z', time_zone='UTC')
pipeline_parameters = {'inputPath':'adftutorial/input', 'outputPath':'adftutorial/output'}
pipelines_to_run = []
pipeline_reference = PipelineReference('copyPipeline')
pipelines_to_run.append(TriggerPipelineReference(pipeline_reference, pipeline_parameters))
tr_properties = TriggerResource(properties=ScheduleTrigger(description='My scheduler trigger', pipelines = pipelines_to_run, recurrence=scheduler_recurrence))
adf_client.triggers.create_or_update(rg_name, df_name, tr_name, tr_properties)
# Start the trigger
adf_client.triggers.start(rg_name, df_name, tr_name)
Informationen zum Überwachen von Trigger- bzw. Pipelineausführungen im Azure-Portal finden Sie unter Überwachen der Pipeline.
Azure Resource Manager-Vorlage
Sie können mit einer Azure Resource Manager-Vorlage einen Trigger erstellen. Detaillierte Anweisungen finden Sie unter Erstellen einer Azure Data Factory mit einer Azure Resource Manager-Vorlage.
Übergeben der Startzeit des Triggers an eine Pipeline
In Version 1 von Azure Data Factory unterstützt das Lesen oder Schreiben von partitionierten Daten mithilfe der Systemvariablen SliceStart
, SliceEnd
, WindowStart
und WindowEnd
. In der aktuellen Version von Azure Data Factory- und Azure Synapse-Pipelines können Sie dieses Verhalten mithilfe eines Pipelineparameters erzielen. Die Startzeit und die geplante Zeit für den Trigger werden als Wert für den Pipelineparameter festgelegt. Im folgenden Beispiel wird die geplante Zeit für den Trigger als Wert an den Pipelineparameter scheduledRunTime
übergeben:
"parameters": {
"scheduledRunTime": "@trigger().scheduledTime"
}
JSON-Schema
Die folgende JSON-Definition zeigt, wie Sie einen Zeitplantrigger mit Planung und Wiederholung erstellen können:
{
"properties": {
"type": "ScheduleTrigger",
"typeProperties": {
"recurrence": {
"frequency": <<Minute, Hour, Day, Week, Month>>,
"interval": <<int>>, // Optional, specifies how often to fire (default to 1)
"startTime": <<datetime>>,
"endTime": <<datetime - optional>>,
"timeZone": "UTC"
"schedule": { // Optional (advanced scheduling specifics)
"hours": [<<0-23>>],
"weekDays": [<<Monday-Sunday>>],
"minutes": [<<0-59>>],
"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>"
}
}
]
}
}
Wichtig
Die parameters
-Eigenschaft ist eine erforderliche Eigenschaft des pipelines
-Elements. Wenn für Ihre Pipeline keine Parameter akzeptiert, müssen Sie eine leere JSON-Definition für die parameters
-Eigenschaft einfügen.
Schemaübersicht
Die folgende Tabelle enthält eine allgemeine Übersicht über die wichtigsten Schemaelemente im Zusammenhang mit der Wiederholung und Zeitplanung eines Triggers.
JSON-Eigenschaft | Beschreibung |
---|---|
startTime |
Ein Datums-/Uhrzeitwert. Bei einfachen Zeitplänen gilt der Wert der startTime -Eigenschaft für das erste Auftreten. Bei komplexen Zeitplänen wird der Trigger frühestens beim festgelegten startTime -Wert gestartet. Für die Zeitzone UTC ist das Format 'yyyy-MM-ddTHH:mm:ssZ' . Für andere Zeitzonen ist das Format yyyy-MM-ddTHH:mm:ss . |
endTime |
Enddatum und -uhrzeit für den Trigger. Der Trigger wird am angegebenen Enddatum und der Enduhrzeit beendet. Der Wert für die Eigenschaft darf nicht in der Vergangenheit liegen. Diese Eigenschaft ist optional. Für die Zeitzone UTC ist das Format 'yyyy-MM-ddTHH:mm:ssZ' . Für andere Zeitzonen ist das Format yyyy-MM-ddTHH:mm:ss . |
timeZone |
Die Zeitzone, in der der Trigger erstellt wird. Diese Einstellung gilt für startTime , endTime und schedule . Unter folgendem Link finden Sie eine Liste der unterstützten Zeitzonen. |
recurrence |
Ein recurrence-Objekt, das die Wiederholungsregeln für den Trigger angibt. Das „recurrence“-Objekt unterstützt die Elemente frequency , interval , endTime , count und schedule . Wenn ein „recurrence“-Objekt definiert ist, ist das frequency -Element erforderlich. Die anderen Elemente des recurrence-Objekts sind optional. |
frequency |
Die Einheit der Häufigkeit, mit welcher der Trigger wiederholt wird. Die unterstützten Werte sind z. B. minute, , hour, , day , week und month . |
interval |
Eine positive ganze Zahl, die das Intervall des frequency -Werts angibt, der bestimmt, wie oft der Trigger ausgeführt wird. Wenn interval beispielsweise 3 entspricht und frequency gleich week ist, wird der Trigger alle drei Wochen wiederholt. |
schedule |
Der Wiederholungszeitplan für den Trigger. Die Wiederholung eines Triggers mit einem festgelegten frequency -Wert wird auf der Grundlage eines Wiederholungszeitplans ausgeführt. Die schedule -Eigenschaft enthält Anpassungen für die Wiederholung auf der Grundlage von Minuten, Stunden, Wochentagen, Monatstagen und Wochennummern. |
Wichtig
Für die UTC-Zeitzone müssen startTime
und endTime
im Format yyyy-MM-ddTHH:mm:ss
Z vorliegen. Für andere Zeitzonen müssen startTime
und endTime
im Format yyyy-MM-ddTHH:mm:ss
vorliegen.
Gemäß der Norm ISO 8601 markiert das Suffix Z des Zeitstempels den datetime-Wert für die Zeitzone UTC und macht das timeZone
-Feld damit überflüssig. Wenn das Suffix Z für UTC fehlt, tritt bei der Aktivierung des Triggers ein Fehler auf.
Schemastandards, Einschränkungen und Beispiele
JSON-Eigenschaft | type | Erforderlich | Standardwert | Gültige Werte | Beispiel |
---|---|---|---|---|---|
startTime |
String | Ja | Keine | Datum/Uhrzeit (nach ISO 8601) | Für die Zeitzone UTC: "startTime" : "2013-01-09T09:30:00-08:00Z" Für andere Zeitzonen: "2013-01-09T09:30:00-08:00" |
timeZone |
String | Ja | Keine | Zeitzonenwerte | "UTC" |
recurrence |
Objekt | Ja | Keine | Wiederholungsobjekt | "recurrence" : { "frequency" : "monthly", "interval" : 1 } |
interval |
Anzahl | Nein | 1 | 1 bis 1.000 | "interval":10 |
endTime |
String | Ja | Keine | Ein Datums-/Uhrzeitwert, der einen Zeitpunkt in der Zukunft darstellt | Für die Zeitzone UTC: "endTime" : "2013-02-09T09:30:00-08:00Z" Für andere Zeitzonen: "endTime" : "2013-02-09T09:30:00-08:00" |
schedule |
Objekt | Nein | Keine | Zeitplanobjekt | "schedule" : { "minute" : [30], "hour" : [8,17] } |
Zeitzonenoption
Im Folgenden finden Sie einige der für Plantrigger unterstützte Zeitzonen:
Zeitzone | UTC-Abweichung (ohne Sommerzeit) | timeZone-Wert | Umstellung auf Sommerzeit | Zeitstempelformat |
---|---|---|---|---|
Koordinierte Weltzeit (UTC) | 0 | UTC |
Nein | 'yyyy-MM-ddTHH:mm:ssZ' |
Pacific Time (PT) | -8 | Pacific Standard Time |
Ja | 'yyyy-MM-ddTHH:mm:ss' |
Central Time (CT) | –6 | Central Standard Time |
Ja | 'yyyy-MM-ddTHH:mm:ss' |
Eastern Time (ET) | -5 | Eastern Standard Time |
Ja | 'yyyy-MM-ddTHH:mm:ss' |
Greenwich Mean Time (GMT) | 0 | GMT Standard Time |
Ja | 'yyyy-MM-ddTHH:mm:ss' |
Mitteleuropäische Zeit | +1 | W. Europe Standard Time |
Ja | 'yyyy-MM-ddTHH:mm:ss' |
India Standard Time (IST) | +5:30 | India Standard Time |
Nein | 'yyyy-MM-ddTHH:mm:ss' |
China Normalzeit | +8 | China Standard Time |
Nein | 'yyyy-MM-ddTHH:mm:ss' |
Diese Liste ist unvollständig. Eine vollständige Liste der Zeitzonenoptionen finden Sie im Portal auf der Seite zur Triggererstellung.
startTime-Eigenschaft
Die folgende Tabelle zeigt, wie die startTime
-Eigenschaft eine Triggerausführung steuert:
startTime-Wert | Wiederholung ohne Zeitplan | Wiederholung mit Zeitplan |
---|---|---|
Startzeit in der Vergangenheit | Berechnet die erste zukünftige Ausführungszeit nach der Startzeit und nimmt die Ausführung zu diesem Zeitpunkt vor. Berechnet weitere Ausführungen auf Grundlage der letzten Ausführungszeit. Betrachten Sie das Beispiel nach dieser Tabelle. |
Der Trigger startet frühestens zur angegebenen Startzeit. Das erste Vorkommen basiert auf dem Zeitplan, der auf der Grundlage der Startzeit berechnet wird. Berechnet weitere Ausführungen auf Grundlage des Wiederholungszeitplans. |
Startzeit in der Zukunft oder Gegenwart | Wird einmalig zur angegebenen Startzeit ausgeführt. Berechnet weitere Ausführungen auf Grundlage der letzten Ausführungszeit. |
Der Trigger startet frühestens zur angegebenen Startzeit. Das erste Vorkommen basiert auf dem Zeitplan, der auf der Grundlage der Startzeit berechnet wird. Berechnet weitere Ausführungen auf Grundlage des Wiederholungszeitplans. |
Das folgende Beispiel veranschaulicht, was passiert, wenn die Startzeit in der Vergangenheit liegt und nur eine Wiederholung, aber kein Zeitplan angegeben ist. Nehmen Sie beispielsweise an, dass die aktuelle Uhrzeit 2017-04-08 13:00
ist, die Startzeit 2017-04-07 14:00
ist und die Wiederholung alle zwei Tage erfolgt. (Der recurrence
-Wert wird definiert, indem die frequency
-Eigenschaft auf day
und die interval
-Eigenschaft auf 2
festgelegt wird.) Beachten Sie, dass der startTime
-Wert in der Vergangenheit und vor der aktuellen Zeit liegt.
Unter diesen Umständen erfolgt die erste Ausführung am 2017-04-09
um 14:00
. Die Scheduler-Engine berechnet die Ausführungen auf Grundlage der Startzeit. In der Vergangenheit liegende Instanzen werden verworfen. Die Engine verwendet die nächste in der Zukunft liegende Instanz. In diesem Szenario ist die Startzeit auf den 2017-04-07
um 2:00pm
festgelegt. Die nächste Instanz folgt zwei Tage nach diesem Zeitpunkt, also am 2017-04-09
um 2:00pm
.
Die erste Ausführungszeit bleibt dieselbe, selbst wenn der startTime
-Wert 2017-04-05 14:00
oder 2017-04-01 14:00
ist. Nach der ersten Ausführung werden nachfolgende Ausführungen anhand des Zeitplans berechnet. Daher erfolgen die weiteren Ausführungen am 2017-04-11
um 2:00pm
, dann am 2017-04-13
um 2:00pm
, dann am 2017-04-15
um 2:00pm
und so weiter.
Wenn im Zeitplan eines Triggers keine Stunden oder Minuten festgelegt sind, wird der Stunden- oder Minutenwert der ersten Ausführung als Standardwert verwendet.
schedule-Eigenschaft
Mithilfe eines Zeitplans lässt sich die Anzahl der Triggerausführungen begrenzen. Beispiel: Wenn für einen Trigger mit einer monatlichen Häufigkeit nur die Ausführung am 31. Tag geplant ist, wird der Trigger nur in Monaten mit 31 Tagen ausgeführt.
Ein Zeitplan kann die Anzahl von Triggerausführungen aber auch erhöhen. Beispiel: Ein Trigger mit einem monatlichen Intervall, dessen Ausführung für die Monatstage 1 und 2 geplant ist, wird an den 1. und 2. Tagen des Monats anstatt einmal im Monat ausgeführt.
Bei Angabe mehrerer schedule
-Elemente werden diese in absteigender Reihenfolge der Zeitplaneinstellungen ausgewertet. Die Auswertung beginnt mit der Wochennummer und wird mit dem Monatstag, dem Wochentag, der Stunde und schließlich der Minute fortgesetzt.
Die folgende Tabelle enthält eine ausführliche Beschreibung der schedule
-Elemente:
JSON-Element | BESCHREIBUNG | Gültige Werte |
---|---|---|
minutes |
Minuten der Stunde, zu denen der Trigger ausgeführt wird |
|
hours |
Stunden des Tages, zu denen der Trigger ausgeführt wird |
|
weekDays |
Tage der Woche, an denen der Trigger ausgeführt wird. Der Wert kann nur bei wöchentlicher Häufigkeit angegeben werden. |
|
monthlyOccurrences |
Tage des Monats, an denen der Trigger ausgeführt wird. Der Wert kann nur bei monatlicher Häufigkeit angegeben werden. |
|
monthDays |
Tag des Monats, an dem der Trigger ausgeführt wird. Der Wert kann nur bei monatlicher Häufigkeit angegeben werden. |
|
Beispiele für Wiederholungszeitpläne von Triggern
Dieser Abschnitt enthält Beispiele für Wiederholungszeitpläne und konzentriert sich dabei auf das schedule
-Objekt und die dazugehörigen Elemente.
In den Beispielen wird angenommen, dass der interval
-Wert auf 1
festgelegt und der frequency
-Wert gemäß der Zeitplandefinition richtig ist. Der frequency
-Wert kann z. B. nicht day
entsprechen, wenn gleichzeitig eine monthDays
-Änderung im schedule
-Objekt erfolgt. Solche Einschränkungen werden in der Tabelle im vorhergehenden Abschnitt erwähnt.
Beispiel | BESCHREIBUNG |
---|---|
{"hours":[5]} |
Ausführung täglich um 05:00 Uhr. |
{"minutes":[15], "hours":[5]} |
Ausführung täglich um 05:15 Uhr. |
{"minutes":[15], "hours":[5,17]} |
Ausführung täglich um 05:15 und 17:15 Uhr. |
{"minutes":[15,45], "hours":[5,17]} |
Ausführung täglich um 05:15 Uhr, 05:45 Uhr, 17:15 Uhr und 17:45 Uhr. |
{"minutes":[0,15,30,45]} |
Ausführung alle 15 Minuten. |
{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]} |
Stündliche Ausführung. Dieser Trigger wird stündlich ausgeführt. Die Minuten werden vom startTime -Wert gesteuert, wenn ein Wert angegeben ist. Wenn kein Wert angegeben ist, werden die Minuten von der Erstellungszeit gesteuert. Lautet die Start- oder Erstellungszeit also beispielsweise 12:25 Uhr, wird der Trigger um 00:25 Uhr, 01:25 Uhr, 02:25 Uhr etc. und um 23:25 Uhr ausgeführt.Dieser Zeitplan entspricht einem Trigger mit einem frequency -Wert von hour , einem interval -Wert von 1 und keinem schedule -Wert. Dieser Zeitplan kann mit anderen frequency - und interval -Werten verwendet werden, um andere Trigger zu erstellen. Beispiel: Wenn der frequency -Wert month entspricht, wird der Zeitplan nur einmal im Monat ausgeführt anstatt wie beim frequency -Wert day jeden Tag. |
{"minutes":[0]} |
Ausführung jeweils zur vollen Stunde. Dieser Trigger wird immer zur vollen Stunde ab 00:00 Uhr (dann 01:00 Uhr, 02:00 Uhr und so weiter) ausgeführt. Dieser Zeitplan entspricht einem Trigger mit einem frequency -Wert von hour und einem startTime -Wert von null Minuten oder einem Trigger mit keinem schedule -Wert und einem frequency -Wert von day . Wenn der frequency -Wert week oder month ist, wird der Zeitplan nur an einem Tag in der Woche bzw. im Monat ausgeführt. |
{"minutes":[15]} |
Stündliche Ausführung jeweils 15 Minuten nach der vollen Stunde. Dieser Trigger wird stündlich immer 15 Minuten nach der vollen Stunde ab 00:15 Uhr, dann 01:15 Uhr, 02:15 Uhr und so weiter ausgeführt und endet um 23:15 Uhr. |
{"hours":[17], "weekDays":["saturday"]} |
Wöchentliche Ausführung, immer samstags um 17:00 Uhr. |
{"hours":[17], "weekDays":["monday", "wednesday", "friday"]} |
Wöchentliche Ausführung am Montag, Mittwoch und Freitag, jeweils um 17:00 Uhr. |
{"minutes":[15,45], "hours":[17], "weekDays":["monday", "wednesday", "friday"]} |
Wöchentliche Ausführung am Montag, Mittwoch und Freitag, jeweils um 17:15 und 17:45 Uhr. |
{"minutes":[0,15,30,45], "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} |
Ausführung an Wochentagen im 15-Minuten-Takt. |
{"minutes":[0,15,30,45], "hours": [9, 10, 11, 12, 13, 14, 15, 16] "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} |
Ausführung an Wochentagen zwischen 09:00 Uhr und 16:45 Uhr im 15-Minuten-Takt. |
{"weekDays":["tuesday", "thursday"]} |
Ausführung jeweils dienstags und donnerstags zur festgelegten Startzeit. |
{"minutes":[0], "hours":[6], "monthDays":[28]} |
Ausführung um 06:00 Uhr am 28. Tag jedes Monats (Voraussetzung: frequency -Wert entspricht month ) |
{"minutes":[0], "hours":[6], "monthDays":[-1]} |
Ausführung um 06:00 Uhr am letzten Tag des Monats. Zur Ausführung eines Triggers am letzten Tag eines Monats verwenden Sie „-1“ anstatt Tag 28, 29, 30 oder 31. |
{"minutes":[0], "hours":[6], "monthDays":[1,-1]} |
Ausführung jeweils am ersten und letzten Tag jedes Monats um 06:00 Uhr. |
{monthDays":[1,14]} |
Ausführung jeweils am ersten und 14. Tag jedes Monats zur festgelegten Startzeit. |
{"minutes":[0], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1}]} |
Ausführung am ersten Freitag jedes Monats um 05:00 Uhr. |
{"monthlyOccurrences":[{"day":"friday", "occurrence":1}]} |
Ausführung am ersten Freitag jedes Monats zur festgelegten Startzeit. |
{"monthlyOccurrences":[{"day":"friday", "occurrence":-3}]} |
Monatliche Ausführung am dritten Freitag ab Monatsende zur festgelegten Startzeit. |
{"minutes":[15], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} |
Ausführung am ersten und letzten Freitag jedes Monats um 05:15 Uhr. |
{"monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} |
Ausführung am ersten und letzten Freitag jedes Monats zur festgelegten Startzeit. |
{"monthlyOccurrences":[{"day":"friday", "occurrence":5}]} |
Ausführung am fünften Freitag jedes Monats zur festgelegten Startzeit. Wenn in einem Monat kein fünfter Freitag vorhanden ist, wird die Pipeline nicht ausgeführt, da die Ausführung ausschließlich für den fünften Freitag geplant ist. Zur Ausführung des Triggers am letzten Freitag des Monats empfiehlt sich u.U. die Verwendung von „-1“ anstelle von „5“ als occurrence -Wert. |
{"minutes":[0,15,30,45], "monthlyOccurrences":[{"day":"friday", "occurrence":-1}]} |
Ausführung im 15-Minuten-Takt am letzten Freitag des Monats. |
{"minutes":[15,45], "hours":[5,17], "monthlyOccurrences":[{"day":"wednesday", "occurrence":3}]} |
Ausführung um 05:15, 05:45, 17:15 und 17:45 Uhr am dritten Mittwoch jedes Monats. |
Zugehöriger Inhalt
- Weitere Informationen zu Triggern finden Sie unter Pipelineausführung und -trigger.
- Informationen zum Verweisen auf Triggermetadaten in der Pipeline finden Sie unter Verweisen auf Triggermetadaten in Pipelineausführungen.