Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 potoków i wyzwalacze.
Podczas tworzenia wyzwalacza harmonogramu należy określić harmonogram, taki jak data rozpoczęcia, częstotliwość lub data zakończenia harmonogramu, i skojarzyć go z potokiem. Między potokami danych i wyzwalaczami występuje relacja wiele-do-wielu. Wiele wyzwalaczy może uruchomić pojedynczy pipeline. Jeden wyzwalacz może uruchamiać wiele potoków.
W poniższych sekcjach przedstawiono kroki tworzenia wyzwalacza harmonogramu na różne sposoby.
Doświadczenie portalu Azure Data Factory i Azure Synapse
Możesz utworzyć wyzwalacz harmonogramu, aby zaplanować okresowe uruchamianie potoku, na przykład co godzinę lub codziennie.
Uwaga
Aby zapoznać się z pełnym przewodnikiem tworzenia potoku i wyzwalacza harmonogramu, który łączy wyzwalacz z potokiem oraz 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 :
Upewnij się, że dla opcji Typ wybrano opcję Harmonogram.
Określ datę i godzinę 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 jest tworzony wyzwalacz. Ustawienie strefy czasowej ma zastosowanie do opcji Data rozpoczęcia, Data zakończenia i Czas wykonywania harmonogramu w opcjach zaawansowanego cyklu. Zmiana ustawienia Strefa czasowa nie powoduje automatycznej zmiany daty rozpoczęcia. Upewnij się, że data rozpoczęcia jest poprawna w określonej strefie czasowej. Zaplanowany czas wykonania wyzwalacza jest brany pod uwagę po dacie rozpoczęcia. Upewnij się, że data rozpoczęcia jest co najmniej o 1 minutę wcześniejsza niż czas wykonania, w przeciwnym razie uruchomi to pipeline podczas następnego cyklu.
Uwaga
W przypadku stref czasowych, które obserwują oszczędność światła dziennego, wyzwalaj automatyczne dostosowywanie czasu dla zmiany dwa razy w roku, jeśli cykl jest ustawiony na Dni lub powyżej. Aby zrezygnować ze zmiany światła dziennego, wybierz strefę czasową, która nie obserwuje oszczędzania światła dziennego, na przykład czasu UTC.
Zmiana czasu letniego odbywa się tylko dla wyzwalacza z cyklem ustawionym na dni lub powyżej. Jeśli wyzwalacz jest ustawiony na częstotliwość Godziny lub Minuty , będzie on nadal uruchamiany w regularnych odstępach czasu.
Określ powtarzanie dla wyzwalacza. Wybierz jedną z wartości z listy rozwijanej (co minuta, co minuta, co godzinę, codziennie, co tydzień lub 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.
W obszarze Cykl, jeśli z listy rozwijanej wybierzesz pozycje Dni, Tygodnie lub Miesiące , możesz wyświetlić opcje zaawansowanego cyklu.
Aby określić datę zakończenia, wybierz pozycję Określ datę zakończenia. Określ informacje o zakończeniu, a następnie wybierz OK.
Koszt jest skojarzony z każdym uruchomieniem potoku. Jeśli testujesz, możesz zadbać o to, by pipeline był wyzwalany tylko kilka razy. Upewnij się jednak, że istnieje wystarczająca ilość czasu na uruchomienie potoku między czasem publikowania a czasem zakończenia. 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 będzie inicjować uruchamiania potoku.
Przejdź do karty Uruchomienia potoku po lewej stronie, a następnie wybierz pozycję Odśwież w celu zaktualizowania listy. Zobaczysz uruchomienia potoku wyzwalane przez zaplanowany wyzwalacz. Zwróć uwagę na wartości w kolumnie Wyzwalane przez. Jeśli używasz opcji Wyzwól teraz , na liście zostanie wyświetlony wyzwalacz ręczny.
Przejdź do widoku Harmonogram przebiegów> wyzwalacza.
Azure PowerShell
Uwaga
Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Aby rozpocząć, zobacz Instalowanie programu Azure PowerShell. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az programu PowerShell, zobacz Migrowanie 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óry tworzy i uruchamia wyzwalacz harmonogramu, działający co 15 minut. Wyzwalacz jest skojarzony z potokiem o nazwie Adfv2QuickStartPipeline, który utworzyłeś w ramach szybkiego startu.
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ść
startTimeelementu na bieżącą godzinę UTC. Ustaw wartośćendTimeelementu 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" } } ] } }W fragmencie JSON
Element wyzwalacza
typejest ustawiony naScheduleTrigger.Element
frequencyjest ustawiony naMinutewartość , aintervalelement jest ustawiony na15wartość . W związku z tym wyzwalacz uruchamia potok co 15 minut między czasem rozpoczęcia i zakończenia.Element
timeZoneokreśla strefę czasową, w której jest tworzony wyzwalacz. To ustawienie ma wpływ zarówno nastartTimeiendTime.Element
endTimejest jedną godzinę po wartościstartTimeelementu. W związku z tym wyzwalacz uruchamia potok po upływie 15 minut, 30 minut i 45 minut od godziny rozpoczęcia. Nie zapomnij zaktualizować godziny rozpoczęcia do bieżącej godziny UTC oraz godziny zakończenia na godzinę później.Ważne
Dla strefy czasowej
startTimeUTC iendTimenależy postępować zgodnie z formatemyyyy-MM-ddTHH:mm:ssZ. W przypadku innych strefstartTimeczasowych iendTimepostępuj zgodnie z formatemyyyy-MM-ddTHH:mm:ss.Zgodnie ze standardem ISO 8601, sufiks
Zjest używany do oznaczania daty i godziny w strefie czasowej UTC i czynienia polatimeZonebezużytecznym.ZJeśli brakuje sufiksu strefy czasowej UTC, wynik jest błędem po aktywacji wyzwalacza.Wyzwalacz jest skojarzony z potokiem
Adfv2QuickStartPipeline. Aby skojarzyć wiele pipeline'ów z wyzwalaczem, dodaj kolejne sekcjepipelineReference.Pipeline w przewodniku Quickstart przyjmuje dwie
parameterswartości:inputPathioutputPath. Wartości tych parametrów są przekazywane 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
TriggerRunStartedAfteriTriggerRunStartedBefore, 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 uruchamiania wyzwalaczy harmonogramu jest określony w znaczniku czasu UTC.
TriggerRunStartedAfterorazTriggerRunStartedBeforetakże oczekują znacznika czasu UTC.Aby monitorować uruchomienia wyzwalacza i uruchomienia potoków w portalu Azure, 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 kroki utworzenia i uruchomienia wyzwalacza harmonogramu, który działa co 15 minut. Wyzwalacz jest skojarzony z potokiem o nazwie Adfv2QuickStartPipeline, który utworzyłeś w ramach szybkiego startu.
Wymagania wstępne
Użyj powłoki Bash w środowisku usługi Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Rozpoczynanie pracy z usługą 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 używasz instalacji lokalnej, zaloguj się do interfejsu wiersza polecenia platformy Azure przy użyciu polecenia az login . Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Aby uzyskać inne opcje logowania, zobacz Uwierzytelnianie na platformie Azure przy użyciu interfejsu wiersza polecenia platformy Azure.
Po wyświetleniu monitu zainstaluj rozszerzenie CLI platformy Azure przy pierwszym użyciu. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Używanie rozszerzeń i zarządzanie nimi za pomocą interfejsu wiersza polecenia platformy Azure.
Uruchom az version, aby znaleźć zainstalowaną wersję i biblioteki zależne. Aby przeprowadzić uaktualnienie do najnowszej wersji, uruchom 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ść
startTimeelementu na bieżącą godzinę UTC. Ustaw wartośćendTimeelementu 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" } } ] }W fragmencie JSON
Element wyzwalacza
typejest ustawiony naScheduleTrigger.Element
frequencyjest ustawiony naMinutewartość , aintervalelement jest ustawiony na15wartość . W związku z tym wyzwalacz uruchamia potok co 15 minut między czasem rozpoczęcia i zakończenia.Element
timeZoneokreśla strefę czasową, w której jest tworzony wyzwalacz. To ustawienie ma wpływ zarówno nastartTimeiendTime.Element
endTimejest jedną godzinę po wartościstartTimeelementu. W związku z tym wyzwalacz uruchamia potok po upływie 15 minut, 30 minut i 45 minut od godziny rozpoczęcia. Nie zapomnij zaktualizować godziny rozpoczęcia do bieżącej godziny UTC oraz godziny zakończenia na godzinę później.Ważne
Dla strefy czasowej UTC
startTimeoraz endTime muszą być zgodne z formatemyyyy-MM-ddTHH:mm:ssZ. Z kolei dla innych stref czasowychstartTimeiendTimemuszą pasować do formatuyyyy-MM-ddTHH:mm:ss.Zgodnie ze standardem ISO 8601, sufiks Z jest używany do oznaczania daty i godziny w strefie czasowej UTC, co czyni pole
timeZonebezwartościowym. Jeśli w strefie czasowej UTC brakuje sufiksu Z , wynik jest błędem po aktywacji wyzwalacza.Wyzwalacz jest skojarzony z potokiem
Adfv2QuickStartPipeline. Aby skojarzyć wiele pipeline'ów z wyzwalaczem, dodaj kolejne sekcjepipelineReference.Pipeline w przewodniku Quickstart przyjmuje dwie
parameterswartości:inputPathioutputPath. Wartości tych parametrów są przekazywane 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.jsonAby potwierdzić, że stan wyzwalacza to Zatrzymany, użyj 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 Azure CLI przy użyciu komendy az datafactory trigger-run query-by-factory. Aby uzyskać informacje na temat przebiegów wyzwalacza, okresowo wykonuj następujące polecenie. Zaktualizuj wartości
last-updated-afterilast-updated-before, aby odpowiadały wartościom 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
Czasy wyzwalaczy harmonogramu są określone 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 portalu Azure, 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óry tworzy i uruchamia wyzwalacz harmonogramu, działający co 15 minut. Wyzwalacz jest skojarzony z potokiem o nazwie Adfv2QuickStartPipeline, który utworzyłeś w ramach szybkiego startu.
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 portalu Azure, 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 monitor the pipeline run w skrypcie w języku 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 i end_time zmienną na 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 portalu Azure, 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 Azure Resource Manager.
Przekaż czas rozpoczęcia wyzwalacza do potoku
Usługa Azure Data Factory w wersji 1 obsługuje odczytywanie lub zapisywanie partycjonowanych danych przy użyciu zmiennych SliceStartsystemowych , , SliceEndWindowStarti WindowEnd. W bieżącej wersji potoków Usługi Data Factory i Azure Synapse można osiągnąć to zachowanie przy użyciu parametru potoku. Czas rozpoczęcia oraz czas zaplanowany dla wyzwalacza są ustawione jako wartość parametru potoku. W poniższym przykładzie zaplanowany czas wyzwalacza jest przekazywany jako wartość parametru potoku scheduledRunTime :
"parameters": {
"scheduledRunTime": "@trigger().scheduledTime"
}
Schemat systemu JSON
Poniższa definicja JSON pokazuje, jak utworzyć wyzwalacz harmonogramowania z planowaniem i powtarzalnością:
{
"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ą właściwością pipelines elementu. Jeśli twój potok nie przyjmuje żadnych parametrów, musisz dołączyć pustą definicję JSON dla właściwości parameters.
Przegląd schematu
Poniższa tabela zawiera przegląd głównych elementów schematu związanych z powtarzalnością i harmonogramowaniem wyzwalacza.
| Właściwość JSON | opis |
|---|---|
startTime |
Wartość daty i godziny. W przypadku prostych harmonogramów wartość startTime właściwości ma zastosowanie do pierwszego wystąpienia. W przypadku złożonych harmonogramów wyzwalacz uruchamia się nie wcześniej niż określona startTime wartość. Dla strefy czasowej UTC format to 'yyyy-MM-ddTHH:mm:ssZ'. W przypadku innych stref czasowych format to yyyy-MM-ddTHH:mm:ss. |
endTime |
Data i godzina zakończenia wyzwalacza. Wyzwalacz nie zostaje uruchomiony po określonej dacie i godzinie końcowej. Wartość właściwości nie może odnosić się do przeszłości. Ta właściwość jest opcjonalna. Dla strefy czasowej UTC format to 'yyyy-MM-ddTHH:mm:ssZ'. W przypadku innych stref czasowych format to yyyy-MM-ddTHH:mm:ss. |
timeZone |
Strefa czasowa, w której jest tworzony wyzwalacz. To ustawienie wpływa na startTime, endTime i schedule. Zobacz listę obsługiwanych stref czasowych. |
recurrence |
Obiekt powtarzania określający reguły powtarzalności dla wyzwalacza. Obiekt powtarzania obsługuje elementy frequency, interval, endTime, count i schedule. Wymagany jest element frequency, gdy obiekt cyklu zostanie zdefiniowany. Inne elementy obiektu cyklu są opcjonalne. |
frequency |
Jednostka częstotliwości, z jaką następuje powtarzanie wyzwalania. Obsługiwane wartości to minute,hour,day, weeki .month |
interval |
Dodatnia liczba całkowita, która określa interwał wartości frequency, decydującą o częstotliwości uruchamiania wyzwalacza. Na przykład, jeśli interval to 3 i frequency to week, wyzwalacz powtarza się co 3 tygodnie. |
schedule |
Harmonogram powtarzalności wyzwalacza. Wyzwalacz o określonej frequency wartości zmienia swoją powtarzalność zgodnie z harmonogramem powtarzalności. Właściwość schedule zawiera modyfikacje cyklu, które są oparte na minutach, godzinach, dniach tygodnia, dniach miesiąca i numerze tygodnia. |
Ważne
Dla strefy czasowej startTime UTC i endTime należy postępować zgodnie z formatem yyyy-MM-ddTHH:mm:ssZ. W przypadku innych stref startTime czasowych i endTime postępuj zgodnie z formatem yyyy-MM-ddTHH:mm:ss .
Zgodnie ze standardem ISO 8601, sufiks Z jest używany do oznaczania daty i godziny w strefie czasowej UTC, co czyni pole timeZone bezwartościowym. Jeśli w strefie czasowej UTC brakuje sufiksu Z , wynik jest błędem po aktywacji wyzwalacza.
Wartości domyślne, limity i przykłady schematów
| Właściwość JSON | Typ | Wymagane | Domyślna wartość | Prawidłowe wartości | Przykład |
|---|---|---|---|---|---|
startTime |
Sznurek | Tak | Brak | Daty i godziny ISO-8601 | Dla strefy czasowej UTC: "startTime" : "2013-01-09T09:30:00-08:00Z" W przypadku innych stref czasowych: "2013-01-09T09:30:00-08:00" |
timeZone |
Sznurek | Tak | Brak | Wartości strefy czasowej | "UTC" |
recurrence |
Objekt | Tak | Brak | Obiekt powtarzania | "recurrence" : { "frequency" : "monthly", "interval" : 1 } |
interval |
Liczba | Nie. | 1 | Od 1 do 1000 | "interval":10 |
endTime |
Sznurek | Tak | Brak | Wartość daty/godziny reprezentująca godzinę w przyszłości | Dla strefy czasowej UTC: "endTime" : "2013-02-09T09:30:00-08:00Z" W przypadku innych stref czasowych: "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 (bez czasu letniego) | wartość strefy czasowej | Obserwowanie oszczędzania światła dziennego | Format sygnatury czasowej |
|---|---|---|---|---|
| skoordynowany czas uniwersalny | 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, zobacz stronę „Tworzenie wyzwalacza” w portalu.
Właściwość startTime
W poniższej tabeli pokazano, w jaki sposób właściwość startTime kontroluje uruchomienie wyzwalacza.
| Wartość startTime | Cykl bez harmonogramu | Powtarzanie według harmonogramu |
|---|---|---|
| Godzina rozpoczęcia w przeszłości | Oblicza pierwszy przyszły czas wykonania po czasie rozpoczęcia i uruchamia się dokładnie w tym momencie. Uruchamia kolejne wykonania w oparciu o obliczenia wykonane na podstawie ostatniego czasu wykonania. Zobacz przykład znajdujący się pod tabelą. |
Wyzwalacz uruchamia się nie wcześniej niż o określonej godzinie rozpoczęcia. Pierwsze wystąpienie opiera się na harmonogramie obliczonym na podstawie czasu rozpoczęcia. Wykonuje kolejne operacje zgodnie z harmonogramem powtarzalności. |
| Godzina rozpoczęcia w przyszłości lub obecna | Działa jeden raz o ustalonej godzinie rozpoczęcia. Uruchamia kolejne wykonania w oparciu o obliczenia wykonane na podstawie ostatniego czasu wykonania. |
Wyzwalacz jest uruchamiany nie wcześniej niż określony czas rozpoczęcia. Pierwsze wystąpienie opiera się na harmonogramie obliczonym na podstawie czasu rozpoczęcia. Wykonuje kolejne operacje zgodnie z harmonogramem powtarzalności. |
Zobaczmy przykład, co się dzieje, gdy czas rozpoczęcia przypada w przeszłości, z powtarzaniem się, 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ść recurrence jest definiowana poprzez ustawienie właściwości frequency na wartość day, a właściwości interval na wartość 2.) Zwróć uwagę, że wartość startTime jest w przeszłości i występuje przed bieżącym czasem.
W tych warunkach pierwsze wykonanie znajduje się pod adresem 2017-04-0914:00. Aparat harmonogramu oblicza wystąpienia wykonania od czasu rozpoczęcia. Wszystkie wystąpienia w przeszłości są odrzucane. Silnik wykorzystuje następne wystąpienie, które wystąpi w przyszłości. W tym scenariuszu czas rozpoczęcia to 2017-04-07 o 2:00pm, więc następne wystąpienie będzie za dwa dni, czyli 2017-04-09 o 2:00pm.
Pierwszy czas wykonywania jest taki sam, nawet jeśli startTime wartość to 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 odbywają się o 2017-04-11 przy 2:00pm, następnie o 2017-04-13 przy 2:00pm, potem o 2017-04-15 przy 2:00pm, i tak dalej.
Na koniec, gdy godziny lub minuty nie są ustawione w harmonogramie wyzwalacza, godziny lub minuty pierwszego wykonania są używane jako wartości domyślne.
Właściwość harmonogramu
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 powodować zwiększenie liczby 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 pierwszego i drugiego dnia miesiąca, a nie raz na miesiąc.
Jeśli określono wiele schedule elementów, kolejność oceny wynosi od największego do najmniejszego ustawienia harmonogramu. Ocena rozpoczyna się od numeru tygodnia, a następnie dnia miesiąca, dnia tygodnia, godziny i na koniec minuty.
W poniższej tabeli szczegółowo opisano elementy 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 powtarzalności wyzwalaczy
Ta sekcja zawiera przykłady harmonogramów cyklu i koncentruje się na schedule obiekcie i jego elementach.
Przykłady zakładają, że wartość interval jest 1 i że wartość frequency jest poprawna zgodnie z definicją harmonogramu. Na przykład nie można mieć wartości frequencyday i jednocześnie mieć 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]} |
Biegaj codziennie o 5:15 rano. |
{"minutes":[15], "hours":[5,17]} |
Uruchamiany codziennie o godz. 5:15 rano i 17:15 po południu. |
{"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ść startTime, gdy jej wartość zostanie określona. Jeśli wartość nie jest określona, minuty są kontrolowane przez czas utworzenia. Na przykład, jeśli czas rozpoczęcia lub czas utworzenia (w zależności od tego, co ma zastosowanie) to 12:25 po południu, wyzwalacz jest uruchamiany o godzinie 00:25, 01:25, 02:25, ..., 23:25.Ten harmonogram jest odpowiednikiem wyzwalacza o frequency wartości hour, interval wartości 1 i braku schedule. Ten harmonogram może być używany z różnymi wartościami frequency i interval do tworzenia innych wyzwalaczy. Na przykład, gdy wartość frequency to month, harmonogram jest uruchamiany tylko raz w miesiącu, a nie codziennie, gdy wartość frequency to day. |
{"minutes":[0]} |
Uruchamiaj co godzinę o równej godzinie. Ten wyzwalacz uruchamia się co godzinę o godzinie, począwszy od godziny 0:00, następnie o 1:00, 2:00 itd. Ten harmonogram jest odpowiednikiem wyzwalacza z wartością frequency, wartością hour o wartości startTime zero minut albo bez schedule, ale z wartością frequency o wartości day.
frequency Jeśli wartość to week lub month, harmonogram wykonuje jeden dzień w tygodniu lub jeden dzień tylko w miesiącu, odpowiednio. |
{"minutes":[15]} |
Uruchamiany co godzinę o 15 minut. Ten wyzwalacz uruchamia się każdego dnia o 15 minut po pełnej godzinie, zaczynając od 00:15 nad ranem, 1:15 nad ranem, 2:15 nad ranem i tak dalej, aż do 11:15 wieczorem. |
{"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]} |
Uruchamiaj o godzinie 6:00 28. dnia każdego miesiąca (przy założeniu, że wartość frequency wynosi 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 w ciągu miesiąca nie ma piątego piątku, potok nie jest uruchamiany, ponieważ zaplanowano uruchomienie go tylko w piąty piątek. Aby uruchomić wyzwalacz w ostatni piątek miesiąca, rozważ użycie wartości occurrence jako -1 zamiast 5. |
{"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 rano, 5:45 rano, 17:15 po południu i 17:45 po południu w trzecią środę każdego miesiąca. |
Powiązana zawartość
- Aby uzyskać więcej informacji na temat wyzwalaczy, zajrzyj do sekcji Wykonywanie potoku i wyzwalacze.
- Aby dowiedzieć się, jak odwoływać się do metadanych wyzwalacza w potoku, zapoznaj się z Odwoływaniem się do metadanych wyzwalacza w uruchomieniach potoku.