リソースを更新する

リソースの更新は、指定されたリソースのインジェスチョン構成を再定義するために使用されます。 PUBLIC.UPDATE_RESOURCE プロシージャは、 UI またはワークシートからリソースを更新するためのエントリポイントです。

このプロシージャを呼び出すには、ユーザーに ADMIN アプリケーション・ロールが割り当てられている必要があります。

リソースの更新プロセスはいくつかのフェーズで構成されます。そのうちのいくつかはカスタマイズ可能ですが、妥当なデフォルト値が含まれています。フェーズは以下の通りです。

  1. 初期検証

  2. カスタム検証

  3. リソースが更新される前のカスタムロジック

  4. インジェスチョン構成の更新

  5. 削除されたインジェスチョン構成のインジェスチョン処理を終了します。

  6. 新しいインジェスチョン構成のためのインジェスチョン処理のスケジューリング

  7. リソースが更新されインジェスチョン処理が管理された後のカスタムロジック

初期検証

初期検証はリソース更新プロセスの一番最初に行われます。それは次を確認します。

  • 与えられた入力データが有効なリソース インジェスチョン構成オブジェクトを表しているかどうか

  • 与えられた idresourceId を持つリソースが存在するかどうか

カスタム検証

カスタム検証は、初期検証の直後に実行されます。これは、コネクター固有のロジックでカスタマイズされるように設計されたプロセスの一部です。

デフォルトでは、 PUBLIC.UPDATE_RESOURCE_VALIDATE(resource_ingestion_definition_id VARCHAR, ingestion_configurations VARIANT) を呼び出し、 'response_code': 'OK' を返します。SQL スクリプトを通じて上書きすることも、 UpdateResourceHandlerBuilder を使用して UpdateResourceValidator インターフェイスのカスタム実装を提供することもできます。

カスタム認証がエラーを返した場合、次のステップは実行されず、 UPDATE_RESOURCE プロシージャから所定のエラーレスポンスが返されます。

リソースが更新される前のカスタムロジック

カスタムロジックを定義し、リソースが更新され再スケジュールされる前に実行することができます。

デフォルトでは、 PUBLIC.PRE_UPDATE_RESOURCE(resource_ingestion_definition_id VARCHAR, ingestion_configurations VARIANT) を呼び出し、 'response_code': 'OK' を返します。SQL スクリプトを通じて上書きすることも、 UpdateResourceHandlerBuilder を使用して PreUpdateResourceCallback インターフェイスのカスタム実装を提供することもできます。

カスタムロジックがエラーを返した場合、次のステップは実行されず、 UPDATE_RESOURCE プロシージャから所定のエラー応答が返されます。

リソース インジェスチョン構成の更新

このステップで、新しいインジェスチョン構成が、指定された resource_ingestion_definition_id リソースの STATE.RESOURCE_INGESTION_DEFINITION テーブルに保存されます。

削除されたインジェスチョン構成のインジェスチョン処理を終了します。

このステップでは、リソースが有効になると(enabled パラメーターが true と等しくなると)、id が更新されたインジェスチョン構成のセットに含まれていないインジェスチョン構成を持つ、すべてのアクティブなインジェスチョン処理(SCHEDULED または IN_PROGRESS のステータスを持つ)が終了し、そのステータスは FINISHED に切り替えられます。

新しいインジェスチョン構成のためのインジェスチョン処理のスケジューリング

このステップでは、リソースが有効になると(enabled パラメーターが true と等しくなると)、指定されたリソースの以前のインジェスチョン構成状態には存在しなかった、更新されたインジェスチョン構成のために、新しいインジェスチョン処理が作成されます。

リソース更新後のカスタムロジック

カスタムロジックを実装し、リソース インジェスチョン構成が更新された後に実行することができます。

デフォルトでは、 PUBLIC.POST_UPDATE_RESOURCE(resource_ingestion_definition_id VARCHAR, ingestion_configurations VARIANT) を呼び出し、 'response_code': 'OK' を返します。SQL スクリプトを通じて上書きすることも、 UpdateResourceHandlerBuilder を使用して PostUpdateResourceCallback インターフェイスのカスタム実装を提供することもできます。

カスタムロジックがエラーを返した場合、 UPDATE_RESOURCE プロシージャから所定のエラーレスポンスが返されますが、リソース インジェスチョン定義とインジェスチョン処理の更新はロールバックされないので、必要に応じてカスタム実装で処理する必要があります。

応答

正常な応答

成功すると、このプロシージャは次のような結果を返します。

{
  "response_code": "OK",
  "message": "Resource successfully updated."
}
Copy

エラーの応答

エラー時には、以下のようなレスポンスが返されます。

{
  "response_code": "<ERROR_CODE>",
  "message": "<error message>"
}
Copy

考えられるエラーコードは次のとおりです。

  • INVALID_INPUT - 指定されたプロシージャの引数が無効で、リソースインジェスチョン構成を更新できないか、指定されたリソースが存在しません。

  • UPDATE_RESOURCE_ERROR - 新しいインジェスチョン構成でリソース インジェスチョン定義を更新するとき、またはインジェスチョン処理を管理するときに、予期しないことが起こりました。すべての変更はロールバックされます。