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

完了

制御フローとは

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

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

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

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

連鎖するアクティビティ

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

アクティビティの分岐

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

パラメーター

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

カスタム状態の受け渡し

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

ループ コンテナー

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

トリガー ベースのフロー

パイプラインをオンデマンド (イベントベースである、BLOB ポストなど) または実時間でトリガーすることができます。

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

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

差分フロー

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

その他の制御フロー

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

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

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