2017-05-19 21 views
0

私は月の第1日を除いて1日に1回実行したいいくつかのAzureデータ工場パイプラインを持っています。紺碧のデータ工場のパイプラインのカスタマイズスケジュール

例としては、2016年12月1日ですが、パイプラインを実行しないことをお勧めします。

パイプラインスケジュールを変更するだけでこれが可能ですか?これを達成するための他の選択肢は何ですか?

答えて

0

これは可能ですが、実行したくないタイムスライスを手動で無効にするためにPowerShellを分解する必要があります。

データセットを作成して、1年間の日単位のスケジュールなどでアクティビティをプロビジョニングします。 PowerShellコマンドレットSet-AzureRmDataFactorySliceStatusを使用して、実行したくない年の12日間のタイムスライスステータスを上書きします。 -Statusパラメータの値がの場合は、コマンドレットを使用して実行されないようにするには、をスキップします。例えば

:次に

Set-AzureRmDataFactorySliceStatus ` 
    -ResourceGroupName $ResourceGroup ` 
    -DataFactoryName $ADFName.DataFactoryName ` 
    -DatasetName "YourDataset" ` 
    -StartDateTime 2016-12-01 ` 
    -EndDateTime 2016-12-02 ` 
    -Status "Skipped" ` 
    -UpdateType "Individual" 

異なる開始日と終了日でこれを返します。

これは完全ではなく、パイプラインの展開後に行う必要があります。しかし、それは必要な行動を提供するでしょう。ここ

もっとADFのPowerShell情報:https://docs.microsoft.com/en-us/powershell/module/azurerm.datafactories/set-azurermdatafactoryslicestatus?view=azurermps-4.0.0

は、この情報がお役に立てば幸いです。

1

今のところ最適な解決策は、起動するたびに日付をチェックし、完了したばかりの月の1日目であれば、Executeメソッドからnullを返すカスタムパイプラインを作成することですパイプライン。 COMMENT AFTER

EDIT:

public IDictionary<string, string> Execute(IEnumerable<LinkedService> linkedServices, IEnumerable<Dataset> datasets, Activity activity, IActivityLogger logger) 
{ 
    if (DateTime.UtcNow.Day == MonthDay.One) 
    { 
     return null; 
    } 
    /* YOUR PROCESSING DATA CODE */ 
    ... 
    return null; 
} 

この方法では、パイプラインは月の最初にその仕事を終えるだろうが、あなたのデータのいずれかの処理を行うことはありません...ここにあなたが持っている

Making your own custom pipeline

+1

これは、問題を解決するための貴重なヒントかもしれませんが、良い答えでも解決策が示されます。あなたが意味することを示すサンプルコードを提供するために[編集]してください。代わりに、これをコメントとして書くことを検討してください。 –

関連する問題