Aracılığıyla paylaş


Zamanlamaya göre işlem hattı çalıştıran bir tetikleyici oluşturma

UYGULANANLAR: Azure Data Factory Azure Synapse Analytics

İpucu

Kuruluşlar için hepsi bir arada analiz çözümü olan Microsoft Fabric'te Data Factory'yi deneyin. Microsoft Fabric , veri taşımadan veri bilimine, gerçek zamanlı analize, iş zekasına ve raporlamaya kadar her şeyi kapsar. Yeni bir deneme sürümünü ücretsiz olarak başlatmayı öğrenin!

Bu makalede zamanlama tetikleyicisi ve zamanlama tetikleyicisi oluşturma, başlatma ve izleme adımları hakkında bilgi sağlanır. Diğer tetikleyici türleri için bkz . İşlem hattı yürütme ve tetikleyiciler.

Zamanlama tetikleyicisi oluşturduğunuzda, tetikleyici için başlangıç tarihi, yinelenme veya bitiş tarihi gibi bir zamanlama belirtir ve bunu bir işlem hattıyla ilişkilendirirsiniz. İşlem hatları ve tetikleyiciler çoka çok ilişkisine sahiptir. Birden çok tetikleyici tek bir işlem hattını başlatabilir. Tek bir tetikleyici birden fazla işlem hattını başlatabilir.

Aşağıdaki bölümlerde zamanlama tetikleyicisi oluşturma adımları farklı şekillerde sağlanır.

Azure Data Factory ve Azure Synapse portal deneyimi

Bir işlem hattını saatlik veya günlük gibi düzenli aralıklarla çalışacak şekilde zamanlamak için zamanlama tetikleyicisi oluşturabilirsiniz.

Not

Tetikleyiciyi işlem hattıyla ilişkilendiren ve işlem hattını çalıştıran ve izleyen bir işlem hattı ve zamanlama tetikleyicisi oluşturma işleminin tam kılavuzu için bkz . Hızlı Başlangıç: Data Factory kullanıcı arabirimini kullanarak veri fabrikası oluşturma.

  1. Data Factory'de Düzenle sekmesine veya Azure Synapse'te Tümleştir sekmesine geçin.


  1. Menüde Tetikleyici’yi seçip Yeni/Düzenle’yi seçin.

    Yeni tetikleyici menüsünü gösteren ekran görüntüsü.

  2. Tetikleyici ekle sayfasında Tetikleyici seç'i ve ardından Yeni'yi seçin.

    Tetikleyici ekle bölmesini gösteren ekran görüntüsü.

  3. Yeni tetikleyici sayfasında:

    1. Tür için Zamanlama'nın seçili olduğunu onaylayın.

    2. Başlangıç Tarihi için tetikleyicinin başlangıç tarih saatini belirtin. Varsayılan olarak Eşgüdümlü Evrensel Saat 'te (UTC) geçerli tarih saatine ayarlanır.

    3. Tetikleyicinin oluşturulduğu saat dilimini belirtin. Saat dilimi ayarı, Gelişmiş yinelenme seçeneklerinde Başlangıç Tarihi, Bitiş Tarihi ve Yürütme Zamanlarını Zamanla için geçerlidir. Saat Dilimi ayarının değiştirilmesi, başlangıç tarihinizi otomatik olarak değiştirmez. Belirtilen saat diliminde başlangıç tarihinin doğru olduğundan emin olun. Tetikleyicinin Zamanlanan Yürütme zamanı, başlangıç tarihinden sonra kabul edilir. (Başlangıç tarihinin yürütme süresinden en az 1 dakika daha kısa olduğundan veya işlem hattını bir sonraki yinelenmede tetiklediğinden emin olun.)

      Not

      Gün ışığından yararlanmayı gözlemleyen saat dilimleri için, yinelenme Gün veya üzeri olarak ayarlanmışsa, yılda iki kez yapılan değişiklik için saat otomatik ayarlamalarını tetikleyin. Gün ışığından yararlanma değişikliğini geri çevirmek için, örneğin UTC gibi gün ışığından yararlanmayı gözlemlemeyen bir saat dilimi seçin.

      Gün ışığından yararlanma ayarı yalnızca yinelenme gün veya üzeri olarak ayarlanmış bir tetikleyici için gerçekleşir. Tetikleyici Saat veya Dakika sıklığı olarak ayarlanırsa, düzenli aralıklarla tetik almaya devam eder.

    4. Tetikleyici için Yinelenme'yi belirtin. Açılan listeden değerlerden birini seçin (Her dakika, Saatlik, Günlük, Haftalık veya Aylık). Metin kutusuna çarpanı girin. Örneğin, tetikleyicinin 15 dakikada bir çalışmasını istiyorsanız, Her Dakika'yı seçip metin kutusuna 15 girersiniz.

    5. Yinelenme'nin altında, açılan listeden Günler, Haftalar veya Aylar'ı seçerseniz Gelişmiş yinelenme seçeneklerini görebilirsiniz.

      Gün(ler), Haftalar ve Aylar'ın gelişmiş yinelenme seçeneklerini gösteren ekran görüntüsü.

    6. Bitiş tarihi saati belirtmek için Bitiş tarihi belirtin'i seçin. Bitiş Tarihi bilgilerini belirtin ve ardından Tamam'ı seçin.

      Her işlem hattı çalıştırmasıyla bir maliyet ilişkilendirilir. Test ediyorsanız işlem hattının yalnızca birkaç kez tetiklendiğinden emin olmak isteyebilirsiniz. Ancak, yayımlama zamanı ile bitiş saati arasında işlem hattının çalışması için yeterli süre olduğundan emin olun. Tetikleyiciyi kullanıcı arabirimine kaydettiğinizde değil, yalnızca çözümü yayımladıktan sonra etkinleşir.

      Tetikleyici ayarlarını gösteren ekran görüntüsü.

      Bitiş tarihi ve saati için tetikleyici ayarlarını gösteren ekran görüntüsü.

  4. Yeni Tetikleyici penceresinde, Etkinleştirildi seçeneğinde Evet'i ve ardından Tamam'ı seçin. Tetikleyiciyi daha sonra devre dışı bırakmak için bu onay kutusunu kullanabilirsiniz.

    Etkinleştirildi seçeneğini gösteren ekran görüntüsü.

  5. Yeni Tetikleyici penceresinde uyarı iletisini gözden geçirin ve Tamam'ı seçin.

    Tamam düğmesinin seçilmesini gösteren ekran görüntüsü.

  6. Değişiklikleri yayımlamak için Tümünü yayımla'yı seçin. Değişiklikleri yayımlayana kadar tetikleyici işlem hattı çalıştırmalarını tetiklemeye başlamaz.

    Tümünü yayımla düğmesini gösteren ekran görüntüsü.

  7. Soldaki İşlem Hattı çalıştırmaları sekmesine geçin ve listeyi yenilemek için Yenile'yi seçin. zamanlanmış tetikleyici tarafından tetiklenen işlem hattı çalıştırmalarını görürsünüz. Tetikleyen sütunundaki değerlere dikkat edin. Şimdi Tetikle seçeneğini kullanırsanız, listede el ile tetikleyicinin çalıştığını görürsünüz.


  1. Tetikleyici çalıştırmaları>Zamanlama görünümüne geçin.


