Tworzenie wyzwalacza uruchamiającego potok według harmonogramu
DOTYCZY: Azure Data Factory Azure Synapse Analytics
Napiwek
Wypróbuj usługę Data Factory w usłudze Microsoft Fabric — rozwiązanie analityczne typu all-in-one dla przedsiębiorstw. Usługa Microsoft Fabric obejmuje wszystko, od przenoszenia danych do nauki o danych, analizy w czasie rzeczywistym, analizy biznesowej i raportowania. Dowiedz się, jak bezpłatnie rozpocząć nową wersję próbną !
Ten artykuł zawiera informacje o wyzwalaczu harmonogramu oraz krokach tworzenia, uruchamiania i monitorowania wyzwalacza harmonogramu. Aby uzyskać informacje o innych typach wyzwalaczy, zobacz Wykonywanie i wyzwalacze potoku.
Podczas tworzenia wyzwalacza harmonogramu należy określić harmonogram (datę rozpoczęcia, cykl, datę zakończenia itp.) dla wyzwalacza i skojarzyć go z potokiem. Między potokami i wyzwalaczami występuje relacja wiele-do-wielu. Wiele wyzwalaczy może uruchomić jeden potok. Jeden wyzwalacz może uruchamiać wiele potoków.
W poniższych sekcjach przedstawiono kroki tworzenia wyzwalacza harmonogramu na różne sposoby.
Środowisko portalu usługi Azure Data Factory i usługi Synapse
Możesz utworzyć wyzwalacz harmonogramu, aby zaplanować okresowe uruchamianie potoku (co godzinę, codziennie itp.).
Uwaga
Aby zapoznać się z kompletnym przewodnikiem tworzenia potoku i wyzwalacza harmonogramu, który kojarzy wyzwalacz z potokiem, a także uruchamia i monitoruje potok, zobacz Szybki start: tworzenie fabryki danych przy użyciu interfejsu użytkownika usługi Data Factory.
Przejdź do karty Edycja w usłudze Data Factory lub na karcie Integracja w usłudze Azure Synapse.
Wybierz pozycję Wyzwalacz w menu, a następnie wybierz pozycję Nowy/Edytuj.
Na stronie Dodawanie wyzwalaczy wybierz pozycję Wybierz wyzwalacz..., a następnie wybierz pozycję +Nowy.
Na stronie Nowy wyzwalacz wykonaj następujące czynności:
Upewnij się, że dla opcji Typ wybrano opcję Harmonogram.
Określ datę rozpoczęcia wyzwalacza dla daty rozpoczęcia. Jest ona domyślnie ustawiona na bieżącą datę/godzinę w uniwersalnym czasie koordynowanym (UTC).
Określ strefę czasową, w której zostanie utworzony wyzwalacz. Ustawienie strefy czasowej będzie miało zastosowanie do opcji Data rozpoczęcia, Data zakończenia i Czas wykonywania harmonogramu w opcjach zaawansowanego cyklu. Zmiana ustawienia Strefy czasowej nie spowoduje automatycznej zmiany daty rozpoczęcia. Upewnij się, że data rozpoczęcia jest poprawna w określonej strefie czasowej. Należy pamiętać, że zaplanowany czas wykonania wyzwalacza zostanie uznany za po dacie rozpoczęcia (upewnij się, że data rozpoczęcia jest co najmniej 1 minuta mniejsza niż czas wykonania, w przeciwnym razie potok zostanie wyzwolony w następnym cyklu).
Uwaga
W przypadku stref czasowych, które obserwują oszczędność światła dziennego, czas wyzwalacza automatycznie dostosuje się do zmiany dwa razy w roku, jeśli cykl jest ustawiony na dni lub powyżej. Aby zrezygnować ze zmiany czasu letniego, wybierz strefę czasową, która nie obserwuje oszczędzania światła dziennego, na przykład UTC
Ważne
Zmiana czasu letniego odbywa się tylko w przypadku wyzwalacza z cyklem ustawionym na dni lub powyżej. Jeśli wyzwalacz ma ustawioną częstotliwość Godziny lub Minuty , będzie on nadal uruchamiany w regularnych odstępach czasu.
Określ cykl dla wyzwalacza. Wybierz jedną z wartości z listy rozwijanej (co minuta, co minuta, co godzinę, codziennie, co tydzień i co miesiąc). Wprowadź mnożnik w polu tekstowym. Jeśli na przykład chcesz, aby wyzwalacz był uruchamiany raz na 15 minut, wybierz pozycję Co minutę i wprowadź wartość 15 w polu tekstowym.
Jeśli z listy rozwijanej wybierzesz pozycję "Dni, Tygodnie lub Miesiące", możesz znaleźć pozycję "Zaawansowane opcje cyklu".
Aby określić datę zakończenia, wybierz pozycję Określ datę zakończenia, a następnie wybierz przycisk OK. Z każdym uruchomieniem potoku wiąże się koszt. Jeśli testujesz, możesz upewnić się, że potok jest wyzwalany tylko kilka razy. Upewnij się również, że okres między czasem publikowania i czasem zakończenia będzie wystarczający do uruchomienia potoku. Wyzwalacz wchodzi w życie dopiero po opublikowaniu rozwiązania, a nie podczas zapisywania wyzwalacza w interfejsie użytkownika.
W oknie Nowy wyzwalacz wybierz pozycję Tak w opcji Aktywowano, a następnie wybierz przycisk OK. To pole wyboru umożliwia późniejsze dezaktywowanie wyzwalacza.
W oknie Nowy wyzwalacz przejrzyj komunikat ostrzegawczy, a następnie wybierz przycisk OK.
Wybierz pozycję Opublikuj wszystko , aby opublikować zmiany. Dopóki nie opublikujesz zmian, wyzwalacz nie rozpocznie wyzwalania przebiegów potoku.
Przejdź do karty Uruchomienia potoku po lewej stronie, a następnie wybierz pozycję Odśwież, aby odświeżyć listę. Zostaną wyświetlone uruchomienia potoków wyzwalane przez zaplanowany wyzwalacz. Zwróć uwagę na wartości w kolumnie Wyzwolone przez. Jeśli używasz opcji Wyzwól teraz , na liście zostanie wyświetlony wyzwalacz ręczny.
Przejdź do widoku Harmonogram przebiegów \ wyzwalaczy.
Azure PowerShell
Uwaga
Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.
W tej sekcji pokazano, jak używać programu Azure PowerShell do tworzenia, uruchamiania i monitorowania wyzwalacza harmonogramu. Aby zobaczyć, jak działa ten przykład, najpierw zapoznaj się z przewodnikiem Szybki start: tworzenie fabryki danych przy użyciu programu Azure PowerShell. Następnie dodaj następujący kod do metody main, która tworzy i uruchamia wyzwalacz harmonogramu uruchamiany co 15 minut. Wyzwalacz jest skojarzony z potokiem o nazwie Adfv2QuickStartPipeline utworzonym w ramach przewodnika Szybki start.
Wymagania wstępne
Subskrypcja platformy Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Azure PowerShell. Postępuj zgodnie z instrukcjami w temacie Instalowanie programu Azure PowerShell w systemie Windows przy użyciu modułu PowerShellGet.
Przykładowy kod
Utwórz plik JSON o nazwie MyTrigger.json w folderze C:\ADFv2QuickStartPSH\ o następującej zawartości:
Ważne
Przed zapisaniem pliku JSON ustaw wartość elementu startTime na bieżącą godzinę UTC. Ustaw wartość elementu endTime na jedną godzinę po bieżącej godzinie UTC.
{ "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" } } ] } }
We fragmencie kodu JSON:
Element type wyzwalacza jest ustawiony na wartość "ScheduleTrigger".
Element frequency jest ustawiony na wartość "Minute", a element interval jest ustawiony na 15. W związku z tym wyzwalacz uruchamia potok co 15 minut między godzinami rozpoczęcia i zakończenia.
Element timeZone określa strefę czasową, w której jest tworzony wyzwalacz. To ustawienie ma wpływ zarówno na startTime, jak i endTime.
Element endTime jest jedną godzinę po wartości elementu startTime . W związku z tym wyzwalacz uruchamia potok 15 minut, 30 minut i 45 minut po godzinie rozpoczęcia. Nie zapomnij zaktualizować godziny rozpoczęcia do bieżącej godziny UTC, a godzina zakończenia do godziny ostatniej godziny rozpoczęcia.
Ważne
W przypadku strefy czasowej UTC czas startTime i endTime muszą być zgodne z formatem "rrrr-MM-ddTHH:mm:ssZ", podczas gdy w przypadku innych stref czasowych, startTime i endTime należy postępować zgodnie z instrukcjami "rrrr-MM-ddTHH:mm:ss".
Zgodnie ze standardem ISO 8601 sufiks Z oznacza znacznik czasu daty/godziny do strefy czasowej UTC i renderuje pole timeZone bezużyteczne. Brak sufiksu Z dla strefy czasowej UTC spowoduje błąd po aktywacji wyzwalacza.
Wyzwalacz jest skojarzony z potokiem Adfv2QuickStartPipeline . Aby skojarzyć wiele potoków z wyzwalaczem, dodaj więcej sekcji pipelineReference .
Potok w przewodniku Szybki start przyjmuje dwie wartości parametrów: inputPath i outputPath. I przekazujesz wartości tych parametrów z wyzwalacza.
Utwórz wyzwalacz przy użyciu polecenia cmdlet Set-AzDataFactoryV2Trigger :
Set-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger" -DefinitionFile "C:\ADFv2QuickStartPSH\MyTrigger.json"
Upewnij się, że stan wyzwalacza jest zatrzymany przy użyciu polecenia cmdlet Get-AzDataFactoryV2Trigger :
Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
Uruchom wyzwalacz przy użyciu polecenia cmdlet Start-AzDataFactoryV2Trigger :
Start-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
Upewnij się, że stan wyzwalacza to Rozpoczęto przy użyciu polecenia cmdlet Get-AzDataFactoryV2Trigger :
Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
Pobierz przebiegi wyzwalacza w programie Azure PowerShell przy użyciu polecenia cmdlet Get-AzDataFactoryV2TriggerRun . Aby uzyskać informacje o uruchomieniach wyzwalacza, wykonaj następujące polecenie okresowo. Zaktualizuj wartości TriggerRunStartedAfter i TriggerRunStartedBefore, aby odpowiadały wartościom w definicji wyzwalacza:
Get-AzDataFactoryV2TriggerRun -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -TriggerName "MyTrigger" -TriggerRunStartedAfter "2017-12-08T00:00:00" -TriggerRunStartedBefore "2017-12-08T01:00:00"
Uwaga
Czas wyzwalacza harmonogramu jest określony w znaczniku czasu UTC. TriggerRunStartedAfter i TriggerRunStartedBefore oczekuje również znacznika czasu UTC
Aby monitorować uruchomienia wyzwalacza i uruchomienia potoków w witrynie Azure Portal, zobacz Monitorowanie przebiegów potoków.
Interfejs wiersza polecenia platformy Azure
W tej sekcji pokazano, jak używać interfejsu wiersza polecenia platformy Azure do tworzenia, uruchamiania i monitorowania wyzwalacza harmonogramu. Aby zobaczyć, jak działa ten przykład, najpierw zapoznaj się z przewodnikiem Szybki start: tworzenie usługi Azure Data Factory przy użyciu interfejsu wiersza polecenia platformy Azure. Następnie wykonaj poniższe kroki, aby utworzyć i uruchomić wyzwalacz harmonogramu uruchamiany co 15 minut. Wyzwalacz jest skojarzony z potokiem o nazwie Adfv2QuickStartPipeline utworzonym w ramach przewodnika Szybki start.
Wymagania wstępne
Użyj środowiska powłoki Bash w usłudze Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Szybki start dotyczący powłoki Bash w usłudze Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj interfejs wiersza polecenia platformy Azure. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie interfejsu wiersza polecenia platformy Azure w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić interfejs wiersza polecenia platformy Azure w kontenerze platformy Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do interfejsu wiersza polecenia platformy Azure za pomocą polecenia az login. Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Aby uzyskać inne opcje logowania, zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure.
Po wyświetleniu monitu zainstaluj rozszerzenie interfejsu wiersza polecenia platformy Azure podczas pierwszego użycia. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Korzystanie z rozszerzeń w interfejsie wiersza polecenia platformy Azure.
Uruchom polecenie az version, aby znaleźć zainstalowane wersje i biblioteki zależne. Aby uaktualnić do najnowszej wersji, uruchom polecenie az upgrade.
Przykładowy kod
W katalogu roboczym utwórz plik JSON o nazwie MyTrigger.json z właściwościami wyzwalacza. W tym przykładzie użyj następującej zawartości:
Ważne
Przed zapisaniem pliku JSON ustaw wartość elementu startTime na bieżącą godzinę UTC. Ustaw wartość elementu endTime na jedną godzinę po bieżącej godzinie UTC.
{ "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" } } ] }
We fragmencie kodu JSON:
Element type wyzwalacza jest ustawiony na wartość "ScheduleTrigger".
Element frequency jest ustawiony na wartość "Minute", a element interval jest ustawiony na 15. W związku z tym wyzwalacz uruchamia potok co 15 minut między godzinami rozpoczęcia i zakończenia.
Element timeZone określa strefę czasową, w której jest tworzony wyzwalacz. To ustawienie ma wpływ zarówno na startTime, jak i endTime.
Element endTime jest jedną godzinę po wartości elementu startTime . W związku z tym wyzwalacz uruchamia potok 15 minut, 30 minut i 45 minut po godzinie rozpoczęcia. Nie zapomnij zaktualizować godziny rozpoczęcia do bieżącej godziny UTC, a godzina zakończenia do godziny ostatniej godziny rozpoczęcia.
Ważne
W przypadku strefy czasowej UTC czas startTime i endTime muszą być zgodne z formatem "rrrr-MM-ddTHH:mm:ssZ", podczas gdy w przypadku innych stref czasowych, startTime i endTime należy postępować zgodnie z instrukcjami "rrrr-MM-ddTHH:mm:ss".
Zgodnie ze standardem ISO 8601 sufiks Z oznacza znacznik czasu daty/godziny do strefy czasowej UTC i renderuje pole timeZone bezużyteczne. Brak sufiksu Z dla strefy czasowej UTC spowoduje błąd po aktywacji wyzwalacza.
Wyzwalacz jest skojarzony z potokiem Adfv2QuickStartPipeline . Aby skojarzyć wiele potoków z wyzwalaczem, dodaj więcej sekcji pipelineReference .
Potok w przewodniku Szybki start przyjmuje dwie wartości parametrów: inputPath i outputPath. I przekazujesz wartości tych parametrów z wyzwalacza.
Utwórz wyzwalacz za pomocą polecenia az datafactory trigger create :
az datafactory trigger create --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger" --properties @MyTrigger.json
Upewnij się, że stan wyzwalacza jest zatrzymany przy użyciu polecenia az datafactory trigger show :
az datafactory trigger show --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger"
Uruchom wyzwalacz za pomocą polecenia az datafactory trigger start :
az datafactory trigger start --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger"
Upewnij się, że stan wyzwalacza to Uruchomiono przy użyciu polecenia az datafactory trigger show :
az datafactory trigger show --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger"
Pobierz przebiegi wyzwalacza w interfejsie wiersza polecenia platformy Azure przy użyciu polecenia az datafactory trigger-run query-by-factory . Aby uzyskać informacje na temat przebiegów wyzwalacza, wykonaj następujące polecenie okresowo. Zaktualizuj wartości last-update-after i last-updated-before, aby były zgodne z wartościami w definicji wyzwalacza:
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"
Uwaga
Czas wyzwalacza harmonogramu jest określony w znaczniku czasu UTC. last-updated-after i last-updated-before również oczekuje znacznika czasu UTC
Aby monitorować uruchomienia wyzwalacza i uruchomienia potoków w witrynie Azure Portal, zobacz Monitorowanie przebiegów potoków.
Zestaw SDK platformy .NET
W tej sekcji pokazano, jak używać zestawu SDK platformy .NET do tworzenia, uruchamiania i monitorowania wyzwalacza. Aby zobaczyć, jak działa ten przykład, najpierw zapoznaj się z przewodnikiem Szybki start: tworzenie fabryki danych przy użyciu zestawu .NET SDK. Następnie dodaj następujący kod do metody main, która tworzy i uruchamia wyzwalacz harmonogramu uruchamiany co 15 minut. Wyzwalacz jest skojarzony z potokiem o nazwie Adfv2QuickStartPipeline utworzonym w ramach przewodnika Szybki start.
Aby utworzyć i uruchomić wyzwalacz harmonogramu uruchamiany co 15 minut, dodaj następujący kod do metody main:
// 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);
Aby utworzyć wyzwalacze w innej strefie czasowej, inne niż UTC, wymagane są następujące ustawienia:
<<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;
Aby monitorować przebieg wyzwalacza, dodaj następujący kod przed ostatnią Console.WriteLine
instrukcją w przykładzie:
// 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();
}
}
}
Aby monitorować uruchomienia wyzwalacza i uruchomienia potoków w witrynie Azure Portal, zobacz Monitorowanie przebiegów potoków.
Zestaw SDK dla języka Python
W tej sekcji pokazano, jak używać zestawu SDK języka Python do tworzenia, uruchamiania i monitorowania wyzwalacza. Aby zobaczyć, jak działa ten przykład, najpierw zapoznaj się z przewodnikiem Szybki start: tworzenie fabryki danych przy użyciu zestawu SDK języka Python. Następnie dodaj następujący blok kodu po bloku kodu "monitorowanie uruchomienia potoku" w skrypsie języka Python. Ten kod tworzy wyzwalacz harmonogramu uruchamiany co 15 minut między określonymi godzinami rozpoczęcia i zakończenia. Zaktualizuj zmienną start_time do bieżącej godziny UTC, a zmienna end_time na jedną godzinę po bieżącej godzinie UTC.
# 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)
Aby monitorować uruchomienia wyzwalacza i uruchomienia potoków w witrynie Azure Portal, zobacz Monitorowanie przebiegów potoków.
Szablon usługi Azure Resource Manager
Aby utworzyć wyzwalacz, możesz użyć szablonu usługi Azure Resource Manager. Aby uzyskać instrukcje krok po kroku, zobacz Tworzenie fabryki danych Azure przy użyciu szablonu usługi Resource Manager.
Przekazywanie czasu rozpoczęcia wyzwalacza do potoku
Usługa Azure Data Factory w wersji 1 obsługuje odczytywanie lub zapisywanie partycjonowanych danych przy użyciu zmiennych systemowych: SliceStart, SliceEnd, WindowStart i WindowEnd. W bieżącej wersji potoków usług Azure Data Factory i Synapse można osiągnąć to zachowanie przy użyciu parametru potoku. Czas rozpoczęcia i zaplanowany czas wyzwalacza są ustawiane jako wartość parametru potoku. W poniższym przykładzie zaplanowany czas wyzwalacza jest przekazywany jako wartość do parametru scheduledRunTime potoku:
"parameters": {
"scheduledRunTime": "@trigger().scheduledTime"
}
Schemat systemu JSON
Poniższa definicja JSON pokazuje, jak utworzyć wyzwalacz harmonogramu z planowaniem i cyklem:
{
"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>"
}
}
]
}
}
Ważne
Właściwość parameters jest obowiązkową wartością elementu właściwości pipelines. Jeśli potok nie przyjmuje żadnych parametrów, należy dodać pustą definicję JSON dla właściwości parameters.
Przegląd schematu
Poniższa tabela zawiera ogólne omówienie głównych elementów schematu odnoszących się do powtarzania i planowania wyzwalacza:
Właściwość JSON | opis |
---|---|
startTime | Wartość daty i godziny. W przypadku prostych harmonogramów wartość właściwości startTime dotyczy pierwszego wystąpienia. W przypadku harmonogramów złożonych wyzwalacz nie jest uruchamiany wcześniej niż określona wartość właściwości startTime. W przypadku strefy czasowej UTC format to 'yyyy-MM-ddTHH:mm:ssZ' , dla innych stref czasowych, format to 'yyyy-MM-ddTHH:mm:ss' . |
endTime | Data i godzina zakończenia wyzwalacza. Wyzwalacz nie jest wykonywany po określonej dacie i godzinie zakończenia. Wartość właściwości nie może odnosić się do przeszłości. Ta właściwość jest opcjonalna. W przypadku strefy czasowej UTC format to 'yyyy-MM-ddTHH:mm:ssZ' , dla innych stref czasowych, format to 'yyyy-MM-ddTHH:mm:ss' . |
timeZone | Strefa czasowa, w której jest tworzony wyzwalacz. To ustawienie ma wpływ na startTime, endTime i harmonogram. Zobacz listę obsługiwanych stref czasowych |
recurrence | Obiekt cyklu określający reguły powtarzania wyzwalacza. Obiekt cyklu obsługuje elementy właściwości frequency, interval, endTime, count i schedule. Po zdefiniowaniu obiektu cyklu wymagany jest element właściwości frequency. Inne elementy obiektu cyklu są opcjonalne. |
frequency | Jednostka częstotliwości powtarzania wyzwalacza. Obsługiwane wartości to „minute” („minuta”), „hour” („godzina”), „day” („dzień”), „week” („tydzień”) i „month” („miesiąc”). |
interval | Dodatnia liczba całkowita oznaczająca interwał wartości właściwości frequency, która określa częstotliwość uruchamiania wyzwalacza. Jeśli na przykład właściwość interval ma wartość 3, a właściwość frequency ma wartość „week” („tydzień”), wyzwalacz jest powtarzany co 3 tygodnie. |
schedule | Harmonogram cyklu wyzwalacza. Wyzwalacz z określoną wartością właściwości frequency zmienia swój cykl na podstawie harmonogramu cyklu. Właściwość schedule zawiera modyfikacje cyklu oparte na minutach, godzinach, dniach tygodnia, dniach miesiąca i numerze tygodnia. |
Ważne
W przypadku strefy czasowej UTC czas startTime i endTime muszą być zgodne z formatem "rrrr-MM-ddTHH:mm:ssZ", podczas gdy w przypadku innych stref czasowych, startTime i endTime należy postępować zgodnie z instrukcjami "rrrr-MM-ddTHH:mm:ss".
Zgodnie ze standardem ISO 8601 sufiks Z oznacza znacznik czasu daty/godziny do strefy czasowej UTC i renderuje pole timeZone bezużyteczne. Brak sufiksu Z dla strefy czasowej UTC spowoduje błąd po aktywacji wyzwalacza.
Wartości domyślne, limity i przykłady harmonogramów
Właściwość JSON | Typ | Wymagania | Domyślna wartość | Prawidłowe wartości | Przykład |
---|---|---|---|---|---|
startTime | String | Tak | None | Daty i godziny ISO-8601 | dla strefy czasowej UTC "startTime" : "2013-01-09T09:30:00-08:00Z" dla innego strefy czasowej "2013-01-09T09:30:00-08:00" |
timeZone | String | Tak | None | Wartości strefy czasowej | "UTC" |
recurrence | Objekt | Tak | None | Obiekt cyklu | "recurrence" : { "frequency" : "monthly", "interval" : 1 } |
interval | Liczba | Nie. | 1 | Od 1 do 1000 | "interval":10 |
endTime | String | Tak | None | Wartość daty i godziny reprezentująca godzinę w przyszłości. | dla strefy czasowej UTC "endTime" : "2013-02-09T09:30:00-08:00Z" dla innego strefy czasowej "endTime" : "2013-02-09T09:30:00-08:00" |
schedule | Objekt | Nie. | Brak | Obiekt harmonogramu | "schedule" : { "minute" : [30], "hour" : [8,17] } |
Opcja strefy czasowej
Poniżej przedstawiono niektóre strefy czasowe obsługiwane dla wyzwalaczy harmonogramu:
Strefa czasowa | Przesunięcie UTC (oszczędność czasu letniego) | wartość strefy czasowej | Obserwowanie letnich oszczędności | Format sygnatury czasowej |
---|---|---|---|---|
Uniwersalny czas koordynowany | 0 | UTC |
Nie. | 'yyyy-MM-ddTHH:mm:ssZ' |
Czas pacyficzny (PT) | -8 | Pacific Standard Time |
Tak | 'yyyy-MM-ddTHH:mm:ss' |
Czas centralny (CT) | -6 | Central Standard Time |
Tak | 'yyyy-MM-ddTHH:mm:ss' |
Czas wschodni (ET) | -5 | Eastern Standard Time |
Tak | 'yyyy-MM-ddTHH:mm:ss' |
Średni czas Greenwich (GMT) | 0 | GMT Standard Time |
Tak | 'yyyy-MM-ddTHH:mm:ss' |
Europa Środkowa (czas standardowy) | 1 | W. Europe Standard Time |
Tak | 'yyyy-MM-ddTHH:mm:ss' |
Indie (czas standardowy) | +5:30 | India Standard Time |
Nie. | 'yyyy-MM-ddTHH:mm:ss' |
Chiny (czas standardowy) | 8+ | China Standard Time |
Nie. | 'yyyy-MM-ddTHH:mm:ss' |
Ta lista jest niekompletna. Aby uzyskać pełną listę opcji strefy czasowej, zapoznaj się ze stroną tworzenia wyzwalacza portalu
Właściwość startTime
W poniższej tabeli przedstawiono, w jaki sposób właściwość startTime kontroluje uruchamianie wyzwalacza:
Wartość startTime | Cykl bez harmonogramu | Cykl z harmonogramem |
---|---|---|
Godzina rozpoczęcia w przeszłości | Oblicza pierwszy przyszły czas wykonania po czasie rozpoczęcia i uruchamia wyzwalacz w tym czasie. Uruchamia kolejne wykonania w oparciu o obliczenia wykonane na podstawie ostatniego czasu wykonania. Zobacz przykład znajdujący się pod tabelą. |
Wyzwalacz jest uruchamiany nie wcześniej niż w określonym czasie rozpoczęcia. Pierwsze wystąpienie opiera się na harmonogramie obliczonym na podstawie czasu rozpoczęcia. Kolejne wykonania opierają na harmonogramie cyklu. |
Godzina rozpoczęcia w przyszłości lub obecna | Uruchamiany raz o określonym czasie rozpoczęcia. Uruchamia kolejne wykonania w oparciu o obliczenia wykonane na podstawie ostatniego czasu wykonania. |
Wyzwalacz jest uruchamiany nie wcześniej niż w określonym czasie rozpoczęcia. Pierwsze wystąpienie opiera się na harmonogramie obliczonym na podstawie czasu rozpoczęcia. Kolejne wykonania opierają na harmonogramie cyklu. |
Zobaczmy przykład zdarzeń w przypadku, gdy czas rozpoczęcia przypada w przeszłości, z cyklem, ale bez harmonogramu. Załóżmy, że obecna data i godzina to 2017-04-08 13:00
, czas rozpoczęcia to 2017-04-07 14:00
, a cykl jest określony na 2 dni. (Wartość cyklu jest definiowana przez ustawienie właściwości frequency na "day" i właściwość interval na 2. Zwróć uwagę, że wartość startTime jest w przeszłości i występuje przed bieżącą godziną.
W tych warunkach pierwsze wykonanie znajduje się pod adresem 2017-04-09
14:00
. Aparat harmonogramu oblicza wystąpienia wykonania od czasu rozpoczęcia. Wszystkie wystąpienia w przeszłości są odrzucane. Aparat wykorzystuje następne wystąpienie, które ma miejsce w przyszłości. W tym scenariuszu czas rozpoczęcia wynosi , więc następne wystąpienie wynosi 2017-04-07
2:00pm
dwa dni od tego czasu, czyli 2017-04-09
o 2:00pm
wartości .
Czas pierwszego wykonania jest identyczny, nawet jeśli właściwość startTime ma wartość 2017-04-05 14:00
lub 2017-04-01 14:00
. Po pierwszym wykonaniu kolejne wykonania są obliczane przy użyciu harmonogramu. W związku z tym kolejne wykonania znajdują się w 2:00pm
2017-04-11
godzinie , a następnie 2017-04-13
w 2:00pm
2:00pm
, i 2017-04-15
tak dalej.
Gdy z kolei w harmonogramie wyzwalacza nie ustawiono godzin lub minut, wartością domyślną będą godziny lub minuty pierwszego wykonania.
Wartość schedule
Użycie harmonogramu może ograniczyć liczbę wykonań wyzwalacza. Jeśli na przykład uruchomienie wyzwalacza z częstotliwością miesięczną zaplanowano na 31. dzień, wyzwalacz będzie uruchamiany tylko w miesiącach, której mają 31 dni.
Harmonogram może także zwiększyć liczbę wykonań wyzwalacza. Na przykład wyzwalacz z częstotliwością miesięczną, którego uruchomienie zaplanowano na 1. i 2. dzień miesiąca, będzie uruchamiany 1. i 2. dnia miesiąca, a nie raz na miesiąc.
W przypadku określenia wielu elementów właściwości schedule ocena następuje od największego do najmniejszego elementu. Ocena jest wykonywana w następującej kolejności: numer tygodnia, dzień miesiąca, dzień tygodnia, godzina i minuta.
W poniższej tabeli opisano szczegółowo elementy właściwości schedule:
Element JSON | opis | Prawidłowe wartości |
---|---|---|
minutes | Minuty godziny, o których uruchamiany jest wyzwalacz. |
|
hours | Godziny dnia, o których uruchamiany jest wyzwalacz. |
|
weekDays | Dni tygodnia, w których uruchamiany jest wyzwalacz. Wartość można określić tylko z częstotliwością tygodniową. |
|
monthlyOccurrences | Dni miesiąca, w których uruchamiany jest wyzwalacz. Wartość można określić tylko z częstotliwością miesięczną. |
|
monthDays | Dzień miesiąca, w którym uruchamiany jest wyzwalacz. Wartość można określić tylko z częstotliwością miesięczną. |
|
Przykłady harmonogramów cyklu wyzwalaczy
Ta sekcja zawiera przykłady harmonogramów cyklu i koncentruje się na obiekcie właściwości schedule oraz jego elementach.
W przykładach założono, ze wartość właściwości interval wynosi 1 oraz że wartość właściwości frequency jest prawidłowa i zgodna z definicją harmonogramu. Na przykład nie można mieć właściwości frequency o wartości „day” i jednocześnie modyfikacji „monthDays” w obiekcie schedule. Tego typu ograniczenia są wymienione w tabeli w poprzedniej sekcji.
Przykład | opis |
---|---|
{"hours":[5]} |
Uruchamiany o godz. 5:00 każdego dnia. |
{"minutes":[15], "hours":[5]} |
Uruchamiany o godz. 5:15 każdego dnia. |
{"minutes":[15], "hours":[5,17]} |
Uruchamiany o godz. 5:15 i 17:15 każdego dnia. |
{"minutes":[15,45], "hours":[5,17]} |
Uruchamiany o godz. 5:15, 5:45, 17:15 i 17:45 każdego dnia. |
{"minutes":[0,15,30,45]} |
Uruchamiany co 15 minut. |
{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]} |
Uruchamiany co godzinę. Ten wyzwalacz jest uruchamiany co godzinę. Minuty są kontrolowane przez wartość właściwości startTime, gdy wartość jest określona. Jeśli wartość nie jest określona, minuty są kontrolowane przez czas utworzenia. Jeśli na przykład czas rozpoczęcia lub czas utworzenia (zależnie od sytuacji) to 12:25, wyzwalacz jest uruchamiany o godzinie 0:25, 1:25, 2:25, ..., 23:25. Ten harmonogram jest odpowiednikiem wyzwalacza z właściwością frequency o wartości „hour”, właściwością interval o wartości 1 i bez właściwości schedule. Tego harmonogramu można także używać z innymi wartościami właściwości frequency i interval do tworzenia innych wyzwalaczy. Gdy na przykład właściwość frequency ma wartość „month”, harmonogram jest uruchamiany tylko raz w miesiącu, a nie każdego dnia, gdy właściwość frequency ma wartość „day”. |
{"minutes":[0]} |
Uruchamiany co godzinę o pełnej godzinie. Ten wyzwalacz jest uruchamiany co godzinę o pełnej godzinie począwszy od godz. 0:00, a następnie o 1:00, 2:00 itd. Ten harmonogram jest odpowiednikiem wyzwalacza z wartością częstotliwości "hour" i wartością startTime o wartości zero minut lub bez harmonogramu, ale wartością częstotliwości "day". Jeśli wartość częstotliwości to "tydzień" lub "miesiąc", harmonogram wykonuje odpowiednio jeden dzień w tygodniu lub jeden dzień w miesiącu. |
{"minutes":[15]} |
Uruchamiany 15 minut po pełnej godzinie. Ten wyzwalacz jest uruchamiany 15 minut po pełnej godzinie począwszy od godz. 0:15, a następnie o 1:15, 2:15 itd. aż do 23.15. |
{"hours":[17], "weekDays":["saturday"]} |
Uruchamiany o godz. 17:00 w każdą sobotę. |
{"hours":[17], "weekDays":["monday", "wednesday", "friday"]} |
Uruchamiany o godz. 17:00 w każdy poniedziałek, środę i piątek. |
{"minutes":[15,45], "hours":[17], "weekDays":["monday", "wednesday", "friday"]} |
Uruchamiany o godz. 17:15 i 17:45 w każdy poniedziałek, środę i piątek. |
{"minutes":[0,15,30,45], "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} |
Uruchamiany co 15 minut w dni robocze. |
{"minutes":[0,15,30,45], "hours": [9, 10, 11, 12, 13, 14, 15, 16] "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} |
Uruchamiany co 15 minut w dni robocze, między godz. 9:00 a 16:45. |
{"weekDays":["tuesday", "thursday"]} |
Uruchamiany we wtorki i czwartki o określonej godzinie. |
{"minutes":[0], "hours":[6], "monthDays":[28]} |
Uruchamiany o godz. 6:00 28. dnia każdego miesiąca (zakładając, że właściwość frequency ma wartość „month”). |
{"minutes":[0], "hours":[6], "monthDays":[-1]} |
Uruchamiany o godz. 6:00 ostatniego dnia miesiąca. Aby uruchomić wyzwalacz ostatniego dnia miesiąca, użyj wartości -1 zamiast 28, 29, 30 lub 31. |
{"minutes":[0], "hours":[6], "monthDays":[1,-1]} |
Uruchamiany o godz. 6:00 pierwszego i ostatniego dnia każdego miesiąca. |
{monthDays":[1,14]} |
Uruchamiany 1. i 14. dnia każdego miesiąca o określonej godzinie. |
{"minutes":[0], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1}]} |
Uruchamiany w pierwszy piątek każdego miesiąca o godz. 5:00. |
{"monthlyOccurrences":[{"day":"friday", "occurrence":1}]} |
Uruchamiany w pierwszy piątek każdego miesiąca o określonej godzinie. |
{"monthlyOccurrences":[{"day":"friday", "occurrence":-3}]} |
Uruchamiany w trzeci piątek od końca każdego miesiąca o określonej godzinie. |
{"minutes":[15], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} |
Uruchamiany w pierwszy i ostatni piątek każdego miesiąca o godz. 5:00. |
{"monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} |
Uruchamiany w pierwszy i ostatni piątek każdego miesiąca o określonej godzinie. |
{"monthlyOccurrences":[{"day":"friday", "occurrence":5}]} |
Uruchamiany w piąty piątek każdego miesiąca o określonej godzinie. Jeśli miesiąc nie ma piątego piątku, potok nie jest uruchamiany, ponieważ jego harmonogram określa uruchamianie tylko w piąty piątek. Aby uruchomić wyzwalacz w ostatni piątek miesiąca, rozważ użycie wartości -1 zamiast 5 dla właściwości occurrence. |
{"minutes":[0,15,30,45], "monthlyOccurrences":[{"day":"friday", "occurrence":-1}]} |
Uruchamiany co 15 minut w ostatni piątek miesiąca. |
{"minutes":[15,45], "hours":[5,17], "monthlyOccurrences":[{"day":"wednesday", "occurrence":3}]} |
Uruchamiany o godz. 5:15, 5:45, 17:15 i 17:45 w trzecią środę każdego miesiąca. |
Powiązana zawartość
- Aby uzyskać szczegółowe informacje o wyzwalaczach, zobacz Wykonywanie i wyzwalacze potoku.
- Dowiedz się, jak odwoływać się do metadanych wyzwalacza w potoku, zobacz Reference Trigger Metadata in Pipeline Runs (Odwołania do metadanych wyzwalacza w uruchomieniach potoku)