データ ファクトリの制御フローを理解する

完了

制御フローとは

制御フローとは、パイプライン アクティビティのオーケストレーションです。これには、シーケンスに従うアクティビティの連鎖、分岐、パイプライン レベルでのパラメーターの定義、オンデマンドかトリガーからパイプラインが呼び出される際の引数の受け渡しが含まれます。

制御フローには、ループ コンテナーの反復処理ごとに情報を渡すことができるループ コンテナーを含めることもできます。

For Each ループが制御フロー アクティビティとして使用されている場合、Azure Data Factory では、このアプローチを使用して複数のアクティビティを並行して開始できます。 これにより、Azure Data Factory で作成するパイプライン内で、複雑で反復的な処理ロジックを構築でき、最新のデータ ウェアハウスの構築など、さまざまなデータ統合パターンの作成がサポートされます。

以降のセクションでは、一般的な制御フロー アクティビティのいくつかについて説明します。

連鎖するアクティビティ

Azure Data Factory 内では、パイプライン内のシーケンスでアクティビティを連鎖させることができます。 アクティビティ定義で dependsOn プロパティを使用して、アップストリーム アクティビティと連結することができます。

アクティビティの分岐

パイプライン内でのアクティビティの分岐には、Azure Data Factory を使用します。 分岐アクティビティの例として、 If 条件 アクティビティがあります。これは、プログラミング言語で提供される if ステートメントに似ています。 分岐アクティビティでは、一連のアクティビティを評価します。条件が true に評価された場合、一連のアクティビティが実行されます。 条件が false に評価された場合は、別の一連のアクティビティが実行されます。

2 つ以上の結果パスが必要な場合は、 Switch アクティビティを使用します。 Switch アクティビティは、プログラミング言語の switch/case ステートメントと同様に機能します。式を評価し、特定のケース値に一致するアクティビティを実行します。 最大 25 個の名前付きケースと、ケースが一致しない場合に実行される既定の分岐を定義できます。 バイナリの true/false の決定に If 条件を使用し、複数の個別の結果がある場合は Switch を使用します。

パラメーター

パイプライン レベルでパラメーターを定義し、パイプラインをオンデマンドで起動するかトリガーから起動するときに引数を渡すことができます。 アクティビティは、パイプラインに渡されるパラメーターに保持されている引数を使用します。

カスタム状態の受け渡し

Azure Data Factory でカスタム状態の受け渡しが使用できるようになりました。 カスタム状態の受け渡しは、出力を作成したアクティビティ、またはパイプライン内の後続のアクティビティで使用する必要があるアクティビティの状態です。 たとえば、アクティビティの JSON 定義では、前のアクティビティの出力にアクセスできます。 カスタム状態の受け渡しを使用すると、アクティビティ間で値が受け渡されるワークフローを構築できます。

ループするコンテナ

ForEach アクティビティなどの制御フローのループ コンテナー 群では、パイプライン内での繰り返しを定義します。 コレクションを反復処理できるようにし、定義されたループ内で指定のアクティビティを実行します。 これは、プログラミング言語で使用される "for each ループ構造" と同様に機能します。 各アクティビティに加えて、Until アクティビティもあります。 この機能は、プログラミングで使用される do-until ループに似ています。 それは、条件 (until) が満たされるまで、ループ内の一連のアクティビティ (do) を実行することです。

トリガーベースのフロー

パイプラインはオンデマンド(イベントベース、たとえば BLOB の投稿)またはスケジュールされた時間でトリガーすることができます。

別のパイプラインからのパイプラインの呼び出し

Azure Data Factory でのパイプラインの実行アクティビティでは、Data Factory のパイプラインで別のパイプラインを呼び出すことができます。

デルタフロー

差分フローの使用に関連するユースケースは、差分ロードです。 ETL パターンでの差分読み込みでは、パイプラインの前回の反復以降に変更されたデータのみが読み込まれます。 ルックアップ アクティビティや柔軟なスケジュール設定などの機能は、差分ロードジョブの処理に役立ちます。 Lookup アクティビティを使用している場合は、外部ソースからレコードまたはテーブル名の値が読み取られるか、または検索されます。 この出力は、後続のアクティビティによってさらに参照できます。

その他の制御フロー

制御フロー アクティビティは他にも多数あります。 その他の便利なアクティビティについては、次の項目を参照してください。

  • Web アクティビティ: 制御フローを使用する Azure Data Factory 内の Web アクティビティでは、Data Factory パイプラインからカスタム REST エンドポイントを呼び出すことができます。 このアクティビティで使用されるようにするために、データセットやリンクされたサービスを渡すことができます。

  • メタデータ取得アクティビティ: メタデータ取得アクティビティでは、Azure Data Factory 内の任意のデータのメタデータを取得します。