OSS オブジェクト検査ノードは、指定されたオブジェクトを定期的にチェックします。オブジェクトが検出された場合、ノードはその下流タスクをトリガーします。オブジェクトが検出されない場合、ノードは停止条件が満たされるまで、設定された間隔でチェックを続行します。このノードは通常、DataWorks のスケジューリングシステムと外部のスケジューリングシステム間のシグナリングメカニズムとして使用されます。本トピックでは、OSS オブジェクト検査ノードの使用方法とその主な注意事項について説明します。
概要
OSS オブジェクト検査ノードの一般的なユースケースは、外部データへの依存関係の管理です。たとえば、DataWorks タスクが外部データベースにアクセスする必要があるものの、そのデータベースにデータを書き込むタスクは外部のスケジューリングシステムによって管理されている場合があります。このシナリオでは、DataWorks は書き込み操作がいつ完了するかを判断できません。書き込み操作が終了する前に DataWorks タスクがデータを読み取ると、不完全なデータを読み取ったり、データの読み取りに失敗したりする可能性があります。これを解決するために、書き込みタスクが完了した後、外部システムが指定されたファイルシステムに .done ファイルなどのマーカーファイルを作成するように設定できます。その後、DataWorks で OSS オブジェクト検査ノードを設定して、この .done ファイルを定期的にチェックします。ノードがファイルを検出すると、データの準備ができたことを確認し、データベースにアクセスする必要がある下流タスクをトリガーします。
-
外部スケジューリングシステムで、任意のファイルシステムにマーカーファイルを生成するように設定できます。
-
本トピックでは、
.doneファイルを例として使用します。ビジネス要件に合わせて、マーカーファイルの名前と形式をカスタマイズできます。
-
外部のスケジューリングシステムは、外部データベースのデータがアクセス可能になったこと (たとえば、書き込みジョブの完了) を検出します。その後、指定されたファイルシステムに
XXXX2024-09-29.doneなどのマーカーファイルを作成します。本トピックでは.doneサフィックスを持つファイルを例として使用しますが、ビジネス要件に合わせてカスタムファイル形式を定義できます。 -
OSS データソースは、ファイルシステムからマーカーファイルを読み取ります。
-
OSS オブジェクト検査ノードは、設定された検出ポリシーに基づいて、OSS データソースのマーカーファイルを定期的にチェックします。
-
ノードがマーカーファイルを検出した場合、これはデータがアクセス可能であることを示します。その後、OSS オブジェクト検査ノードは、その下流ノードに成功シグナルを送信します。
-
マーカーファイルが検出されない場合、これは外部データベースのデータがまだ準備できていないことを示します。OSS オブジェクト検査ノードは、その下流ノードにシグナルを送信しません。リトライの上限に達するまで、設定されたポリシーに基づいてチェックを続行します。
-
-
下流ノードは、OSS オブジェクト検査ノードからの結果を使用して、タスクを開始するかどうかを決定します。
-
OSS オブジェクト検査ノードが成功を報告した場合、下流ノードはタスクを開始して外部データベースからデータにアクセスします。
-
OSS オブジェクト検査ノードがファイルの検出に失敗してタイムアウトした場合、下流ノードはタスクを開始しません。
-
-
下流ノードは、外部データベースのデータにアクセスします。
外部データベースには、Oracle、MySQL、SQL Server、およびその他のデータベースまたはストレージサービスが含まれますが、これらに限定されません。
前提条件
使用する RAM ユーザーがワークスペースに追加されていること。
RAM ユーザーを使用してタスクを開発する場合、RAM ユーザーをメンバーとしてワークスペースに追加し、[開発] ロールまたは [ワークスペース管理者] ロールを RAM ユーザーに割り当てる必要があります。 ワークスペース管理者ロールには、必要以上の権限があります。 ワークスペース管理者ロールを割り当てる場合は注意してください。 メンバーを追加してロールを割り当てる方法の詳細については、「ワークスペースメンバーを追加してロールを割り当てる」をご参照ください。
-
サーバーレス リソースグループがワークスペースに関連付けられていること。 詳細については、「サーバーレス リソースグループを使用する」ディレクトリのトピックをご参照ください。
-
OSS オブジェクト検査ノードが作成されていること。詳細については、「スケジューリングワークフローノードの作成」をご参照ください。
注意事項
-
タスクの実行時、ノードは STS モード認可 を使用して OSS オブジェクトをチェックします。必要な OSS バケットの権限が設定されていることを確認してください。
-
開発環境と本番環境では、ノードは ワークスペース管理者の職責 に記載されている権限を持つアクセスアイデンティティを使用します。OSS バケットの権限が正しく設定されていることを確認してください。
ステップ 1:ノードの設定
OSS オブジェクト検査ノードを作成したら、ノードを開き、画面の指示に従ってプロパティを設定します。
-
オブジェクトと検出ポリシーを設定します。
-
[OSS オブジェクト]:チェックする OSS オブジェクトのパスを入力します。${bizdate} や ${cyctime} などのスケジューリングパラメーターを使用できます。
-
[タイムアウト時間]:オブジェクトが検出されるまでの最大待機時間。この期間内にオブジェクトが検出されない場合、ノードはチェックを停止し、タスクは失敗します。
-
-
ノードを設定した後、そのスケジューリングプロパティを設定します。詳細については、「ノードのスケジューリングプロパティの設定」をご参照ください。
ステップ 2:ノードのデプロイと運用
-
スケジューリングプロパティを設定した後、ノードを本番環境にデプロイします。詳細については、「ノードとワークフローのデプロイ」をご参照ください。
-
ノードをデプロイすると、そのスケジューリングプロパティに基づいて定期的に実行されます。デプロイされたタスクは、 タブで表示および管理できます。詳細については、「運用センターの概要」をご参照ください。