Udostępnij za pośrednictwem


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, taki jak data rozpoczęcia, cykl lub data zakończenia 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 Azure Synapse

Możesz utworzyć wyzwalacz harmonogramu, aby zaplanować okresowe uruchamianie potoku, na przykład co godzinę lub codziennie.

Uwaga

Aby zapoznać się z kompletnym przewodnikiem tworzenia potoku i wyzwalacza harmonogramu, który kojarzy wyzwalacz z potokiem i przebiegami i monitoruje potok, zobacz Szybki start: tworzenie fabryki danych przy użyciu interfejsu użytkownika usługi Data Factory.

  1. Przejdź do karty Edycja w usłudze Data Factory lub na karcie Integracja w usłudze Azure Synapse.


  1. Wybierz pozycję Wyzwalacz w menu, a następnie wybierz pozycję Nowy/Edytuj.

    Zrzut ekranu przedstawiający menu Nowy wyzwalacz.

  2. Na stronie Dodawanie wyzwalaczy wybierz pozycję Wybierz wyzwalacz, a następnie wybierz pozycję Nowy.

    Zrzut ekranu przedstawiający okienko Dodawanie wyzwalaczy.

  3. Na stronie Nowy wyzwalacz:

    1. Upewnij się, że dla opcji Typ wybrano opcję Harmonogram.

    2. 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).

    3. 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 uznawany za po dacie rozpoczęcia. (Upewnij się, że data rozpoczęcia jest co najmniej 1 minuta mniejsza niż czas wykonywania lub w przeciwnym razie wyzwala potok w następnym 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.

    4. Określ cykl 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.

    5. W obszarze Cykl, jeśli z listy rozwijanej wybierzesz pozycje Dni, Tygodnie lub Miesiące , możesz wyświetlić opcje zaawansowanego cyklu.

      Zrzut ekranu przedstawiający zaawansowane opcje cyklu dni, tygodni i miesięcy.

    6. Aby określić datę zakończenia, wybierz pozycję Określ datę zakończenia. Określ informacje o zakończeniu, a następnie wybierz przycisk OK.

      Koszt jest skojarzony z każdym uruchomieniem potoku. Jeśli testujesz, możesz upewnić się, że potok jest 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.

      Zrzut ekranu przedstawiający ustawienia wyzwalacza.

      Zrzut ekranu przedstawiający ustawienia wyzwalacza dla daty i godziny zakończenia.

  4. 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.

    Zrzut ekranu przedstawiający opcję Aktywowano.

  5. W oknie Nowy wyzwalacz przejrzyj komunikat ostrzegawczy, a następnie wybierz przycisk OK.

    Zrzut ekranu przedstawiający wybieranie przycisku OK.

  6. Wybierz pozycję Opublikuj wszystko , aby opublikować zmiany. Dopóki nie opublikujesz zmian, wyzwalacz nie rozpocznie wyzwalania przebiegów potoku.

    Zrzut ekranu przedstawiający przycisk Opublikuj wszystko.

  7. Przejdź do karty Uruchomienia potoku po lewej stronie, a następnie wybierz pozycję Odśwież, aby odświeżyć listę. Zobaczysz uruchomienia potoku 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.


  1. 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. 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

Przykładowy kod

  1. 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ść startTime elementu na bieżącą godzinę UTC. Ustaw wartość endTime elementu 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 ScheduleTriggerwartość .

    • Element frequency jest ustawiony na Minute wartość , a interval element jest ustawiony na 15wartość . 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 , jak startTime i endTime.

    • Element endTime jest jedną godzinę po wartości startTime elementu. 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 i godziny zakończenia do godziny ostatniej godziny rozpoczęcia.

      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 Z ISO 8601 sufiks jest używany do oznaczania znacznika czasu daty/godziny w strefie czasowej UTC i renderowania timeZone pola bezużytecznego. Z Jeśli brakuje sufiksu strefy czasowej UTC, wynik jest błędem po aktywacji wyzwalacza.

    • Wyzwalacz jest skojarzony z potokiem Adfv2QuickStartPipeline . Aby skojarzyć wiele potoków z wyzwalaczem, dodaj więcej pipelineReference sekcji.

    • Potok w przewodniku Szybki start przyjmuje dwie parameters wartości: inputPath i outputPath. Wartości tych parametrów są przekazywane z wyzwalacza.

  2. Utwórz wyzwalacz przy użyciu polecenia cmdlet Set-AzDataFactoryV2Trigger :

    Set-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger" -DefinitionFile "C:\ADFv2QuickStartPSH\MyTrigger.json"
    
  3. Upewnij się, że stan wyzwalacza jest zatrzymany przy użyciu polecenia cmdlet Get-AzDataFactoryV2Trigger :

    Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
    
  4. Uruchom wyzwalacz przy użyciu polecenia cmdlet Start-AzDataFactoryV2Trigger :

    Start-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
    
  5. Upewnij się, że stan wyzwalacza to Rozpoczęto przy użyciu polecenia cmdlet Get-AzDataFactoryV2Trigger :

    Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
    
  6. 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. TriggerRunStartedAfter Zaktualizuj wartości iTriggerRunStartedBefore, 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 a TriggerRunStartedBefore także spodziewać się 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 kroki tworzenia i uruchamiania wyzwalacza harmonogramu, który jest uruchamiany co 15 minut. Wyzwalacz jest skojarzony z potokiem o nazwie Adfv2QuickStartPipeline utworzonym w ramach przewodnika Szybki start.

Wymagania wstępne

Przykładowy kod

  1. 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ść startTime elementu na bieżącą godzinę UTC. Ustaw wartość endTime elementu 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 ScheduleTriggerwartość .

    • Element frequency jest ustawiony na Minute wartość , a interval element jest ustawiony na 15wartość . 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 , jak startTime i endTime.

    • Element endTime jest jedną godzinę po wartości startTime elementu. 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 i godziny zakończenia do godziny ostatniej godziny rozpoczęcia.

      Ważne

      W przypadku strefy czasowej startTime UTC i endTime muszą być zgodne 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 znacznika czasu daty/godziny w strefie czasowej UTC i renderowania pola bezużytecznego timeZone . 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 potoków z wyzwalaczem, dodaj więcej pipelineReference sekcji.

    • Potok w przewodniku Szybki start przyjmuje dwie parameters wartości: inputPath i outputPath. Wartości tych parametrów są przekazywane z wyzwalacza.

  2. 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  
    
  3. 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" 
    
  4. Uruchom wyzwalacz za pomocą polecenia az datafactory trigger start :

    az datafactory trigger start --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger" 
    
  5. 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" 
    
  6. 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. last-updated-after Zaktualizuj wartości ilast-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 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 monitor the pipeline run bloku kodu w skryscie 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 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 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 Azure 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 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 i zaplanowany czas wyzwalacza są ustawiane 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 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ą właściwością pipelines elementu. Jeśli potok nie bierze żadnych parametrów, musisz dołączyć pustą definicję JSON dla parameters właściwości .

Przegląd schematu

Poniższa tabela zawiera ogólne omówienie głównych elementów schematu związanych z cyklem i planowaniem 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 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.
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 ma wpływ na startTimewartości , endTimei schedule. Zobacz listę obsługiwanych stref czasowych.
recurrence Obiekt cyklu określający reguły powtarzania wyzwalacza. Obiekt cyklu obsługuje frequencyelementy , , intervalendTime, counti schedule . Po zdefiniowaniu frequency obiektu cyklu wymagany jest element. Inne elementy obiektu cyklu są opcjonalne.
frequency Jednostka częstotliwości powtarzania wyzwalacza. Obsługiwane wartości to minute, hour, day, weeki .month
interval Dodatnia liczba całkowita, która określa interwał wartości frequency , która określa częstotliwość uruchamiania wyzwalacza. Na przykład, jeśli interval parametr to 3 i frequency to , weekwyzwalacz jest powtarzany co 3 tygodnie.
schedule Harmonogram cyklu wyzwalacza. Wyzwalacz o określonej frequency wartości zmienia cykl na podstawie harmonogramu cyklu. 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 znacznika czasu daty/godziny w strefie czasowej UTC i renderowania pola bezużytecznego timeZone . Jeśli w strefie czasowej UTC brakuje sufiksu Z, wynik jest błędem 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"
W przypadku innych stref czasowych: "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/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.

Time zone Przesunięcie UTC (oszczędność czasu letniego) wartość strefy czasowej Obserwowanie oszczędzania światła dziennego 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, zobacz stronę Tworzenie wyzwalacza w portalu.

Właściwość startTime

W poniższej tabeli pokazano, jak startTime właściwość kontroluje przebieg 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ść jest definiowana recurrence przez ustawienie frequency właściwości na day i interval właściwość na 2.) Zwróć uwagę, że startTime wartość 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:00pmdwa dni od tego czasu, czyli 2017-04-09 o 2:00pmwartości .

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 znajdują się w 2:00pm2017-04-11 godzinie , a następnie 2017-04-13 w 2:00pm2:00pm, i 2017-04-15 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.

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 również 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 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 opisano schedule szczegółowo elementy.

