タスクリアクター SQL リファレンス

データベースオブジェクトとプロシージャ

次のデータベースオブジェクトは、ファイル task_reactor.sql を通して作成されます。

TASK_REACTOR SCHEMA

コネクタ内のタスクリアクターの、データベースオブジェクトを含むバージョン管理されたスキーマ。

TASK_REACTOR_INSTANCES SCHEMA

コネクタ内のタスクリアクターの、インスタンスデータベースオブジェクトを含むバージョン管理されていないスキーマ。

TASK_REACTOR_INSTANCES.INSTANCE_REGISTRY

このテーブルは、アプリケーション実行中に既存のインスタンスを追跡および管理できるように、タスクリアクターインスタンスに関するデータを保存するために作成されます。テーブルは TASK_REACTOR_INSTANCES スキーマに作成されます。

  • instance_name VARCHAR

  • is_initialized BOOLEAN

  • is_active BOOLEAN

TASK_REACTOR.DISPATCHER(INSTANCE_SCHEMA_NAME VARCHAR)

このプロシージャは、Java DispatcherHandler.dispatchWorkItems を呼び出し、ワークアイテムをディスパッチできるようにします。

TASK_REACTOR.SET_WORKERS_NUMBER (WORKERS_NUMBER NUMBER, INSTANCE_SCHEMA_NAME VARCHAR)

このプロシージャはJava SetWorkersNumberHandler.setWorkersNumber を呼び出し、ワーカーの数を設定できるようにします。

TASK_REACTOR.CREATE_INSTANCE_OBJECTS

入力パラメーター:

  • INSTANCE_SCHEMA_NAME VARCHAR

  • WORKER_PROCEDURE_NAME VARCHAR

  • WORK_SELECTOR_TYPE VARCHAR

  • WORK_SELECTOR_NAME VARCHAR

  • EXPIRED_WORK_SELECTOR_NAME VARCHAR

プロシージャでは、正確な Task reactor フローに必要なすべてのインスタンスオブジェクトを作成し、まだ初期化されていないインスタンスオブジェクトを検証します。処理の最後に、新しいインスタンスレジストリの記録をテーブルに挿入します。

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

  • INSTANCE_NOT_FOUND - この名前のインスタンスは存在しません。

  • INSTANCE_ALREADY_INITIALIZED - この名前のインスタンスはすでに初期化されています。

  • DEFAULT_PROCEDURE_VALIDATION_EXCEPTION - プロシージャが見つかりません

  • SCHEMA_WITH_THE_SAME_NAME_ALREADY_EXISTS - 同じ名前のスキーマが既に存在します。

  • CREATING_TR_INSTANCE_EXCEPTION - タスクリアクターの新しいインスタンスの作成中に予期せぬ問題が発生しました。インスタンスは作成されていません。

TASK_REACTOR.INITIALIZE_INSTANCE

入力パラメーター:

  • INSTANCE_SCHEMA_NAME VARCHAR

  • WAREHOUSE_NAME VARCHAR

  • DT_SHOULD_BE_STARTED BOOLEAN

  • DT_TASK_SCHEDULE VARCHAR

  • DT_ALLOW_OVERLAPPING_EXECUTION BOOLEAN

  • DT_USER_TASK_TIMEOUT_MS VARCHAR

プロシージャは、同じデータベースインスタンス内のすべての初期化されていないインスタンスを起動します。これは、インスタンスが存在するかどうか、またはまだ初期化されていないかどうかをチェックし、ディスパッチャータスクを作成し、必要に応じてこのタスクを開始することから構成されます。

プロシージャは次のように正常に終了します。

{
    "response_code": "OK",
    "message": "Instance has been initialized successfully."
}
Copy

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

  • INSTANCE_NOT_FOUND - インスタンスは存在しません。

  • INSTANCE_ALREADY_INITIALIZED - この名前のインスタンスはすでに初期化されています。

TASK_REACTOR.PAUSE_INSTANCE

入力パラメーター:

  • INSTANCE_SCHEMA VARCHAR

プロシージャは、タスクリアクターの指定されたインスタンスを一時停止するプロセスを開始し、 OK の応答を返します。すべてのワーカータスクとディスパッチャータスクを非同期的に停止するジョブを開始します。ワーカータスクがすでにインジェスチョンを実行している場合、タスクはすぐには停止されませんが、インジェスチョンが完了した後にタスクは停止されます。

注釈

このプロシージャのロジックは、 一時停止コネクタ ですでに使用されているため、コネクタ全体を停止する作業の一部としてこのプロシージャを使用する必要はありません。

プロシージャは次のように正常に終了します。

{
    "response_code": "OK"
}
Copy

TASK_REACTOR.RESUME_INSTANCE

入力パラメーター:

  • INSTANCE_SCHEMA VARCHAR

プロシージャは、タスクリアクターの特定のインスタンスを再開するプロセスを開始し、 OK の応答を返します。ディスパッチャータスクを再開し、すでに作業が割り当てられているすべてのワーカータスクを非同期的に再開するジョブを開始します。

注釈

このプロシージャのロジックは、 再開コネクタ ですでに使用されているため、コネクタ全体を再開する作業の一部としてこのプロシージャを使用する必要はありません。

プロシージャは次のように正常に終了します。

{
    "response_code": "OK"
}
Copy

