ジョブ実行の設定を構成する
Data Processing Engineの各アクションまたはワークフローには、Preferencesタブを通じて管理できる複数の設定オプションがあります
目的
アクション または ワークフロー の各々は、Data Processing Engineに複数の設定オプションがあり、これらは Preferences タブを通じて管理できます。
アクション が実行される際には、その設定を使用して実行されます。
ワークフロー が実行される際には、その設定はワークフロー内のすべてのアクションの設定を 上書き します。ワークフローレベルで特定の設定オプションが無効になっている場合(セグメンテーションやペリメーターなど)、ワークフローの実行中に各アクションの設定に戻ります。
これらの設定は、環境 に保存することで、テンプレート化され、1クリックで再利用できます。
環境
プラットフォームの環境は、アクションやワークフローに迅速に割り当てることができる事前定義された設定のセットです。そのため、毎回設定する必要がありません。
タイムアウトオプション
タイムアウトオプションは 環境 にテンプレート化されておらず、各アクション/ワークフローの設定で構成する必要があります
タイムアウト
タイムアウトは、ジョブが失敗とみなされる実行ランタイムの期間です。タイムアウト期間には、リソースのプロビジョニング時間、ビルド時間、および実際のコード実行時間が含まれます。
設定できる最大タイムアウト期間は24時間です。ただし、以下の種類のジョブでは、それを null に設定できます。つまり、無制限(タイムアウトは強制されません)です:
ジョブの実行がタイムアウトした場合、それは ジョブ リストでタイムアウトによる失敗としてフラグ付けされ、他の失敗の原因と区別されます。
ワークフローの失敗時に停止
アクションが ワークフロー の一部として実行され、失敗し CRITICAL エラーをスローした場合(ログに表示されます)、このオプションを有効にすると、ワークフローの実行が中断され、次のステージやアクションは実行されません。
実行オプション
サービスアカウント
各アクション、ワークフロー、または環境には、それに関連付けられた サービスアカウント があり、これは アクション/ワークフローが実行される際にそのアカウントを装います。このサービスアカウントは実行中のジョブのアイデンティティとして機能し、サービスアカウントのロール を通じてジョブのアクセスレベルを制御します。
ジョブを手動で起動しても、その実行は関連付けられたサービスアカウントによって認証されます。
ペリメーター
このパラメータは Custom PySpark アクション に対して利用できません。
データ処理ジョブを実行する際、処理する大量のデータに達した場合、アクションの実行をフィルタリングする必要がある場合があります。ペリメーター パラメータを使用すると、データ処理の範囲をフィルタリングするフィールドを 定義 できます。
データソースとアクションの種類によって、複数のペリメーターモードが利用可能です。
スコープは特に以下に使用されます:
- 列に処理フィルタを適用する
- アクションの実行を高速化する
- 特定のデータソースのリクエスト負荷を軽減する
- 毎日スケジュールされたワークフローでは、全履歴のデータではなく、過去X日間のデータのみを処理する
ログレベル
ログレベルは、アクションまたはワークフローの実行中に保存されるログのリストを定義します。異なるレベルは debug から critical まであります。選択したログ(含む)以上のすべてのログが保存されます。
キャッシュを自動的にフラッシュ
このパラメータを有効にすると、アクション/ワークフローの各実行後にコンポーネントのキャッシュが自動的にフラッシュされます。
キャッシュについてさらに詳しくは この記事 をご覧ください。
書き込み戦略
このオプションは Load、Aggregate、Load PySpark、および Aggregate PySpark アクションのみで利用可能です。
書き込み戦略は、新しいデータが既存の行と一致する場合、アクションが新しいデータを目的地のテーブルにどのように書き込むかを定義します。一致はテーブルの 識別子フィールド に基づいて行われます。
3つの戦略があります:
- Upsert: アクションは、すべての識別子フィールドを使用して新しいデータを既存のデータと照合します。新しい行が既存の行と同じ識別子フィールドを持っている場合、既存の行は 更新 されます。それ以外の場合、新しい行が追加されます。
- Insert when not matched: 新しい行が既存の行と一致する場合(識別子フィールドを使用)、何も行われません。それ以外の場合、新しい行が追加されます。
- Insert all: すべての新しい行がテーブルに挿入されます。識別子フィールドで既存の行と一致する行があってもです。これにより重複が生じる可能性があります。
LoadおよびAggregateアクションはデフォルトでInsert allに設定されています。 一致する動作が必要な場合は、アクションの設定で Upsert(または Insert when not matched)を手動で選択してください。
例
次の users テーブルを考慮してください:
Firstname + Lastname を識別子フィールドとして使用し、次の新しいデータでアクションを実行します:
結果は書き込み戦略によって異なります。
Upsert: Aliceは既存の行と一致し、更新されます。Charlesは新規であり、追加されます:
Insert when not matched: Aliceは既存の行と一致するため、何も行われません。Charlesは新規であり、追加されます:
Insert all: 両方の新しい行がそのまま挿入され、重複したAliceが残ります:
環境変数
これは Custom アクション、ワークフロー、および環境のみで利用可能です。
環境変数は、カスタムアクションにテンプレート化して注入できるキー値ペアです。これにより、カスタムスクリプトに値をハードコーディングする必要がありません。それらは PARAMS ディクショナリオブジェクトの forepaas.core.settings パッケージ(SDKで利用可能)に保存されます。
典型的なユースケースのコードスニペットは このページ で利用可能です。
環境変数はKMSライフサイクルを通過しないため、シークレットや資格情報を保存して注入するために使用してはなりません。
トリガー
トリガーは環境でテンプレート化されておらず、各アクション/ワークフローの設定で構成する必要があります。
トリガーを使用すると、ジョブを自動的に実行するように設定できます。典型的な使用例として、APIエンドポイントにアクセスしてジョブを起動するか、時間ベースのトリガーをスケジュールする(例:毎日午前0時にジョブを実行する)ことが挙げられます。
APIエンドポイントトリガー
このエンドポイントを使用すると、APIを介してジョブをトリガーできます。
常にLaunch API Endpointという名前のトリガーを通じて利用可能です。クリックしてエンドポイントの詳細を確認してください。
ジョブをトリガーするには、Authenticationエンドポイントで最初に認証し、その後Launch Jobエンドポイントでジョブをトリガーする必要があります。
- トリガーの詳細にAPIとシークレットキーを入力し、Authenticationエンドポイントのテキストをコピーします。ログインするとトークンが取得されます。
- このトークンをLaunch jobエンドポイントに入力し、ジョブを起動するためにアクセスします。
時間ベースのトリガー
CRONトリガーを使用して、アクションまたはワークフローを事前に定義された時間間隔で実行するようにスケジュールできます。
Complete modeを使用して視覚的に構成を設定するか、Advanced modeでカスタムCRON式を使用できます。Advanced modeの構成はCRON構文に従います(詳細についてはこちらを参照してください)。
CRONトリガーを非アクティブ化してスケジュール実行を一時停止したり、スケジュールを再開したいときに再度アクティブ化したりできます。トリガー構成は失われません。
リソース
実行モード
Preferencesページには2つの実行モードが利用可能です:
- Serverless:必要に応じてコンピューティングリソースを展開します。
- Always-up:ジョブを迅速に実行するために常に実行されている専用インスタンスです。
Serverless
デフォルトでは、プラットフォーム上で実行するすべてのジョブはServerlessモードで実行されます。ジョブ実行を開始すると実行環境が展開され、その実行が完了すると展開が解除されます。
以下の項目が請求されます:
- タスクを実行するために使用されたコンピューティングリソース。
Serverlessモードでは、タスク実行中のみ実行環境がアクティブになります。タスクが完了すると、自動的に終了します。
Always-up
この機能は現在アルファ版リリースです。不安定になる可能性があります。
Always-upモードを有効にすると、専用のコンピューティング環境がアクション/ワークフロー/環境ごとに展開されます。Serverlessモードに戻すまで展開された状態が維持され、ジョブを実行するたびに展開を待つ必要がなくなります。
以下の項目が請求されます:
- 実行環境がアクティブだった時間帯に使用されたコンピューティングリソース(ジョブを実行するのに要した時間を含みます)。
Always-upモードでは、ジョブ実行が完了しても実行環境は自動的に展開解除されません。実行モードをServerlessに戻して終了させる必要があります。
Always-upモードで設定されたアクション/ワークフローの構成を編集すると、完全なブルーグリーン方式で更新されます。展開は、現在の保留中のタスクが完了するまで待機し、更新のために優雅にシャットダウンします。
環境でAlways-up実行モードを使用することをお勧めします。個々のアクション/ワークフローではなく、複数のワークロードでリソースを再利用するためです。
リソースのスケーリング
コンピューティングパワーをスケーリングする方法については、以下の専用記事で詳しく説明しています。
並列化オプション
セグメンテーション
このパラメータはカスタムPySparkアクションでは利用できません。
セグメンテーションオプションを使用すると、特定の基準に基づいてジョブを複数のタスクに分割する方法を定義できます。分割後、ジョブのワークロードは複数のワーカーに並列に分配できます(並列コンピューティング)。
最も一般的な使用例として、セグメンテーションを使用して以下の操作を実行できます:
- 列に特定の処理フィルターを適用する;
- 複数のワーカーで並列に処理を並列化することで、アクション実行時間を短縮し、データソースコネクタのワークロードを軽減する;
- 例えば、毎日計画されたワークフローの場合、ロードアクションを実行するたびに歴史的なデータをすべて取り込むのではなく、前日のデータのみにフィルターを適用する。
並列実行
このオプションを使用すると、アクション/ワークフローを同時に複数回実行できます(既に実行中の場合に実行がトリガーされるとエラーが返される代わりに)。
Serverlessモードでは、各並列実行がジョブの割り当てられたコンピューティングパワーを使用します。 Always-upモードでは、複数の並列実行が利用可能なワーカーに並列に分配されます(並列コンピューティング)。
複数の並列実行はAPIを介してのみトリガーでき、GUIではありません。
開発言語
これはワークフロー(およびカスタムアクションの構成ページ)でのみ利用可能です。
このオプションを使用すると、ワークフロー全体で使用する言語バージョンを指定できます。デフォルトでは、ワークフローは含まれているすべてのバージョンのうち最新のものを使用します。
さらに詳しく
当社のソリューションを実装するためのトレーニングや技術サポートが必要な場合は、営業担当者にお問い合わせください、またはこのリンクをクリックして見積もりを取得し、プロフェッショナルサービスの専門家にプロジェクトのカスタム分析を依頼してください。
Data Platformを構築するチームと直接質問をし、フィードバックを提供し、相互作用するには、専用のDiscordチャネルをご利用ください。
OVHcloudサービスについてサポートが必要な場合は、ヘルプセンターでリクエストを作成してください。
ユーザーコミュニティに参加してください。