Azure PowerShell

Not

Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz . Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Bu bölümde, zamanlama tetikleyicisi oluşturmak, başlatmak ve izlemek için Azure PowerShell'in nasıl kullanılacağı gösterilmektedir. Bu örneğin çalıştığını görmek için önce Hızlı Başlangıç: Azure PowerShell kullanarak veri fabrikası oluşturma bölümüne gidin. Ardından aşağıdaki kodu main yöntemine ekleyin. Bu kod, 15 dakikada bir çalışan bir zamanlama tetikleyicisi oluşturur ve başlatır. Tetikleyici, hızlı başlangıcın bir parçası olarak oluşturduğunuz adlı Adfv2QuickStartPipeline işlem hattıyla ilişkilendirilir.

Önkoşullar

Örnek kod

  1. *C:\ADFv2QuickStartPSH* klasöründe aşağıdaki içeriğe sahip MyTrigger.json adlı bir JSON dosyası oluşturun:

    Önemli

    JSON dosyasını kaydetmeden önce öğesinin startTime değerini geçerli UTC saati olarak ayarlayın. öğesinin endTime değerini geçerli UTC saatini bir saat geçe ayarlayın.

    {
        "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"
                    }
                }
            ]
        }
    }
    

    JSON kod parçacığında:

    • type Tetikleyicinin öğesi olarak ScheduleTriggerayarlanır.

    • frequency öğesi olarak Minute interval, öğesi ise olarak 15ayarlanır. Bu nedenle tetikleyici, işlem hattını başlangıç ve bitiş saatleri arasında 15 dakikada bir çalıştırır.

    • öğesi, timeZone tetikleyicinin oluşturulduğu saat dilimini belirtir. Bu ayar hem hem endTimede startTime 'yi etkiler.

    • endTime öğesi, öğesinin değerinden bir saat sonradırstartTime. Bu nedenle tetikleyici işlem hattını başlangıç saatinden 15 dakika, 30 dakika ve 45 dakika sonra çalıştırır. Başlangıç saatini geçerli UTC saatiyle ve bitiş saatini başlangıç saatini bir saat geçe güncelleştirmeyi unutmayın.

      Önemli

      UTC saat dilimi startTime için ve endTime Z biçimini yyyy-MM-ddTHH:mm:ssizlemesi gerekir. Diğer saat dilimleri startTime için biçimi endTime izleyinyyyy-MM-ddTHH:mm:ss.

      ISO 8601 standardına göre sonek, Z tarih saatini UTC saat dilimine zaman damgasıyla işaretlemek ve alanı kullanılamaz hale getirmek timeZone için kullanılır. Z UTC saat diliminin son eki eksikse, etkinleştirme tetiklendiğinde sonuç bir hatadır.

    • Tetikleyici işlem hattıyla Adfv2QuickStartPipeline ilişkilendirilir. Birden çok işlem hattını bir tetikleyiciyle ilişkilendirmek için daha fazla pipelineReference bölüm ekleyin.

    • Hızlı başlangıçtaki işlem hattı iki parameters değer alır: inputPath ve outputPath. Bu parametreler için değerleri tetikleyiciden geçirirsiniz.

  2. Set-AzDataFactoryV2Trigger cmdlet'ini kullanarak bir tetikleyici oluşturun:

    Set-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger" -DefinitionFile "C:\ADFv2QuickStartPSH\MyTrigger.json"
    
  3. Tetikleyicinin durumunun Get-AzDataFactoryV2Trigger cmdlet'ini kullanarak Durduruldu olduğunu onaylayın:

    Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
    
  4. Start-AzDataFactoryV2Trigger cmdlet'ini kullanarak tetikleyiciyi başlatın:

    Start-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
    
  5. Tetikleyicinin durumunun Get-AzDataFactoryV2Trigger cmdlet'ini kullanarak başlatıldığını onaylayın:

    Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
    
  6. Get-AzDataFactoryV2TriggerRun cmdlet'ini kullanarak Azure PowerShell'de tetikleyici çalıştırmalarını alın. Tetikleyici çalıştırmaları hakkındaki bilgileri almak için aşağıdaki komutu düzenli aralıklarla yürütebilirsiniz. TriggerRunStartedAfter ve TriggerRunStartedBefore değerlerini tetikleyici tanımınızdaki değerlerle eşleşecek şekilde güncelleştirin:

    Get-AzDataFactoryV2TriggerRun -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -TriggerName "MyTrigger" -TriggerRunStartedAfter "2017-12-08T00:00:00" -TriggerRunStartedBefore "2017-12-08T01:00:00"
    

    Not

    Zamanlama tetikleyicilerinin tetikleyici zamanı UTC zaman damgasında belirtilir. TriggerRunStartedAfter ve TriggerRunStartedBefore utc zaman damgasını da bekler.

    Azure portalında tetikleyici çalıştırmalarını ve işlem hattı çalıştırmalarını izlemek için bkz . İşlem hattı çalıştırmalarını izleme.

