メインコンテンツまでスキップ
バージョン: 3.2

SUBMIT TASK

説明

ETL ステートメントを非同期タスクとして送信します。この機能は StarRocks v2.5 からサポートされています。

StarRocks v3.0 は CREATE TABLE AS SELECT および INSERT の非同期タスクの送信をサポートしています。

非同期タスクを削除するには、DROP TASK を使用します。

構文

SUBMIT TASK [task_name] AS <etl_statement>

パラメータ

パラメータ説明
task_nameタスク名。
etl_statement非同期タスクとして送信したい ETL ステートメント。StarRocks は現在、CREATE TABLE AS SELECT および INSERT の非同期タスクの送信をサポートしています。

使用上の注意

このステートメントは、ETL ステートメントを実行するタスクを保存するテンプレートである Task を作成します。Task の情報は、メタデータビュー Information Schematasks をクエリすることで確認できます。

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 の状態は、メタデータビュー Information Schematask_runs をクエリすることで確認できます。

SELECT * FROM INFORMATION_SCHEMA.task_runs;
SELECT * FROM information_schema.task_runs WHERE task_name = '<task_name>';

FE 設定項目による設定

次の FE 設定項目を使用して非同期 ETL タスクを設定できます:

パラメータデフォルト値説明
task_ttl_second86400Task が有効な期間。単位:秒。有効期間を超えたタスクは削除されます。ここで、Task は一度だけ実行される非周期的なタスクを示します。
task_check_interval_second3600無効なタスクを削除する時間間隔。単位:秒。
task_runs_ttl_second86400TaskRun が有効な期間。単位:秒。有効期間を超えた TaskRun は自動的に削除されます。さらに、FAILED および SUCCESS 状態の TaskRun も自動的に削除されます。TaskRun は周期的なタスクの個々の実行を示します。
task_runs_concurrency4並行して実行できる TaskRun の最大数。
task_runs_queue_length500実行待ちの TaskRun の最大数。この数がデフォルト値を超えると、受信タスクは一時停止されます。
task_runs_max_history_number10000保持する TaskRun レコードの最大数。

例 1: CREATE TABLE tbl1 AS SELECT * FROM src_tbl の非同期タスクを送信し、タスク名を etl0 と指定します:

SUBMIT TASK etl0 AS CREATE TABLE tbl1 AS SELECT * FROM src_tbl;

例 2: INSERT INTO tbl2 SELECT * FROM src_tbl の非同期タスクを送信し、タスク名を etl1 と指定します:

SUBMIT TASK etl1 AS INSERT INTO tbl2 SELECT * FROM src_tbl;

例 3: INSERT OVERWRITE tbl3 SELECT * FROM src_tbl の非同期タスクを送信します:

SUBMIT TASK AS INSERT OVERWRITE tbl3 SELECT * FROM src_tbl;

例 4: INSERT OVERWRITE insert_wiki_edit SELECT * FROM source_wiki_edit の非同期タスクをタスク名を指定せずに送信し、ヒントを使用してクエリのタイムアウトを 100000 秒に延長します:

SUBMIT /*+set_var(query_timeout=100000)*/ TASK AS
INSERT OVERWRITE insert_wiki_edit
SELECT * FROM source_wiki_edit;