ジョブ
説明
テーブル関数で、一時的なタスクテーブルを生成し、特定のタスクタイプのジョブ情報を表示できます。
構文
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 このジョブによって維持されるマテリアライズドビューの ID。 MvName このジョブによって維持されるマテリアライズドビューの名前。 MvDatabaseId マテリアライズドビューを含むデータベースの ID。 MvDatabaseName マテリアライズドビューを含むデータベースの名前。 ExecuteType ジョブ実行タイプ。MV ジョブの場合、可能な値は MANUALとRECURRINGです。MANUALは refresh タスクが手動、コミット、または内部イベントによってトリガーされることを意味します。RECURRINGは refresh タスクが定期的にスケジュールされることを意味します。RecurringStrategy ExecuteTypeから派生したスケジューリング記述。MANUAL TRIGGERはジョブがタイマーで実行されないことを意味します。EVERY ... STARTS ... [ENDS ...]はジョブが定期的に実行されることを意味します。Status ジョブステータス。可能な値: PENDINGはジョブがスケジューリングを待機していることを意味します;RUNNINGはジョブがタスクを生成できることを意味します;PAUSEDはジョブが一時停止されており再開可能であることを意味します;STOPPEDはジョブが停止されており再開できないことを意味します;FINISHEDはジョブが完了したことを意味します。CreateTime ジョブが作成された時刻。
MV ジョブ enum フィールド
以下の enum フィールドは、マテリアライズドビューの refresh ジョブをチェックする際によく使用されます:
ExecuteType: ジョブが refresh タスクを作成する方法。MANUAL: ジョブは独自のタイマーで実行されません。タスクは refresh が手動、コミット、またはシステムによってトリガーされた場合のみ作成されます。RECURRING: ジョブはスケジュールで実行され、定期的に refresh タスクを作成します。
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: ジョブはアクティブで refresh タスクを作成できます。PAUSED: ジョブは一時停止されています。再開されるまで新しい refresh タスクを作成しません。STOPPED: ジョブは停止されており、再開できません。FINISHED: ジョブは完了しました。これは長時間実行される MV refresh ジョブでは一般的ではありませんが、汎用ジョブフレームワークで表示されることがあります。
マテリアライズドビューの場合、1つのマテリアライズドビューに1つの refresh ジョブがあり、1つの refresh ジョブは多くの refresh タスクを作成できます。jobs("type"="mv").Name を使用して、ジョブを mv_infos("database"="...").JobName および tasks("type"="mv").JobName に接続します。
Examples
マテリアライズドビューの refresh ジョブを表示します。
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リフレッシュジョブIDです。tasks("type"="mv")のJobIdと同じ値です。NameはMVリフレッシュジョブ名です。mv_infos("database"="test")およびtasks("type"="mv")のJobNameと同じ値です。MvIdとMvNameは、このジョブによって維持されるmaterialized viewを識別します。MvDatabaseIdとMvDatabaseNameは、materialized viewを含むデータベースを識別します。ExecuteTypeはMANUALなので、このジョブは独自のタイマーによって実行されません。materialized viewが手動でリフレッシュされたり、コミット時にリフレッシュされたり、システムによってトリガーされた時にリフレッシュタスクが作成されます。RecurringStrategyはMANUAL TRIGGERで、ExecuteType = MANUALと一致します。スケジュールされたmaterialized viewの場合、このフィールドはEVERY ... STARTS ...として表示されます。StatusはRUNNINGなので、ジョブはリフレッシュタスクを生成できます。PAUSEDの場合は、新しいタスクを期待する前にmaterialized viewジョブを再開してください。CreateTimeは、このMVリフレッシュジョブが作成された時刻です。
このジョブによって生成されたタスクを表示するには、ジョブ名を使用します:
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 | |
+----------------+----------------+---------+-------------+--------------------------------------------+---------+--------------------------------------------------------------+---------------------+------------------+-----------------+-------------------+---------+