Azure CLI

Bu bölümde, zamanlama tetikleyicisi oluşturmak, başlatmak ve izlemek için Azure CLI'yi nasıl kullanacağınız gösterilmektedir. Bu örneğin çalıştığını görmek için önce Hızlı Başlangıç: Azure CLI kullanarak Azure Data Factory oluşturma bölümüne gidin. Ardından, 15 dakikada bir çalışan bir zamanlama tetikleyicisi oluşturmak ve başlatmak için adımları izleyin. Tetikleyici, hızlı başlangıcın bir parçası olarak oluşturduğunuz adlı Adfv2QuickStartPipeline işlem hattıyla ilişkilendirilir.

Önkoşullar

  • Azure Cloud Shell'de Bash ortamını kullanın. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash için hızlı başlangıç.

  • CLI başvuru komutlarını yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yı yükleyin . Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma.

    • Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI ile oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.

    • İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma.

    • Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.

Örnek kod

  1. Çalışma dizininizde tetikleyicinin özellikleriyle MyTrigger.json adlı bir JSON dosyası oluşturun. Bu örnek için aşağıdaki içeriği kullanın:

    Önemli

    JSON dosyasını kaydetmeden önce öğesinin startTime değerini geçerli UTC saati olarak ayarlayın. öğesinin endTime değerini geçerli UTC saatini bir saat geçe ayarlayın.

    {
        "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"
                }
            }
        ]
    }
    

    JSON kod parçacığında:

    • type Tetikleyicinin öğesi olarak ScheduleTriggerayarlanır.

    • frequency öğesi olarak Minute interval, öğesi ise olarak 15ayarlanır. Bu nedenle tetikleyici, işlem hattını başlangıç ve bitiş saatleri arasında 15 dakikada bir çalıştırır.

    • öğesi, timeZone tetikleyicinin oluşturulduğu saat dilimini belirtir. Bu ayar hem hem endTimede startTime 'yi etkiler.

    • endTime öğesi, öğesinin değerinden bir saat sonradırstartTime. Bu nedenle tetikleyici işlem hattını başlangıç saatinden 15 dakika, 30 dakika ve 45 dakika sonra çalıştırır. Başlangıç saatini geçerli UTC saatiyle ve bitiş saatini başlangıç saatini bir saat geçe güncelleştirmeyi unutmayın.

      Önemli

      UTC saat dilimi için ve endTime değerinin startTime Z biçimini yyyy-MM-ddTHH:mm:ssizlemesi gerekir. Diğer saat dilimleri startTime için biçimi endTime izleyinyyyy-MM-ddTHH:mm:ss.

      ISO 8601 standardına göre, Z soneki tarih saat değerini UTC saat dilimine işaretlemek ve alanı işe yaramaz hale getirmek timeZone için kullanılır. UTC saat dilimi için Z soneki eksikse, etkinleştirme tetiklendiğinde sonuç bir hatadır.

    • Tetikleyici işlem hattıyla Adfv2QuickStartPipeline ilişkilendirilir. Birden çok işlem hattını bir tetikleyiciyle ilişkilendirmek için daha fazla pipelineReference bölüm ekleyin.

    • Hızlı başlangıçtaki işlem hattı iki parameters değer alır: inputPath ve outputPath. Bu parametreler için değerleri tetikleyiciden geçirirsiniz.

  2. az datafactory trigger create komutunu kullanarak bir tetikleyici oluşturun :

    az datafactory trigger create --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory"  --name "MyTrigger" --properties @MyTrigger.json  
    
  3. az datafactory trigger show komutunu kullanarak tetikleyicinin durumunun Durduruldu olduğunu onaylayın:

    az datafactory trigger show --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger" 
    
  4. az datafactory trigger start komutunu kullanarak tetikleyiciyi başlatın :

    az datafactory trigger start --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger" 
    
  5. Az datafactory trigger show komutunu kullanarak tetikleyicinin durumunun Başlatıldı olduğunu onaylayın:

    az datafactory trigger show --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger" 
    
  6. az datafactory trigger-run query-by-factory komutunu kullanarak Azure CLI'da tetikleyici çalıştırmalarını alın. Tetikleyici çalıştırmaları hakkında bilgi almak için aşağıdaki komutu düzenli aralıklarla yürütebilirsiniz. last-updated-after ve last-updated-before değerlerini tetikleyici tanımınızdaki değerlerle eşleşecek şekilde güncelleştirin:

    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"
    

    Not

    Zamanlama tetikleyicilerinin tetikleyici süreleri UTC zaman damgasında belirtilir. last-updated-after ve last-updated-before de UTC zaman damgasını bekler.

    Azure portalında tetikleyici çalıştırmalarını ve işlem hattı çalıştırmalarını izlemek için bkz . İşlem hattı çalıştırmalarını izleme.

