ジョブ
説明
テーブル関数で、一時的なタスクテーブルを生成し、特定のタスクタイプのジョブ情報を表示できます。
構文
JOBS(
"type"="<type>"
)
Parameters
| Parameter | Description |
|---|---|
<type> | ジョブのタイプ: insert: Insert into typeジョブ。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 リフレッシュジョブ 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 | |
+----------------+----------------+---------+-------------+--------------------------------------------+---------+--------------------------------------------------------------+---------------------+------------------+-----------------+-------------------+---------+