Element JSON opis Prawidłowe wartości
minutes Minuty godziny, o których uruchamiany jest wyzwalacz.
  • Integer
  • Tablica liczb całkowitych
hours Godziny dnia, o których uruchamiany jest wyzwalacz.
  • Integer
  • Tablica liczb całkowitych
weekDays Dni tygodnia, w których uruchamiany jest wyzwalacz. Wartość można określić tylko z częstotliwością tygodniową.
  • Poniedziałek, wtorek, środa, czwartek, piątek, sobota, niedziela.
  • Tablica wartości dnia (maksymalny rozmiar tablicy to 7).
  • W wartościach dnia nie jest uwzględniana wielkość liter.
monthlyOccurrences Dni miesiąca, w których uruchamiany jest wyzwalacz. Wartość można określić tylko z częstotliwością miesięczną.
  • Tablica monthlyOccurrences obiektów: { "day": day, "occurrence": occurrence }.
  • Atrybut day to dzień tygodnia, w którym jest uruchamiany wyzwalacz. Na przykład monthlyOccurrences właściwość o day wartości {Sunday} oznacza każdą niedzielę miesiąca. day Atrybut jest wymagany.
  • Atrybut occurrence jest wystąpieniem określonego day w miesiącu. Na przykład monthlyOccurrences właściwość z wartościami day {Sunday, -1} i occurrence oznacza ostatnią niedzielę miesiąca. Atrybut occurrence jest opcjonalny.
