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.
Data Factory'de Düzenle sekmesine veya Azure Synapse'te Tümleştir sekmesine geçin.
Menüde Tetikleyici’yi seçip Yeni/Düzenle’yi seçin.
Tetikleyici ekle sayfasında Tetikleyici seç'i ve ardından Yeni'yi seçin.
Yeni tetikleyici sayfasında:
Tür için Zamanlama'nın seçili olduğunu onaylayın.
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.
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.
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.
Yinelenme'nin altında, açılan listeden Günler, Haftalar veya Aylar'ı seçerseniz Gelişmiş yinelenme seçeneklerini görebilirsiniz.
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.
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.
Yeni Tetikleyici penceresinde uyarı iletisini gözden geçirin ve Tamam'ı seçin.
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.
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.
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
- Azure aboneliği. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
- Azure PowerShell. Azure PowerShell'i PowerShellGet ile Windows'a yükleme başlığındaki yönergeleri izleyin.
Örnek kod
*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. öğesininendTime
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 olarakScheduleTrigger
ayarlanır.frequency
öğesi olarakMinute
interval
, öğesi ise olarak15
ayarlanı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 hemendTime
destartTime
'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 veendTime
Z biçiminiyyyy-MM-ddTHH:mm:ss
izlemesi gerekir. Diğer saat dilimleristartTime
için biçimiendTime
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 getirmektimeZone
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 fazlapipelineReference
bölüm ekleyin.Hızlı başlangıçtaki işlem hattı iki
parameters
değer alır:inputPath
veoutputPath
. Bu parametreler için değerleri tetikleyiciden geçirirsiniz.
Set-AzDataFactoryV2Trigger cmdlet'ini kullanarak bir tetikleyici oluşturun:
Set-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger" -DefinitionFile "C:\ADFv2QuickStartPSH\MyTrigger.json"
Tetikleyicinin durumunun Get-AzDataFactoryV2Trigger cmdlet'ini kullanarak Durduruldu olduğunu onaylayın:
Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
Start-AzDataFactoryV2Trigger cmdlet'ini kullanarak tetikleyiciyi başlatın:
Start-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
Tetikleyicinin durumunun Get-AzDataFactoryV2Trigger cmdlet'ini kullanarak başlatıldığını onaylayın:
Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
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
veTriggerRunStartedBefore
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
veTriggerRunStartedBefore
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
Ç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. öğesininendTime
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 olarakScheduleTrigger
ayarlanır.frequency
öğesi olarakMinute
interval
, öğesi ise olarak15
ayarlanı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 hemendTime
destartTime
'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çiminiyyyy-MM-ddTHH:mm:ss
izlemesi gerekir. Diğer saat dilimleristartTime
için biçimiendTime
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 fazlapipelineReference
bölüm ekleyin.Hızlı başlangıçtaki işlem hattı iki
parameters
değer alır:inputPath
veoutputPath
. Bu parametreler için değerleri tetikleyiciden geçirirsiniz.
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
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"
az datafactory trigger start komutunu kullanarak tetikleyiciyi başlatın :
az datafactory trigger start --resource-group "ADFQuickStartRG" --factory-name "ADFTutorialFactory" --name "MyTrigger"
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"
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
velast-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, , SliceEnd
WindowStart
ve WindowEnd
sistem değişkenlerini SliceStart
kullanarak 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 , endTime ve schedule 'yi etkilerstartTime . Desteklenen saat dilimlerinin listesine bakın. |
recurrence |
Tetikleyici için yinelenme kurallarını belirten bir yinelenme nesnesi. Yinelenme nesnesi , , interval endTime , count ve 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 .month week |
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 week tetikleyici 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:ss
izlemesi 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
2
olarak 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:00
olsa 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:00pm
ve 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. |
|
hours |
Tetikleyicinin çalıştığı saat değeri. |
|
weekDays |
Tetikleyicinin çalıştığı hafta günleri. Bu değer yalnızca haftalık bir sıklık ile belirtilebilir. |
|
monthlyOccurrences |
Tetikleyicinin çalıştığı ay günleri. Bu değer yalnızca aylık bir sıklık ile belirtilebilir. |
|
monthDays |
Tetikleyicinin çalıştığı ay günü. Bu değer yalnızca aylık bir sıklık ile belirtilebilir. |
|
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 hour ve değeri olmayan schedule bir frequency interval tetikleyiciye 1 sahip 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 day bir 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 day frequency değildirschedule . frequency Değer veya month iseweek , 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 month varsayarsakfrequency ). |
{"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. |
İlgili içerik
- Tetikleyiciler hakkında daha fazla bilgi için bkz . İşlem hattı yürütme ve tetikleyiciler.
- İşlem hattında tetikleyici meta verilerine başvurmayı öğrenmek için bkz . İşlem hattı çalıştırmalarında tetikleyici meta verilerine başvurma.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin