データ接続と統合パイプラインの構築スケジューリングスケジュールの作成

注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

スケジュールを作成する

Data Lineage のスケジュールエディターでは、新しいスケジュールを作成したり、既存のスケジュールを編集したりできます。また、既存のスケジュールのメトリクスを表示し、そのスケジュールでデータセットがどのようにビルドされるかを確認できます。

スケジュールエディターに移動する

次の手順で、新しいスケジュールを作成できる Data Lineage のスケジュールエディターに移動します。

  1. ビルドをスケジュールしたいデータセットのデータセットプレビューに移動し、アクションメニューを開いて、スケジュールの管理を選択します。

    アクションメニューからスケジュールを管理する

  2. Data Lineage のグラフが表示され、右側のスケジュールパネルに、そのデータセットに影響する現在のスケジュールがすべて一覧表示されます。

    スケジュールを作成するには、スケジュールを作成ボタンをクリックします。

    新しいスケジュールを作成する

  3. スケジュールエディターが表示されます。

    Data Lineage のスケジュールエディター

スケジュールを定義する

スケジュールを定義するには、以下のセクションを完成させる必要があります。

Data Lineage でスケジュールを作成すると、グラフで設定されているブランチ(フォールバックブランチを含む)に適用されます。

対象データセット

対象データセットは、ビルドの終点となるデータセットを指定します。デフォルトでは、これらのデータセットのみがビルドされます。ほかの設定では、これらのデータセットが、ビルドされる一連のデータセットの最後になる場合があります。

ビルドスケジュールの対象データセット

対象データセットは、グラフに追加して対象としてマークすることで選択できます。

対象データセットをグラフに追加する

データセットは、Data Lineage ウィンドウの右上で設定されたブランチ上でビルドされます。グラフ上のデータセットは、スケジュールにどのように影響するか、またはスケジュールからどのような影響を受けるかに応じて色分けされます。

除外するデータセット

除外するデータセットは、ビルドするデータセットを決定するためにグラフを走査する際に無視するデータセットを指定します。無視するデータセットより上流のデータセットは、いずれもビルドされません。

データセットをビルドから除外する

ビルドのタイミング

トリガーは、ビルドをいつ実行するかを指定します。トリガーで定義された条件が満たされると、ビルドが実行されます。

トリガーには、基本となる2つの種類があります。

トリガーを組み合わせて、より複雑な複合トリガーを作成できます。トリガーを組み合わせる方法は、トリガーエディターのメニューで選択できます。

  • いずれかのトリガー: 構成要素となるトリガーのいずれかが条件を満たすと、このトリガーの条件が満たされます。

  • すべてのトリガー: 構成要素となるトリガーのすべてが条件を満たすと、このトリガーの条件が満たされます。

  • 詳細な設定: 構成要素となるトリガーを組み合わせる方法を明示的に設定します。

    詳細な設定を選択すると、2つのトリガーの間にキーワード AND と OR を挿入して、構成要素となるトリガーを組み合わせます。複合トリガーを括弧 ( と ) で囲むことで、さらに組み合わせることができます。

    • AND は、構成要素となる両方のトリガーが条件を満たすと、複合トリガーの条件が満たされることを示します。

    • OR は、構成要素となるいずれかのトリガーが条件を満たすと、複合トリガーの条件が満たされることを示します。

    複合トリガーについて詳しくはこちら。

ビルドの種類

ビルドの種類は、選択したデータセットをどのようにビルドするかを指定します。

  • 単一ビルド: 対象データセットをビルドします(ほかのデータセットはビルドされません)。

  • フルビルド(上流を含む): 除外するデータセットを除き、すべての対象データセットと、その対象のすべての上流データセットをビルドします。上流の依存関係が変わると、ビルドされるデータセットも変わる場合があります。

  • 二点間 Build: 入力データセット(含まれません)と対象データセット(含まれます)の間にあるすべてのデータセットをビルドします。入力データセットと対象データセットの間にあるデータセットが、入力として明示的に追加されていても、そのデータセットはスケジュールによってビルドされます。対象データセットとして選択したデータセットに、入力データセットからのビルドパスがない場合、その対象データセットはビルドされません。

二点間ビルドでは、対象データセットと上流データセットの間をつなぐすべてのデータセットが、スケジュールを設定したブランチ上で Job Spec のパスによって接続されている必要があります。

以下に、データセット D1, ..., D6 を含むリネージの例を使って説明します。この例では、データセット D2 の2つの異なるブランチが、D3 と D4 の入力として使用されています。master ブランチ上で、入力を D1、対象を D5 と D6 とする二点間ビルドスケジュールは、D2、D4、D6 のみのビルドを試みます。

この動作になるのは、master ブランチ上で入力 D1 から対象 D6 までの二点間ビルドを選択すると、データセット D1 と D6 の間に Job Spec のパスが存在するため、データセット D2、D4、D6 が選択されるからです。一方、master ブランチに沿った Job Spec のパスは途切れているため、入力 D1 から対象 D5 までの二点間ビルドの選択は成立しません。

D1 (master) --> D2 (master) --> D4 (master) --> D6 (master)
                 |
                 | D2 (develop)
                 |
                  --> D3 (master) --> D5 (master)

この例のスケジュールされたビルドにデータセット D3 を含めるには、ビルドをフルビルドに変更する必要があります。これにより、D3 に加え、D5 の上流にある入力 D1 も含まれます。または、二点間ビルドの選択を維持するために、D2(develop)を入力、D3 を出力とするトランスフォームを編集し、以下のように master ブランチ上のダミー入力 D7 を追加できます。これで、master ブランチ上で、入力を D1、対象を D5 と D6 とするスケジュールされた二点間ビルドは、D2、D3、D4、D5、D6 をビルドするようになります。

D1 (master) --> D2 (master) --> D4 (master) --> D6 (master)
                 |
                 | D2 (develop)
                 |
D7 (master) -------> D3 (master) --> D5 (master)

より一般的には、二点間ビルドスケジュールで、スケジュールを含むブランチとは異なるブランチのデータセットを使用する場合、これらのデータセットをビルドに含めるには、入力と対象のビルドの間に、同じブランチ上でつながる Job Spec のパスが存在する必要があります。

ビルドのスコープ

データパイプラインが動的に変化することを考慮し、スケジュールがトリガーされるたびに、ビルドに含めるデータセットが評価されます。Build のスコープは、スケジュールされたビルドの範囲を定義します。この範囲は、パイプラインの内容が変わっても固定されたままです。スコープを設定するためのオプションは2つあります。

  1. プロジェクト単位: スケジュールは、選択したプロジェクト内の対象となるデータセットのみをビルドできます。
  2. ユーザーアカウント単位: スケジュールは、スケジュールの作成者または編集者がビルドを許可されているデータセットのみをビルドできます。

プロジェクトによるスコープ設定

プロジェクトによるスコープ設定では、スケジュールが選択したプロジェクト内のデータセットに対してのみ実行されることが保証されます。これにより、ユーザー権限の変更に影響されずにスケジュールを実行できます。このオプションは、ビルドの内容が、選択したプロジェクト内で実行できなくなるほど変わる可能性が低い場合に、最も信頼性が高くなります(以下で説明します)。

次の場合、ビルドのスコープをプロジェクトで設定することはできません。

  • プロジェクトでスケジュールを作成する権限がありません。
  • データセットをビルドするための十分な権限がありません。
  • スケジュール設定の対象に、マーキングを削除するデータセットが含まれています(グラフを権限で色分けすると、Data Lineage で確認できます)。
  • スケジュール設定の対象に、ユーザーアカウントでビルドする必要があるデータセットが含まれています。
  • スケジュールの内容から、対象となるプロジェクトを明確に特定できません。

ユーザーによるスコープ設定

ユーザーによるスコープ設定では、スケジュールを最後に編集(または作成)したユーザーの代理として、スケジュールされたビルドがトリガーされます。そのため、ビルドには、そのユーザーがビルドを許可されているデータセットのみが含まれます。このオプションは、スケジュールされたパイプラインが変わり、プロジェクトによるスコープ設定が不可能になる可能性が高い場合(たとえば、データセットが別のプロジェクトに移動されたり、新しいデータセットがユーザーアカウントでの実行を必要としたりする場合)に、最も信頼性が高くなります。

スコープ設定に使用するユーザーがアクセス権を失うと、スケジュールされたビルドに失敗します

ユーザーが無効化されたり、ビルドに不可欠なデータセットへの権限を失ったりすると、スケジュールされたビルドの開始に失敗します。ユーザーアカウントでスコープを設定する場合は、そのアカウントの権限が安定して維持されることを確認し、ユーザーが無効化される予定の場合は、忘れずに所有者を変更してください。

詳細設定

詳細設定では、追加のビルドオプションを指定します。

詳細設定

  • 一つのジョブが失敗した時点で Build を中止する: ビルド内のいずれかのジョブが成功しなかった場合、ほかのすべてのジョブをキャンセルして、ビルドを直ちに終了します。

  • 失敗したジョブの再試行回数を調整する: 失敗したジョブの実行を試みる回数です。再試行されるジョブは、同じビルドの一部として実行されます。すべての再試行を試みるか、再試行できないことを示すエラーが発生するまで、ジョブは失敗したと見なされません。この値を1に設定すると、ジョブの実行は1回しか試みられないため、再試行されません。失敗の種類によっては再試行できないことに注意してください。スケジュール実行時の再試行回数は、管理者が設定した最大回数に制限されます。

  • 強制 Build: ビルドの実行時に、データが古いかどうかの情報を無視します。古いかどうかにかかわらず、すべてのデータセットがビルドされます。このオプションが必要になることはほとんどありません。このオプションが必要になるまれなケースは、次のとおりです。

    1. Data Connection の同期: Data Connection の同期は外部由来の入力を持つため、常に最新として指定されます。Foundry は、外部データが更新されたかどうかを把握できません。同期だけが強制ビルドされるように、Data Connection の同期は、ビルドのほかの部分とは別にスケジュールすることを推奨します。
    2. Object Storage v1 (Phonograph) の同期
外部トランスフォームのスケジュール

API 呼び出しを行うトランスフォームは、Data Connection の同期とは異なる動作をします。これらのトランスフォームは常に古いと見なされるため、強制 Build オプションを使用しなくても、どのビルドスケジュールでもトリガーされます。

  • Build 成功時に再トリガー: すべての入力が処理され、スケジュールの対象が古い状態でなくなるまで、スケジュールを繰り返しトリガーしてビルドを続行します。この設定を有効に機能させるには、スケジュールが次の条件を満たす必要があります。

    1. データセットのインクリメンタル(差分処理)トランザクション制限、またはメディアセットのインクリメンタルバッチ制限を使用する対象出力を1つ以上含む必要があります。スケジュールにそのような出力がない場合、「このスケジュール内に再トリガーが必要なリソースはありません」という警告が表示されます。
    2. 強制 Build 設定が無効になっている必要があります。
  • 実行の重複を許可: デフォルトでは、同じスケジュールの別の実行が進行中の場合、スケジュールは新しい実行を開始しません。この設定を有効にすると、実行の重複が許可されます。この設定は、次の目的で使用します。

    • 長いジョブの連なりを持つパイプラインで低遅延を実現する: 先行する実行がパイプライン全体でのデータ処理を完了する前に、新しい実行がパイプラインの先頭で新しい入力データの処理を開始できます。
    • 1つのスケジュールで複数のデータセットを最新に保つ: データセットごとに個別のスケジュールを用意しなくても、1つのスケジュールが必要に応じて各データセットのビルドを開始します。
  • ジョブ失敗時の動作をカスタマイズ: デフォルトでは、ジョブが失敗すると、ビルドはそのジョブに依存するジョブをキャンセルします。この設定を有効にすると、ジョブが失敗しても依存するジョブをキャンセルしないデータセットを指定できます。指定したデータセットのいずれかのジョブが失敗しても、ビルドはそのジョブに依存するジョブの実行を続行します。

スケジュールを保存する

スケジュールの定義が完了したら、スケジュールを保存ボタンをクリックします。

スケジュールページに戻り、保存したスケジュールが表示されます。