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