SUBMIT TASK
説明
ETL ステートメントを非同期タスクとして送信します。
このステートメントを使用して以下を行うことができます:
- バックグラウンドで長時間実行されるタスクを実行する (v2.5 以降でサポート)
- 定期的にタスクをスケジュールする (v3.3 以降でサポート)
サポートされているステートメントには以下が含まれます:
- CREATE TABLE AS SELECT (v3.0 以降)
- INSERT (v3.0 以降)
- CACHE SELECT (v3.3 以降)
タスクの一覧は INFORMATION_SCHEMA.tasks
をクエリすることで確認でき、タスクの実行履歴は INFORMATION_SCHEMA.task_runs
をクエリすることで確認できます。詳細については、使用上の注意を参照してください。
非同期タスクを削除するには DROP TASK を使用できます。
構文
SUBMIT TASK <task_name>
[SCHEDULE [START(<schedule_start>)] EVERY(INTERVAL <schedule_interval>) ]
[PROPERTIES(<"key" = "value"[, ...]>)]
AS <etl_statement>
PROPERTIES
session.
プレフィックスを持 つセッション変数を追加することで、タスク実行時の接続コンテキスト設定を変更できます。
例えば、以下のステートメントは、クエリプロファイルを有効にし、クエリタイムアウトを増加させるセッションプロパティを持つ test_task
という名前のタスクを送信します:
SUBMIT TASK test_task
PROPERTIES (
"session.enable_profile" = "true",
"session.insert_timeout" = "10000"
)
AS insert into t2 select * from t1;
パラメータ
パラメータ | 必須 | 説明 |
---|---|---|
task_name | はい | タスクの名前です。 |
schedule_start | いいえ | スケジュールされたタスクの開始時間です。 |
schedule_interval | い いえ | スケジュールされたタスクが実行される間隔で、最小間隔は10秒です。 |
etl_statement | はい | 非同期タスクとして送信したい ETL ステートメントです。StarRocks は現在、CREATE TABLE AS SELECT と INSERT の非同期タスクの送信をサポートしています。 |
使用上の注意
このステートメントは、ETL ステートメントを実行するタスクを保存するテンプレートである Task を作成します。Task の情報は、メタデータビュー tasks
in Information Schema をクエリすることで確認できます。
SELECT * FROM INFORMATION_SCHEMA.tasks;
SELECT * FROM information_schema.tasks WHERE task_name = '<task_name>';
Task を実行すると、それに応じて TaskRun が生成されます。TaskRun は、ETL ステートメントを実行するタスクを示します。TaskRun には以下の状態があります:
PENDING
: タスクは実行待ちです。RUNNING
: タスクは実行中です。FAILED
: タスクは失敗しました。SUCCESS
: タスクは正常に実行されました。
TaskRun の状態は、メタデータビュー task_runs
in Information Schema をクエリすることで確認できます。
SELECT * FROM INFORMATION_SCHEMA.task_runs;
SELECT * FROM information_schema.task_runs WHERE task_name = '<task_name>';