ウェアハウスを更新する¶
ウェアハウスの更新は、 一時停止コネクタ ステップの直後に呼び出すことができるステップです。このステップでは、 Connector Configuration
中に設定され、 SDK 制御のタスクを実行するために使用されるウェアハウスをユーザーが更新できるようにします。カスタムロジックで上書きする場合は、このプロシージャを置き換えて、カスタムJavaハンドラーを指定する必要があります。
このプロシージャを呼び出すには、ユーザーに ADMIN
アプリケーションロールが割り当てられている必要があります。
ウェアハウスの更新ステップは、内部的にいくつかのフェーズで構成されています。一部は完全にカスタマイズ可能で、デフォルトでは何も実行されません。フェーズは次のとおりです。
ステータスの検証
入力の検証
内部コールバック
SDK コールバック
設定の更新
要件¶
ウェアハウスの構成では、ネイティブアプリのインストール時に少なくとも次のSQLファイルが実行される必要があります。
core.sql
configuration/app_config.sql
configuration/connector_configuration.sql
configuration/update_warehouse.sql
ステータスの検証¶
ウェアハウスの更新を実行するには、コネクタの内部ステータスが PAUSED
である必要があります。
この検証は、 UpdateWarehouseHandlerBuilder
を使用しても、ストアドプロシージャを上書きしても上書きできません。ただし、この種の検証を実行しないカスタムハンドラーを実装することはできます。
入力の検証¶
入力には、新しいウェアハウスを含む String
が必要です。提供されたウェアハウスは、 UpdateWarehouseInputValidator
の実装を使用して検証されます。デフォルトでは、次の検証が実行され、必要な基準が満たされない場合はそれぞれ例外がスローされます。
指定されたウェアハウスが有効なSnowflake識別子であるかどうかを検証します。
新しいウェアハウスがすでに構成されているものと異なるかどうかを検証します。
アプリケーションインスタンスが新しいウェアハウスにアクセスできるかどうかを検証します(
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"
}
エラーの応答¶
エラーが発生した場合、応答の形式は次のようになります。
{
"response_code": "<ERROR_CODE>",
"message": "<error message>"
}
考えられるエラーコードは次のとおりです。
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
プロシージャから受信したカスタムエラーコード - コネクタ開発者によって定義されます