ジョブ
説明
テーブル関数で、一時的なタスクテーブルを生成し、特定のタスクタイプのジョブ情報を表示できます。
構文
JOBS(
"type"="<type>"
)
Parameters
| Parameter | Description |
|---|---|
<type> | ジョブのタイプ: insert: Insert into タイプのジョブ。 mv: Materialized view ジョブ。 |
Return Value
このテーブル関数は、0行以上の行を返します。この関数自体はNULLを返しません。対応するメタデータが利用できない場合、個々のフィールドが空またはNULLになることがあります。
-
jobs("type"="insert")insert タイプのジョブの戻り値Parameter Description Id ジョブID Name ジョブ名 Definer ジョブ定義者 ExecuteType 実行タイプ RecurringStrategy 繰り返し戦略 Status ジョブステータス ExecuteSql 実行SQL CreateTime ジョブ作成時刻 SucceedTaskCount 成功したタスクの数 FailedTaskCount 失敗したタスクの数 CanceledTaskCount キャンセルされたタスクの数 Comment ジョブのコメント -
jobs("type"="mv")MVタイプのジョブの戻り値Parameter Description Id ジョブID。MVジョブの場合、 tasks("type"="mv").JobIdに対応します。Name ジョブ名。MVジョブの場合、 mv_infos("database"="...").JobNameおよびtasks("type"="mv").JobNameに対応します。MvId このジョブによって保守されるmaterialized viewのID。 MvName このジョブによって保守されるmaterialized viewの名前。 MvDatabaseId materialized viewを含むデータベースのID。 MvDatabaseName materialized viewを含むデータベースの名前。 ExecuteType ジョブの実行タイプ。MVジョブの場合、可能な値は MANUALとRECURRINGです。MANUALは、リフレッシュタスクが手動、コミット、または内部イベントによってトリガーされることを意味します。RECURRINGは、リフレッシュタスクが定期的にスケジュールされることを意味します。RecurringStrategy ExecuteTypeから派生したスケジュール記述。MANUAL TRIGGERは、ジョブがタイマーで実行されないことを意味します。EVERY ... STARTS ... [ENDS ...]は、ジョブが定期的に実行されることを意味します。Status ジョブステータス。可能な値: PENDINGはジョブがスケジューリングを待機中であることを意味します;RUNNINGはジョブがタスクを生成できることを意味します;PAUSEDはジョブが一時停止されており、再開可能であることを意味します;STOPPEDはジョブが停止されており、再開できないことを意味します;FINISHEDはジョブが完了したことを意味します。CreateTime ジョブが作成された時刻。
MVジョブのenum フィールド
以下のenum フィールドは、materialized viewのリフレッシュジョブをチェックする際によく使用されます:
ExecuteType: ジョブがリフレッシュタスクを作成する方法。MANUAL: ジョブは独自のタイマーで実行されません。タスクは、手動、コミット、またはシステムによってリフレッシュがトリガーされた場合にのみ作成されます。RECURRING: ジョブはスケジュールで実行され、定期的にリフレッシュタスクを作成します。
RecurringStrategy:ExecuteTypeから生成された人間が読める形式のスケジューリングルール。MANUAL TRIGGER: ジョブは定期的にスケジュールされません。これはExecuteTypeがMANUALの場合の通常の値です。EVERY <interval> <unit> STARTS <time> [ENDS <time>]: ジョブは定期的にスケジュールされます。例えば、EVERY 10 MINUTE STARTS 2025-01-17 14:42:53。
Status: ジョブ自体の現在の状態。PENDING: ジョブはスケジュールされることを待機中です。RUNNING: ジョブはアクティブで、リフレッシュタスクを作成できます。PAUSED: ジョブは一時停止されています。再開されるまで新しいリフレッシュタスクは作成されません。STOPPED: ジョブは停止されており、再開できません。FINISHED: ジョブは完了しました。これは長時間実行されるMVリフレッシュジョブでは珍しいですが、汎用ジョブフレームワークでは表示される可能性があります。
materialized viewの場合、1つのmaterialized viewに対して1つのリフレッシュジョブがあり、1つのリフレッシュジョブは多くのリフレッシュタスクを作成できます。jobs("type"="mv").Nameを使用して、ジョブをmv_infos("database"="...").JobNameとtasks("type"="mv").JobNameに接続します。
Examples
materialized viewのリフレッシュジョブを表示する。
select *
from jobs("type"="mv")
where MvDatabaseName = "test" and MvName = "mv1"\G
*************************** 1. row ***************************
Id: 19508
Name: inner_mtmv_19494
MvId: 19494
MvName: mv1
MvDatabaseId: 16016
MvDatabaseName: test
ExecuteType: MANUAL
RecurringStrategy: MANUAL TRIGGER
Status: RUNNING
CreateTime: 2025-01-07 22:13:31
この結果では:
IdはMV refresh jobのIDです。これはtasks("type"="mv")のJobIdと同じ値です。NameはMV refresh jobの名前です。これはmv_infos("database"="test")とtasks("type"="mv")のJobNameと同じ値です。MvIdとMvNameは、このjobによってメンテナンスされるmaterialized viewを識別します。MvDatabaseIdとMvDatabaseNameは、materialized viewを含むdatabaseを識別します。ExecuteTypeはMANUALなので、このjobは独自のtimerで実行されません。materialized viewが手動でrefreshされた時、commitでrefreshされた時、またはsystemによってtriggerされた時にrefresh taskが作成されます。RecurringStrategyはMANUAL TRIGGERで、これはExecuteType = MANUALと一致します。scheduledされたmaterialized viewの場合、このfieldはEVERY ... STARTS ...として表示されます。StatusはRUNNINGなので、jobはrefresh taskを生成できます。PAUSEDの場合、新しいtaskを期待する前にmaterialized view jobを再開してください。CreateTimeは、このMV refresh jobが作成された時刻です。
このjobによって生成されたtaskを表示するには、job名を使用します:
select TaskId, JobName, MvName, Status, CreateTime, FinishTime
from tasks("type"="mv")
where JobName = "inner_mtmv_19494"
order by CreateTime desc;
+-----------------+------------------+--------+---------+---------------------+---------------------+
| TaskId | JobName | MvName | Status | CreateTime | FinishTime |
+-----------------+------------------+--------+---------+---------------------+---------------------+
| 437156301250803 | inner_mtmv_19494 | mv1 | SUCCESS | 2025-01-07 22:13:48 | 2025-01-07 22:17:45 |
+-----------------+------------------+--------+---------+---------------------+---------------------+
すべての挿入ジョブを表示
select * from jobs("type"="insert");
+----------------+----------------+---------+-------------+--------------------------------------------+---------+--------------------------------------------------------------+---------------------+------------------+-----------------+-------------------+---------+
| Id | Name | Definer | ExecuteType | RecurringStrategy | Status | ExecuteSql | CreateTime | SucceedTaskCount | FailedTaskCount | CanceledTaskCount | Comment |
+----------------+----------------+---------+-------------+--------------------------------------------+---------+--------------------------------------------------------------+---------------------+------------------+-----------------+-------------------+---------+
| 78533940810334 | insert_tab_job | root | RECURRING | EVERY 10 MINUTE STARTS 2025-01-17 14:42:53 | RUNNING | INSERT INTO test.insert_tab SELECT * FROM test.example_table | 2025-01-17 14:32:53 | 0 | 0 | 0 | |
+----------------+----------------+---------+-------------+--------------------------------------------+---------+--------------------------------------------------------------+---------------------+------------------+-----------------+-------------------+---------+