.NET SDK

Bu bölümde tetikleyici oluşturmak, başlatmak ve izlemek için .NET SDK'sının nasıl kullanılacağı gösterilmektedir. Bu örneğin çalıştığını görmek için önce Hızlı Başlangıç: .NET SDK'sını kullanarak veri fabrikası oluşturma makalesini inceleyin. Ardından aşağıdaki kodu main yöntemine ekleyin. Bu kod, 15 dakikada bir çalışan bir zamanlama tetikleyicisi oluşturur ve başlatır. Tetikleyici, hızlı başlangıcın bir parçası olarak oluşturduğunuz adlı Adfv2QuickStartPipeline işlem hattıyla ilişkilendirilir.

15 dakikada bir çalışan bir zamanlama tetikleyicisi oluşturmak ve başlatmak için aşağıdaki kodu main yöntemine ekleyin:

            // 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);

UTC dışında farklı bir saat diliminde tetikleyiciler oluşturmak için aşağıdaki ayarlar gereklidir:

<<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;

Tetikleyici çalıştırmasını izlemek için, örnekteki son Console.WriteLine deyiminden önce aşağıdaki kodu ekleyin:

            // 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();
                    }
                }
            }

Azure portalında tetikleyici çalıştırmalarını ve işlem hattı çalıştırmalarını izlemek için bkz . İşlem hattı çalıştırmalarını izleme.

Python SDK'sı

Bu bölümde, tetikleyici oluşturmak, başlatmak ve izlemek için Python SDK'sını nasıl kullanacağınız gösterilmektedir. Bu örneğin çalıştığını görmek için önce Hızlı Başlangıç: Python SDK'sını kullanarak veri fabrikası oluşturma bölümüne gidin. Ardından Python betiğindeki kod bloğunun monitor the pipeline run arkasına aşağıdaki kod bloğunu ekleyin. Bu kod, belirtilen başlangıç ve bitiş saatleri arasında 15 dakikada bir çalışan bir zamanlama tetikleyicisi oluşturur. start_time Değişkeni geçerli UTC saatiyle ve değişkenini end_time geçerli UTC saatini bir saat geçe güncelleştirin.

    # 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)

