リソースの作成¶
リソースの作成は、ソース・システムからのデータインジェストを定義し、スケジュールするために必要です。 PUBLIC.CREATE_RESOURCE
プロシージャは、 UI またはワークシートから新しいリソースを作成するためのエントリ・ポイントです。
このプロシージャを呼び出すには、ユーザーに ADMIN
アプリケーションロールが割り当てられている必要があります。
リソース作成プロセスはいくつかのフェーズから構成されています。そのうちのいくつかはカスタマイズ可能ですが、妥当なデフォルト値が含まれています。フェーズは以下の通りです。
初期検証
カスタム検証
リソース作成前のカスタム ロジック
リソースの取り込み定義とインジェストプロセスの作成
リソース作成後のカスタム・ロジック
初期検証¶
初期検証は、リソース作成プロセスの一番最初に実行され、チェックされます。
与えられた入力データが有効なリソース取り込み定義オブジェクトを表しているかどうか
与えられた
id
とresourceId
を持つリソースが存在しないかどうか
カスタム検証¶
カスタム検証は初期検証の後に実行され、カスタマイズされたコネクタ固有のロジックをサポートするように設計されています。例えば、あるリソースがソースシステムに存在するかどうかを検証するために使用することができます。
デフォルトでは、 PUBLIC.CREATE_RESOURCE_VALIDATE(resource VARIANT)
を呼び出し、 'response_code': 'OK'
を返します。SQL スクリプトを通じて上書きすることも、 CreateResourceHandlerBuilder
を使用して CreateResourceValidator
インターフェイスのカスタム実装を提供することもできます。
カスタムバリデーションがエラーを返した場合、以下のステップは実行されず、 CREATE_RESOURCE
プロシージャからエラーレスポンスが返されます。
リソース作成前のカスタム ロジック¶
リソースが作成されスケジューリングされる前に、カスタムロジックを実装することができます。例えば、インジェスト・データが保存される新しいデスティネーション・テーブルを作成するために使用することができます。
デフォルトでは、 PUBLIC.PRE_CREATE_RESOURCE(resource VARIANT)
を呼び出し、 'response_code': 'OK'
を返します。SQL スクリプトを通じて上書きすることも、 CreateResourceHandlerBuilder
を使用して PreCreateResourceCallback
インターフェイスのカスタム実装を提供することもできます。
カスタムロジックがエラーを返した場合、後続のステップは実行されず、 CREATE_RESOURCE
プロシージャからエラー応答が返されます。
リソースの取り込み定義とインジェストプロセスの作成¶
このステップでは、 STATE.RESOURCE_INGESTION_DEFINITION
テーブルに新しい記録が追加されます。さらに、リソースが初期状態で有効になっている(enabled
パラメーターが true
に等しい)場合、提供されたインジェスト構成ごとに新しいインジェストプロセスが追加されます。インジェストプロセスは、 SCHEDULED
ステータスで作成されます。これは、インジェストが後で開始されることを意味します。 enabled
フラグが false
に設定されている場合、インジェストプロセスは作成されず、 ENABLE_RESOURCE
プロシージャを呼び出してインジェストを有効にする必要があります。
リソース作成後のカスタム・ロジック¶
カスタムロジックは、リソースが作成されスケジューリングされた後に指定できます。例えば、インジェスト・データが保存される新しいデスティネーション・テーブルを作成するために使用することができます。
デフォルトでは、 PUBLIC.POST_CREATE_RESOURCE(id VARCHAR)
を呼び出し、 'response_code': 'OK'
を返します。SQL スクリプトを通じて上書きすることも、 CreateResourceHandlerBuilder
を使用して PostCreateResourceCallback
インターフェイスのカスタム実装を提供することもできます。
カスタムロジックがエラーを返した場合、 CREATE_RESOURCE
プロシージャから所定のエラー応答が返されますが、リソース取り込み定義の作成とインジェストプロセスはロールバックされません。
応答¶
正常な応答¶
成功すると、このプロシージャは以下のような応答を返します。
{ "response_code": "OK", "id": "<new resource ingestion definition id>" }
レスポンスで返される id
は、リソース取り込み定義のidであり、その後リソースを有効化、無効化、または更新するために使用できます。
エラーの応答¶
エラーが発生すると、このプロシージャは以下のような応答を返します。
{ "response_code": "<ERROR_CODE>", "message": "<error message>" }
考えられるエラーコードは次のとおりです。
INVALID_INPUT
- 指定されたプロシージャの引数が無効で、有効なリソース・オブジェクトを作成できないか、指定された ID を持つリソースが既に存在します。CREATE_RESOURCE_ERROR
- 新しいリソース取り込み定義を作成するとき、またはインジェストプロセスを作成するときに、予期しないことが起こりました。すべての変更はロールバックされます。