適用対象:
Azure Data Factory
Azure Synapse Analytics
ヒント
Data Factory in Microsoft Fabric は、よりシンプルなアーキテクチャ、組み込みの AI、および新機能を備えた次世代のAzure Data Factoryです。 データ統合を初めて使用する場合は、Fabric Data Factory から始めます。 既存の ADF ワークロードをFabricにアップグレードして、データ サイエンス、リアルタイム分析、レポートの新機能にアクセスできます。
この記事では、タンブリング ウィンドウ トリガーの依存関係を作成する手順について説明します。 タンブリング ウィンドウ トリガーに関する一般的な情報については、タンブリング ウィンドウ トリガーの作成に関するページを参照してください。
依存関係チェーンを構築し、トリガーがサービス内の別のトリガーの実行が成功した後でのみ実行されるようにするには、この高度な機能を使用して、タンブリング ウィンドウの依存関係を作成します。
タンブリング ウィンドウ トリガーを使用して依存パイプラインを作成する方法のデモについては、次のビデオを参照してください。
UI で依存関係を作成する
トリガーへの依存関係を作成するには、[トリガー]>[詳細]>[新規] の順に選択します。 次に、適切なオフセットとサイズとともに依存するトリガーを選択します。 [完了] を選択して、依存関係に対する変更を発行して有効にします。
タンブリングウィンドウ依存プロパティ
依存関係を持つタンブリング ウィンドウ トリガーには、次のプロパティがあります。
{
"name": "MyTriggerName",
"properties": {
"type": "TumblingWindowTrigger",
"runtimeState": <<Started/Stopped/Disabled - readonly>>,
"typeProperties": {
"frequency": <<Minute/Hour>>,
"interval": <<int>>,
"startTime": <<datetime>>,
"endTime": <<datetime - optional>>,
"delay": <<timespan - optional>>,
"maxConcurrency": <<int>> (required, max allowed: 50),
"retryPolicy": {
"count": <<int - optional, default: 0>>,
"intervalInSeconds": <<int>>,
},
"dependsOn": [
{
"type": "TumblingWindowTriggerDependencyReference",
"size": <<timespan - optional>>,
"offset": <<timespan - optional>>,
"referenceTrigger": {
"referenceName": "MyTumblingWindowDependency1",
"type": "TriggerReference"
}
},
{
"type": "SelfDependencyTumblingWindowTriggerReference",
"size": <<timespan - optional>>,
"offset": <<timespan>>
}
]
}
}
}
次の表に、タンブリング ウィンドウの依存関係を定義するために必要な属性の一覧を示します。
| プロパティ名 | 説明 | タイプ | 必須 |
|---|---|---|---|
type |
既存のすべてのタンブリング ウィンドウ トリガーがこのドロップダウン リストに表示されます。 依存関係を設定するトリガーを選択します。 |
TumblingWindowTriggerDependencyReference または SelfDependencyTumblingWindowTriggerReference |
はい |
offset |
依存関係トリガーのオフセット。 時間範囲形式で値を指定します。 負のオフセットと正のオフセットの両方を使用できます。 このプロパティは、トリガーが自己に依存する場合は必須です。 その他の場合は、省略可能です。 自己依存関係は、常に負のオフセットにする必要があります。 値が指定されていない場合、ウィンドウはトリガーそのものと同じになります。 | Timespan (hh:mm:ss) |
自己依存関係:はい その他:いいえ |
size |
依存関係のタンブリング ウィンドウのサイズ。 正の timespan 値を指定します。 このプロパティは省略可能です。 | Timespan (hh:mm:ss) |
いいえ |
Note
タンブリング ウィンドウ トリガーは、最大 5 つの他のトリガーに依存することができます。
タンブリング ウィンドウの自己依存性プロパティ
前のウィンドウが正常に完了するまではトリガーが次のウィンドウに進んではならないシナリオでは、自己依存関係を構築します。 前の時間内にそれ自体の以前の実行が成功したことに依存する自己依存トリガーには、次のコードで示されているプロパティがあります。
Note
トリガーされるパイプラインが、前にトリガーされたウィンドウでのパイプラインの出力に依存している場合は、タンブリング ウィンドウ トリガーの自己依存関係のみを使用することをお勧めします。 並列トリガーの実行を制限するには、最大トリガー コンカレンシーを設定します。
{
"name": "DemoSelfDependency",
"properties": {
"runtimeState": "Started",
"pipeline": {
"pipelineReference": {
"referenceName": "Demo",
"type": "PipelineReference"
}
},
"type": "TumblingWindowTrigger",
"typeProperties": {
"frequency": "Hour",
"interval": 1,
"startTime": "2018-10-04T00:00:00Z",
"delay": "00:01:00",
"maxConcurrency": 50,
"retryPolicy": {
"intervalInSeconds": 30
},
"dependsOn": [
{
"type": "SelfDependencyTumblingWindowTriggerReference",
"size": "01:00:00",
"offset": "-01:00:00"
}
]
}
}
}
使用シナリオと例
次に示すシナリオでは、「タンブリング ウィンドウ」の依存プロパティの使用方法を説明します。 これらの例では、次のトリガーが起動する前に黄色のウィンドウが正常に完了する必要があります。破線は、完了すると起動するウィンドウに接続します。
依存関係のオフセット
これらの例では、トリガー A の 10 から 11 の実行は、トリガー B からの実行に依存します (黄色で強調表示されています)。トリガー B が正常に完了すると、トリガー A が開始されます。
この依存関係は同時に指定することも (同時に実行することもできます)、オフセット (トリガー A とは異なる時刻に実行されるトリガー B) にすることもできます。
最初の例では、10 から 11 のタイムフレーム トリガー A は 10 から 11 トリガー B に同時に依存するため、オフセットは 0 になります。
2 番目の例では、10 から 11 のタイムフレーム トリガー A は 9 から 10 のトリガー B にオフセット依存しているため、-1 時間のオフセットがあります。
依存関係のサイズ
これらの例では、トリガー A の 10 から 11 の実行は、トリガー B からの実行に依存します (黄色で強調表示されています)。トリガー B が正常に完了すると、トリガー A が開始されます。
依存関係ウィンドウのサイズは、依存ウィンドウのサイズとは異なる場合があります。
最初の例では、10 から 11 の時間枠のトリガー A には、9 から 10 のトリガー B に対するオフセットの依存関係があります。依存関係ウィンドウのサイズはトリガー ウィンドウと同じサイズであるため、オフセットは -1 時間であり、サイズは 指定されていません 。
2 番目の例では、10 から 11 のタイムフレーム トリガー A には 9 から 11 のトリガー B に対するオフセット依存があるため、-1 時間のオフセットと 2 時間のサイズがあります。
自己依存
これらの例では、トリガー A の 10 から 11 の実行は、トリガー A の前の実行によって異なります。トリガー A から指定したウィンドウが正常に完了すると、次の A トリガーが開始されます。
最初の例では、10 から 11 のタイムフレーム トリガー A には 9 から 10 のトリガー A のオフセット依存があるため、依存関係ウィンドウのサイズはトリガー ウィンドウと同じサイズであるため、-1 時間のオフセットと 未指定 のサイズがあります。
2 番目の例では、10 から 11 のタイムフレーム トリガー A は 8 から 10 のトリガー A に対するオフセット依存を持っているので、-1 時間のオフセットと 2 時間のサイズがあります。
3 番目の例は、1時間単位のジョブではなく、出力ストリームが途切れなく毎日行われるジョブを示しています。
10/2-10/3 タイムフレーム トリガーは、10/1-10/2 ウィンドウに依存しており、10/1-10/2 が正常に完了した場合にのみトリガーされます。 依存関係ウィンドウのサイズはトリガー ウィンドウと同じサイズであるため、オフセットは -1 日であり、サイズは 指定されていません。
別のタンブリング ウィンドウ トリガーに対する依存関係
次の例は、過去 7 日間の出力を集計する別の日次ジョブに依存する日次テレメトリ処理ジョブを示すもので、7 日分のローリング ウィンドウ ストリームを生成します。
トリガー B の 10/1-10/8 ウィンドウが正常に完了すると、トリガー A の 10/7-10/8 トリガーが開始されます。 トリガー A の依存関係には、-6 日のオフセットと 7 日間のサイズがあります。
依存関係を監視する
[トリガーの実行] 監視ページで、依存関係チェーンと該当するウィンドウを監視できます。 [監視]>[トリガーの実行] に移動します。 タンブリング ウィンドウ トリガーに依存関係がある場合、トリガー名には依存関係の監視ビューへのハイパーリンクが表示されます。
トリガーの依存関係を表示するには、トリガー名をクリックします。 右側のペインには、実行 ID、ウィンドウ時間、状態などのトリガー実行に関する情報が表示されます。
依存関係の状態、および各依存トリガーのウィンドウが表示されます。 依存関係トリガーのいずれかが失敗した場合は、正常に再実行して、依存するトリガーが稼働できるようにする必要があります。
タンブリング ウィンドウ トリガーは、依存関係を 7 日間待機してからタイムアウトします。7 日が経過すると、トリガーの実行は失敗します。
Note
タンブリング ウィンドウ トリガーは、依存関係の待機中状態にある間は取り消すことができません。 タンブリング ウィンドウ トリガーを取り消すには、依存アクティビティを終了する必要があります。 この制限は、依存アクティビティが開始された後に完了できるように設計されています。 また、予期しない結果が生じる可能性を減らすのにも役立ちます。
トリガーの依存関係のスケジュールを視覚的な方法で表示するには、[ガント] ビューを選択します。
透明なボックスに、ダウンストリームに依存する各トリガーの依存関係ウィンドウが表示されます。 上の画像に示されている単色のボックスは、各ウィンドウの実行を示しています。 ここでは、ガント チャート ビューを解釈するためのヒントをいくつか紹介します。
- 透明なボックスは、依存ウィンドウが保留中または実行中の状態のときに青で表示されます
- すべてのウィンドウが依存トリガーに対して成功すると、透明なボックスが緑色に変わります
- ある依存ウィンドウが失敗した場合、透明なボックスは赤で表示されます。 エラーになっているウィンドウの実行を特定するには、赤のボックスを探します。
ガント チャート ビューでウィンドウを再実行するには、ウィンドウの単色ボックスを選択します。 情報と再実行オプションが示されたアクション ペインがポップアップ表示されます。