monthDays Dzień miesiąca, w którym uruchamiany jest wyzwalacz. Wartość można określić tylko z częstotliwością miesięczną.
  • Dowolna wartość <= -1 i >= -31
  • Dowolna wartość >= 1 i <= 31
  • Tablica wartości

Przykłady harmonogramów cyklu wyzwalaczy

Ta sekcja zawiera przykłady harmonogramów cyklu i koncentruje się na schedule obiekcie i jego elementach.

W przykładach przyjęto założenie, że interval wartość jest 1 i że frequency wartość jest poprawna zgodnie z definicją harmonogramu. Na przykład nie można mieć frequency wartości day , a także zmodyfikować monthDays schedule obiektu. 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 startTime wartość, gdy zostanie określona wartość. 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 o frequency wartości hour, wartości 1, interval i nie schedule. Ten harmonogram może być używany z różnymi frequency wartościami i interval do tworzenia innych wyzwalaczy. Na przykład gdy wartość to frequency month, harmonogram jest uruchamiany tylko raz w miesiącu, a nie codziennie, gdy frequency wartość to 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ą hour i wartością startTime frequency zero minut lub nieschedule, ale wartością frequency 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 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 godzinie 6:00 28 dnia każdego miesiąca (przy założeniu frequency wartości 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 -1 zamiast 5 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.