Azure portalında tetikleyici çalıştırmalarını ve işlem hattı çalıştırmalarını izlemek için bkz . İşlem hattı çalıştırmalarını izleme.

Azure Resource Manager şablonu

Tetikleyici oluşturmak için Azure Resource Manager şablonu kullanabilirsiniz. Adım adım yönergeler için bkz . Azure Resource Manager şablonu kullanarak Azure veri fabrikası oluşturma.

Tetikleyici başlangıç zamanını işlem hattına geçirme

Azure Data Factory sürüm 1, , SliceEndWindowStartve WindowEndsistem değişkenlerini SliceStartkullanarak bölümlenmiş verilerin okunmasını veya yazmasını destekler. Data Factory ve Azure Synapse işlem hatlarının geçerli sürümünde, işlem hattı parametresini kullanarak bu davranışı elde edebilirsiniz. Tetikleyicinin başlangıç saati ve zamanlanan saati, işlem hattı parametresinin değeri olarak ayarlanır. Aşağıdaki örnekte, tetikleyici için zamanlanan saat işlem hattı scheduledRunTime parametresine bir değer olarak geçirilir:

"parameters": {
    "scheduledRunTime": "@trigger().scheduledTime"
}

JSON şeması

Aşağıdaki JSON tanımı, zamanlama ve yinelenme ile zamanlama tetikleyicisinin nasıl oluşturulacağını gösterir:

{
  "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>"
                }
           }
      ]
  }
}

Önemli

parameters özelliği, öğesinin pipelines zorunlu bir özelliğidir. İşlem hattınız herhangi bir parametre almazsa özelliği için parameters boş bir JSON tanımı eklemeniz gerekir.

Şemaya genel bakış

Aşağıdaki tabloda, tetikleyicinin yinelenmesi ve zamanlanmasıyla ilgili ana şema öğelerine üst düzey bir genel bakış sağlanmaktadır.

JSON özelliği Açıklama
startTime Bir Tarih-Saat değeri. Basit zamanlamalar için özelliğinin startTime değeri ilk oluşuma uygulanır. Karmaşık zamanlamalar için tetikleyici belirtilen startTime değerden önce başlatılmaz.
UTC saat dilimi için biçimi şeklindedir 'yyyy-MM-ddTHH:mm:ssZ'. Diğer saat dilimleri için biçimi şeklindedir yyyy-MM-ddTHH:mm:ss.
endTime Tetikleyicinin bitiş tarihi ve saati. Tetikleyici belirtilen bitiş tarihi ve saatinden sonra yürütülmez. Bu özelliğin değeri geçmişte olamaz. Bu özellik isteğe bağlıdır.
UTC saat dilimi için biçimi şeklindedir 'yyyy-MM-ddTHH:mm:ssZ'. Diğer saat dilimleri için biçimi şeklindedir yyyy-MM-ddTHH:mm:ss.
timeZone Tetikleyicinin oluşturulduğu saat dilimi. Bu ayar , endTimeve schedule'yi etkilerstartTime. Desteklenen saat dilimlerinin listesine bakın.
recurrence Tetikleyici için yinelenme kurallarını belirten bir yinelenme nesnesi. Yinelenme nesnesi , , intervalendTime, countve schedule öğelerini desteklerfrequency. Bir yinelenme nesnesi tanımlandığında, frequency öğesi gereklidir. Yinelenme nesnesinin diğer öğeleri isteğe bağlıdır.
frequency Tetikleyicinin yineleneceği sıklık birimi. Desteklenen değerler , ve değerlerini içerir minute, hour, day.monthweek
interval Tetikleyicinin ne sıklıkta çalıştırıldığını belirleyen değerin frequency aralığını belirten pozitif bir tamsayı. Örneğin , interval 3 ve frequency ise weektetikleyici 3 haftada bir yinelenir.
schedule Tetikleyicinin yinelenme zamanlaması. Belirtilen frequency değere sahip bir tetikleyici, yinelenme zamanlamasına göre yinelenmesini değiştirir. özelliği, schedule yinelenme için dakika, saat, hafta içi, ay günü ve hafta numarasını temel alan değişiklikler içerir.

Önemli

UTC saat dilimi startTime için ve endTime Z biçimini yyyy-MM-ddTHH:mm:ssizlemesi gerekir. Diğer saat dilimleri startTime için biçimi endTime izleyinyyyy-MM-ddTHH:mm:ss.

ISO 8601 standardına göre, Z soneki tarih saat değerini UTC saat dilimine işaretlemek ve alanı işe yaramaz hale getirmek timeZone için kullanılır. UTC saat dilimi için Z soneki eksikse, etkinleştirme tetiklendiğinde sonuç bir hatadır.