TASK_REACTOR.UPDATE_WAREHOUSE_INSTANCE

入力パラメーター:

  • WAREHOUSE_NAME VARCHAR

  • INSTANCE_SCHEMA VARCHAR

プロシージャは、タスクリアクターの特定のインスタンスのウェアハウスを変更するプロセスを開始します。ディスパッチャータスクのウェアハウスを変更した後、すべてのワーカータスクのウェアハウスを非同期に変更するジョブを開始します。

注釈

このプロシージャのロジックは、 ウェアハウス更新 ですでに使用されているため、コネクタ全体のウェアハウスの更新作業の一部としてこのプロシージャを使用する必要はありません。

プロシージャは次のように正常に終了します。

{
    "response_code": "OK"
}
Copy

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

  • INSTANCE_NOT_FOUND - 指定されたインスタンスは存在しません。

  • TASK_REACTOR_INSTANCE_IS_ACTIVE - このプロシージャを使用する前に、指定されたタスクリアクターインスタンスが一時停止されていません。

内部プロシージャ

以下のプロシージャはすべて、 task_reactor セットアップスクリプトの内部でのみ使用されるものであり、、外部では使用しないでください。

TASK_REACTOR.CREATE_INSTANCE_SCHEMA (INSTANCE_SCHEMA_NAME VARCHAR)

このプロシージャは、 instance_schema_name という名前の識別子を持つ新しいスキーマを作成し、スキーマを作成できなかった場合は新しい例外をスローします。

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

  • SCHEMA_WITH_THE_SAME_NAME_ALREADY_EXISTS - 同じ名前のスキーマが既に存在します。

TASK_REACTOR.VALIDATE_PROCEDURE_EXISTENCE

入力パラメーター:

  • PROCEDURE_NAME VARCHAR

  • PROCEDURE_TYPE VARCHAR

このプロシージャは、定義されたプロシージャが存在しないかどうかを検証し、新しい例外をスローします。

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

  • WORKER_PROCEDURE_NOT_FOUND_EXCEPTION - ワーカープロシージャが見つかりません。

  • WORK_SELECTOR_PROCEDURE_NOT_FOUND_EXCEPTION - ワークセレクタープロシージャが見つかりません。

  • DEFAULT_PROCEDURE_VALIDATION_EXCEPTION - プロシージャが見つかりません

TASK_REACTOR.CREATE_QUEUE

入力パラメーター:

  • INSTANCE_SCHEMA_NAME VARCHAR

  • TABLE_NAME VARCHAR

  • STREAM_NAME VARCHAR

Task Reactor のヘルパーメソッドは、 instance_schema_name.table_name という名前と次の列を持つキューテーブルを作成します。

  • ID STRING

  • RESOURCE_ID STRING

  • DISPATCHER_OPTIONS VARIANT

  • WORKER_PAYLOAD VARIANT

  • TIMESTAMP DATETIME

存在しない場合は、 instance_schema_name.stream_name という名前のストリームを作成します。

TASK_REACTOR.CREATE_WORKER_REGISTRY_SEQUENCE

入力パラメーター:

  • INSTANCE_SCHEMA_NAME VARCHAR

  • SEQUENCE_NAME VARCHAR

Task Reactor のヘルパーメソッド。 instance_schema_name.sequence_name シーケンス名を使用してワーカーレジストリのシーケンスを作成する機能を提供します。

TASK_REACTOR.CREATE_WORKER_REGISTRY

入力パラメーター:

  • INSTANCE_SCHEMA_NAME VARCHAR

  • TABLE_NAME VARCHAR

  • SEQUENCE_NAME VARCHAR

ワーカーレジストリの作成を提供する Task Reactor のヘルパーメソッドは、 instance_schema_name.table_name という名前のテーブルと列で構成されます。

  • デフォルトの instance_schema_name.sequence_name シーケンスを使用した WORKER_ID NUMBER

  • CREATED_AT DATETIME

  • UPDATED_AT DATETIME

  • STATUS STRING

TASK_REACTOR.CREATE_WORKER_STATUS_TABLE

入力パラメーター:

  • INSTANCE_SCHEMA_NAME VARCHAR

  • TABLE_NAME VARCHAR

Task Reactor のヘルパーメソッド。名前 instance_schema_name.table_name と列を使用したワーカーのステータステーブルの作成を提供します。

  • WORKER_ID NUMBER

  • TIMESTAMP DATETIME

  • STATUS STRING

TASK_REACTOR.CREATE_CONFIG_TABLE

入力パラメーター:

  • INSTANCE_SCHEMA_NAME VARCHAR

  • TABLE_NAME VARCHAR

  • WORKER_PROCEDURE_NAME VARCHAR

  • WORK_SELECTOR_TYPE VARCHAR

  • WORK_SELECTOR_NAME VARCHAR

  • EXPIRED_WORK_SELECTOR_NAME VARCHAR

  • IS_INSTANCE_REGISTERED BOOLEAN

Task Reactor のヘルパーメソッド。キーと値の列を持つ instance_schema_name.table_name という名前の構成テーブルを作成することを提案します。次に、次の値でまだ登録されていない場合は、構成データをテーブルに挿入します。

  • WORKER_PROCEDURE

  • WORK_SELECTOR_TYPE

  • WORK_SELECTOR

  • SCHEMA