ウェアハウスを更新する

ウェアハウスの更新は、 一時停止コネクタ ステップの直後に呼び出すことができるステップです。このステップでは、 Connector Configuration 中に設定され、 SDK 制御のタスクを実行するために使用されるウェアハウスをユーザーが更新できるようにします。カスタムロジックで上書きする場合は、このプロシージャを置き換えて、カスタムJavaハンドラーを指定する必要があります。

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

ウェアハウスの更新ステップは、内部的にいくつかのフェーズで構成されています。一部は完全にカスタマイズ可能で、デフォルトでは何も実行されません。フェーズは次のとおりです。

  1. ステータスの検証

  2. 入力の検証

  3. 内部コールバック

  4. SDK コールバック

  5. 設定の更新

要件

ウェアハウスの構成では、ネイティブアプリのインストール時に少なくとも次のSQLファイルが実行される必要があります。

  • core.sql

  • configuration/app_config.sql

  • configuration/connector_configuration.sql

  • configuration/update_warehouse.sql

ステータスの検証

ウェアハウスの更新を実行するには、コネクタの内部ステータスが PAUSED である必要があります。

この検証は、 UpdateWarehouseHandlerBuilder を使用しても、ストアドプロシージャを上書きしても上書きできません。ただし、この種の検証を実行しないカスタムハンドラーを実装することはできます。

入力の検証

入力には、新しいウェアハウスを含む String が必要です。提供されたウェアハウスは、 UpdateWarehouseInputValidator の実装を使用して検証されます。デフォルトでは、次の検証が実行され、必要な基準が満たされない場合はそれぞれ例外がスローされます。

  1. 指定されたウェアハウスが有効なSnowflake識別子であるかどうかを検証します。

  2. 新しいウェアハウスがすでに構成されているものと異なるかどうかを検証します。

  3. アプリケーションインスタンスが新しいウェアハウスにアクセスできるかどうかを検証します(SHOW WAREHOUSES クエリを使用)。

この入力検証ステップは、 UpdateWarehouseHandlerBuilder を使用して新しいカスタムハンドラーインスタンスを構築することでのみカスタマイズできます。

内部コールバック

内部コールバックもカスタマイズ可能なステップです。デフォルトでは、 PUBLIC.UPDATE_WAREHOUSE_INTERNAL プロシージャを呼び出します。このプロシージャのデフォルト実装では、 'response_code': 'OK' を返します。このステップは、アプリケーション開発者が作成したタスクを変更するなど、ウェアハウス更新プロセスのカスタムロジックを提供するために使用できます。コールバックは、SQLスクリプトを通じて上書きすることも、 UpdateWarehouseHandlerBuilder を使用して UpdateWarehouseCallback インターフェイスのカスタム実装を提供することもできます。

SDK コールバック

SDK コールバックは内部コールバックフェーズと似ています。その目的は、タスクリアクターによって作成されたタスクなど、 SDK 制御コンポーネントを更新することです。

この検証は、 UpdateWarehouseHandlerBuilder を使用しても、ストアドプロシージャを上書きしても上書きできません。この種の検証を行わないカスタムハンドラーを実装することもできますが、推奨していません。

設定の更新

検証とコールバックが正常に完了すると、新しいウェアハウスが内部の APP_CONFIG テーブルに保存されます。これを担当するサービスは、提供されたウェアハウスを connector_configuration キーに保存し、以前に構成された値を置き換えます。

構成の表示

ADMIN および VIEWER アプリケーションロールで使用できる PUBLIC.CONNECTOR_CONFIGURATION ビューがあり、内部 APP_CONFIG テーブルから現在の構成を返します。

応答

正常な応答

プロシージャが正常に終了すると、 OK 応答コードを含む応答が返されます。

{
  "response_code": "OK"
}
Copy

エラーの応答

エラーが発生した場合、応答の形式は次のようになります。

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

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

  • INVALID_CONNECTOR_STATUS - コネクタのステータスが無効です。期待されるステータス: [PAUSED]

  • INTERNAL_ERROR - 内部で問題が発生しました。メッセージには説明が必要です

  • PROCEDURE_NOT_FOUND - 呼び出されたプロシージャが存在しません

  • UNKNOWN_SQL_ERROR - このエラーは、内部プロシージャを呼び出すときに予期しない事態が発生したときに発生します

  • INVALID_RESPONSE - このエラーは、内部プロシージャから受信した応答に response_code が含まれていない場合、またはエラーの応答に message が含まれていないが、 response_code が含まれている場合に発生します。

  • UNKNOWN_ERROR - 予期しない問題が発生したことを意味します(スローされた例外のメッセージが転送されます)

  • EMPTY_IDENTIFIER - 提供された識別子が NULL 値または空の文字列です

  • INVALID_IDENTIFIER - 提供されたウェアハウス識別子が有効ではありません

  • WAREHOUSE_ALREADY_USED - 提供されたウェアハウスはすでにアプリケーションで使用されています

  • INACCESSIBLE_WAREHOUSE - 提供されたウェアハウスはアプリケーションインスタンスによるアクセスには使用できません

  • UPDATE_WAREHOUSE_INTERNAL プロシージャから受信したカスタムエラーコード - コネクタ開発者によって定義されます