Şema varsayılanları, sınırlar ve örnekler

JSON özelliği Türü Zorunlu Default value Geçerli değerler Örnek
startTime String Yes Hiçbiri ISO-8601 Tarih-Saatleri UTC saat dilimi için: "startTime" : "2013-01-09T09:30:00-08:00Z"
Diğer saat dilimleri için: "2013-01-09T09:30:00-08:00"
timeZone String Yes Hiçbiri Saat dilimi değerleri "UTC"
recurrence Object Yes Hiçbiri Yinelenme nesnesi "recurrence" : { "frequency" : "monthly", "interval" : 1 }
interval Sayı Hayır 1 1-1.000 "interval":10
endTime String Yes Hiçbiri Gelecekte bir saati temsil eden Tarih-Saat değeri UTC saat dilimi için: "endTime" : "2013-02-09T09:30:00-08:00Z"
Diğer saat dilimleri için: "endTime" : "2013-02-09T09:30:00-08:00"
schedule Object Hayır None Zamanlama nesnesi "schedule" : { "minute" : [30], "hour" : [8,17] }

Saat dilimi seçeneği

Zamanlama tetikleyicileri için desteklenen saat dilimlerinden bazıları aşağıdadır.

Time zone UTC uzaklığı (Yaz saati olmayan kaydetme) timeZone değeri Gün ışığından yararlanmayı gözlemleyin Zaman damgası biçimi
Eşgüdümlü Evrensel Saat 0 UTC Hayır 'yyyy-MM-ddTHH:mm:ssZ'
Pasifik Saati (PT) -8 Pacific Standard Time Yes 'yyyy-MM-ddTHH:mm:ss'
Merkezi Saat (CT) -6 Central Standard Time Yes 'yyyy-MM-ddTHH:mm:ss'
Doğu Saati (ET) -5 Eastern Standard Time Yes 'yyyy-MM-ddTHH:mm:ss'
Greenwich Saati (GMT) 0 GMT Standard Time Yes 'yyyy-MM-ddTHH:mm:ss'
Orta Avrupa Standart Saati 1+ W. Europe Standard Time Yes 'yyyy-MM-ddTHH:mm:ss'
Hindistan Standart Saati (IST) +5:30 India Standard Time Hayır 'yyyy-MM-ddTHH:mm:ss'
Çin Standart Saati +8 China Standard Time Hayır 'yyyy-MM-ddTHH:mm:ss'

Bu liste tamamlanmadı. Saat dilimi seçeneklerinin tam listesi için portaldaki Tetikleyici oluşturma sayfasına bakın.

startTime özelliği

Aşağıdaki tabloda, özelliğin tetikleyici çalıştırmasını nasıl denetleyişleri startTime gösterilmektedir.

startTime değeri Zamanlama olmadan yinelenme Zamanlama ile yinelenme
Başlangıç zamanı geçmişte Başlangıç zamanından sonraki ilk gelecek yürütme zamanını hesaplar ve bu zamanda çalıştırır.

Son yürütme zamanına göre yaptığı hesaplamalarla sonraki yürütmeleri çalıştırır.

Bu tablonun altındaki örneğe bakın.
Tetikleyici belirtilen başlangıç zamanından önce başlamaz. İlk yinelenme, başlangıç zamanından hesaplanan zamanlamayı temel alır.

Sonraki yürütmeleri yinelenme zamanlamasına göre çalıştırır.
Başlangıç zamanı gelecekte veya güncel Belirtilen başlangıç zamanında bir kez çalışır.

Son yürütme zamanına göre yaptığı hesaplamalarla sonraki yürütmeleri çalıştırır.
Tetikleyici belirtilen başlangıç zamanından önce başlamaz. İlk yinelenme, başlangıç zamanından hesaplanan zamanlamayı temel alır.

Sonraki yürütmeleri yinelenme zamanlamasına göre çalıştırır.

Başlangıç zamanı geçmişte olduğunda ve bir yinelenme olmasına rağmen zamanlama olmadığında neler olacağını gösteren bir örneğe bakalım. Geçerli zamanın 2017-04-08 13:00, başlangıç zamanının 2017-04-07 14:00 ve yinelenmenin iki günde bir olduğunu varsayalım. recurrence(Değer, özelliği olarak ve interval özelliği day 2olarak ayarlanarak frequency tanımlanır.) Değerin startTime geçmişte olduğuna ve geçerli saatten önce oluştuğuna dikkat edin.

Bu koşullar altında, ilk yürütme konumundadır 2017-04-09 14:00. Zamanlayıcı altyapısı çalıştırma yinelenmelerini başlangıç zamanından itibaren hesaplar. Geçmişteki örnekler dikkate alınmaz. Altyapı gelecekte gerçekleşen bir sonraki örneği kullanır. Bu senaryoda, başlangıç saati konumundadır 2017-04-07 2:00pm, bu nedenle sonraki örnek o zamandan iki gün sonradır ve bu da konumundadır 2017-04-09 2:00pm.

İlk yürütme zamanı, değer 2017-04-05 14:00 veya 2017-04-01 14:00olsa startTime bile aynıdır. İlk yürütme sonrasındaki yürütmeler zamanlama kullanılarak hesaplanır. Bu nedenle, sonraki yürütmeler adresinde 2017-04-11 2:00pm, sonra 2017-04-13 adresinde 2:00pm, sonra 2017-04-15 da konumunda 2:00pmve benzeri.

Son olarak, bir tetikleyici için zamanlamada saatler veya dakikalar ayarlanmamışsa, varsayılan olarak ilk yürütmenin saatleri veya dakikaları kullanılır.

schedule özelliği

Zamanlamanın kullanılması tetikleyici yürütme sayısını sınırlayabilir. Örneğin, aylık sıklığa sahip bir tetikleyici 31. günde çalışacak şekilde zamanlanırsa, tetikleyici yalnızca 31. günü olan aylarda çalışır.

Zamanlama, tetikleyici yürütme sayısını da genişletebilir. Örneğin, aylık sıklığa sahip olan ve ayın 1. ve 2. günlerinde çalışacak şekilde zamanlanan bir tetikleyici, ayda bir kez çalışmak yerine ayın birinci ve ikinci günlerinde çalışır.

Birden çok schedule öğe belirtilirse, değerlendirme sırası en büyükten en küçük zamanlama ayarına kadar olur. Değerlendirme hafta numarasıyla başlar ve ardından ay günü, hafta içi, saat ve son olarak dakika ile başlar.

Aşağıdaki tabloda, öğeler ayrıntılı olarak açıklanmaktadır schedule .

JSON öğesi Açıklama Geçerli değerler
minutes Tetikleyicinin çalıştığı dakika değeri.
  • Tamsayı
  • Tamsayı dizisi
hours Tetikleyicinin çalıştığı saat değeri.
  • Tamsayı
  • Tamsayı dizisi
weekDays Tetikleyicinin çalıştığı hafta günleri. Bu değer yalnızca haftalık bir sıklık ile belirtilebilir.
  • Pazartesi, Salı, Çarşamba, Perşembe, Cuma, Cumartesi, Pazar.
  • Gün değerleri dizisi (en büyük dizi boyutu 7'dir).
  • Gün değerleri büyük/küçük harfe duyarlı değildir.
monthlyOccurrences Tetikleyicinin çalıştığı ay günleri. Bu değer yalnızca aylık bir sıklık ile belirtilebilir.
  • Nesne dizisi monthlyOccurrences : { "day": day, "occurrence": occurrence }.
  • day özniteliği, tetikleyicinin çalıştığı haftanın günüdür. Örneğin, değeri {Sunday} olan bir monthlyOccurrences day özellik, ayın her Pazar günü anlamına gelir. day Özniteliği gereklidir.
  • occurrence özniteliği, ay boyunca belirtilen day öğesinin oluşumudur. Örneğin ve değerlerine {Sunday, -1} sahip day occurrence bir monthlyOccurrences özellik, ayın son Pazar günü anlamına gelir. occurrence özniteliği isteğe bağlıdır.
monthDays Tetikleyicinin çalıştığı ay günü. Bu değer yalnızca aylık bir sıklık ile belirtilebilir.
  • Herhangi bir değer <= -1 ve >= -31
  • Herhangi bir değer >= 1 ve <= 31
  • Değerler dizisi

Tetikleyici yineleme zamanlaması örnekleri

Bu bölümde yinelenme zamanlamaları örnekleri sağlanır ve nesneye schedule ve öğelerine odaklanır.

Örneklerde değerin interval olduğu 1 ve değerin frequency zamanlama tanımına göre doğru olduğu varsayılır. Örneğin, değerine day sahip frequency olamaz ve nesnede schedule bir monthDays değişiklik yapamazsınız. Bu gibi kısıtlamalar önceki bölümde yer alan tabloda belirtilmiştir.

Örnek Açıklama
{"hours":[5]} Her gün 05.00'te çalıştır.
{"minutes":[15], "hours":[5]} Her gün 05.15'te çalıştır.
{"minutes":[15], "hours":[5,17]} Her gün 05.15 ve 17.15’te çalıştır.
{"minutes":[15,45], "hours":[5,17]} Her gün 05.15, 05.45, 17.15 ve 17.45’te çalıştır.
{"minutes":[0,15,30,45]} 15 dakikada bir çalıştır.
{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]} Saatte bir çalıştır. Bu tetikleyici saatte bir çalışır. Bir değer belirtildiğinde startTime dakika değeri tarafından denetleniyor. Değer belirtilmezse, dakikalar oluşturma zamanı tarafından denetlenir. Örneğin başlangıç zamanı veya oluşturma zamanı (hangisi geçerliyse) 12:25 ise tetikleyici 00.25, 01.25, 02.25, ... ve 23.25 saatlerinde çalışır.

Bu zamanlama, değeri , değeri hourve değeri olmayan schedulebir frequency interval tetikleyiciye 1sahip olmakla eşdeğerdir. Bu zamanlama, başka tetikleyiciler oluşturmak için farklı frequency ve interval değerlerle kullanılabilir. Örneğin, değeri olduğunda frequency month, zamanlama değeri olduğunda her gün değil ayda frequency daybir kez çalışır.
{"minutes":[0]} Her saat başı çalıştır. Bu tetikleyici 12.00, 01.00, 02.00 gibi bir saatte başlayarak saat başı çalışır.

Bu zamanlama değeri ve değeri hour sıfır dakika olan bir startTime tetikleyiciye frequency eşdeğerdir veya değerinin dışında dayfrequency değildirschedule. frequency Değer veya monthiseweek, zamanlama sırasıyla haftada bir gün veya yalnızca ayda bir gün yürütülür.
{"minutes":[15]} Her saat başını 15 dakika geçe çalıştır. Bu tetikleyici, 00.15, 01.15, 02.15, vb. bir saatte başlayıp 23.15’te bitecek şekilde her saat başını 15 dakika geçe çalışır.
{"hours":[17], "weekDays":["saturday"]} Her hafta Cumartesi günleri saat 17.00'de çalıştır.
{"hours":[17], "weekDays":["monday", "wednesday", "friday"]} Her hafta Pazartesi, Çarşamba ve Cuma günleri saat 17.00'de çalıştır.
{"minutes":[15,45], "hours":[17], "weekDays":["monday", "wednesday", "friday"]} Her hafta Pazartesi, Çarşamba ve Cuma günleri saat 17.15 ve 17.45'te çalıştır.
{"minutes":[0,15,30,45], "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} Haftanın her günü 15 dakikada bir çalıştır.
{"minutes":[0,15,30,45], "hours": [9, 10, 11, 12, 13, 14, 15, 16] "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} Haftanın her günü 09.00 ile 16.45 arasında 15 dakikada bir çalıştır.
{"weekDays":["tuesday", "thursday"]} Salı ve Perşembe günleri belirtilen başlangıç saatinde çalıştır.
{"minutes":[0], "hours":[6], "monthDays":[28]} Her ayın 28. gününde saat 06:00'da çalıştırın (değerini monthvarsayarsakfrequency).
{"minutes":[0], "hours":[6], "monthDays":[-1]} Ayın son günü saat 06.00'da çalıştır. Bir tetikleyiciyi ayın son gününde çalıştırmak için 28, 29, 30 veya 31 yerine -1 değerini kullanın.
{"minutes":[0], "hours":[6], "monthDays":[1,-1]} Her ayın ilk ve son günü saat 06.00'da çalıştır.
{monthDays":[1,14]} Her ayın birinci ve 14. gününde belirtilen başlangıç zamanında çalıştır.
{"minutes":[0], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1}]} Her ayın ilk Cuma günü saat 05.00'te çalıştır.
{"monthlyOccurrences":[{"day":"friday", "occurrence":1}]} Her ayın ilk Cuma gününde belirtilen başlangıç zamanında çalıştır.
{"monthlyOccurrences":[{"day":"friday", "occurrence":-3}]} Her ay, ayın sondan üçüncü Cuma gününde belirtilen zamanda çalıştır.
{"minutes":[15], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} Her ayın ilk ve son Cuma günü saat 05.15'te çalıştır.
{"monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} Her ayın ilk ve son Cuma günü belirtilen başlangıç zamanında çalıştır.
{"monthlyOccurrences":[{"day":"friday", "occurrence":5}]} Her ayın beşinci Cuma günü belirtilen başlangıç zamanında çalıştır. Bir ay içinde beşinci Cuma olmadığında, işlem hattı yalnızca beşinci Cuma günleri çalışacak şekilde zamanlandığından çalışmaz. Tetikleyiciyi ayın son Cuma günü çalıştırmak için değer için occurrence 5 yerine -1 kullanmayı göz önünde bulundurun.
{"minutes":[0,15,30,45], "monthlyOccurrences":[{"day":"friday", "occurrence":-1}]} Ayın son Cuma günü 15 dakikada bir çalıştır.
{"minutes":[15,45], "hours":[5,17], "monthlyOccurrences":[{"day":"wednesday", "occurrence":3}]} Her ayın üçüncü Çarşamba günü 05.15, 05.45, 17.15 ve 17.45’te çalıştır.