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

ジョブ

説明

一時的なタスクテーブルを生成するテーブル関数で、特定のタスクタイプのジョブ情報を表示できます。

構文

JOBS(
"type"="<type>"
)

パラメータ

パラメータ説明
<type>ジョブのタイプ:
insert: Insert into typeジョブ。
mv: Materialized viewジョブ。

戻り値

このテーブル関数は0行以上の行を返します。関数自体はNULLを返しません。対応するメタデータが利用できない場合、個々のフィールドは空またはNULLになることがあります。

  • jobs("type"="insert") insertタイプのジョブの戻り値

    パラメータ説明
    IdジョブID
    Nameジョブ名
    Definerジョブ定義者
    ExecuteType実行タイプ
    RecurringStrategy繰り返し戦略
    Statusジョブステータス
    ExecuteSql実行SQL
    CreateTimeジョブ作成時刻
    SucceedTaskCount成功したタスク数
    FailedTaskCount失敗したタスク数
    CanceledTaskCountキャンセルされたタスク数
    Commentジョブコメント
  • jobs("type"="mv") MVタイプジョブの戻り値

    パラメータ説明
    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はリフレッシュタスクが手動、コミット、または内部イベントによってトリガーされることを意味します。RECURRINGはリフレッシュタスクが定期的にスケジュールされることを意味します。
    RecurringStrategyExecuteTypeから派生したスケジュール説明。MANUAL TRIGGERはジョブがタイマーで実行されないことを意味します。EVERY ... STARTS ... [ENDS ...]はジョブが定期的に実行されることを意味します。
    Statusジョブステータス。可能な値: PENDINGはジョブがスケジューリング待ちであることを意味します;RUNNINGはジョブがタスクを生成できることを意味します;PAUSEDはジョブが一時停止されており再開可能であることを意味します;STOPPEDはジョブが停止されており再開できないことを意味します;FINISHEDはジョブが完了したことを意味します。
    CreateTimeジョブが作成された時刻。

MVジョブのenum フィールド

以下のenumフィールドは、マテリアライズドビューのリフレッシュジョブを確認する際によく使用されます:

  • ExecuteType: ジョブがリフレッシュタスクを作成する方法。
    • MANUAL: ジョブは独自のタイマーで実行されません。タスクは手動、コミット、またはシステムによってリフレッシュがトリガーされた場合にのみ作成されます。
    • RECURRING: ジョブはスケジュールで実行され、定期的にリフレッシュタスクを作成します。
  • RecurringStrategy: ExecuteTypeから生成される人間が読めるスケジュールルール。
    • MANUAL TRIGGER: ジョブは定期的にスケジュールされません。これはExecuteTypeMANUALの場合の通常の値です。
    • EVERY <interval> <unit> STARTS <time> [ENDS <time>]: ジョブは定期的にスケジュールされます。例:EVERY 10 MINUTE STARTS 2025-01-17 14:42:53
  • Status: ジョブ自体の現在の状態。
    • PENDING: ジョブはスケジューリング待ちです。
    • RUNNING: ジョブはアクティブでリフレッシュタスクを作成できます。
    • PAUSED: ジョブは一時停止されています。再開されるまで新しいリフレッシュタスクを作成しません。
    • STOPPED: ジョブは停止されており、再開できません。
    • FINISHED: ジョブは完了しました。これは長時間動作するMVリフレッシュジョブでは稀ですが、汎用ジョブフレームワークでは表示されることがあります。

マテリアライズドビューの場合、1つのマテリアライズドビューに1つのリフレッシュジョブがあり、1つのリフレッシュジョブは多くのリフレッシュタスクを作成できます。jobs("type"="mv").Nameを使用してジョブをmv_infos("database"="...").JobNameおよびtasks("type"="mv").JobNameに接続します。

マテリアライズドビューのリフレッシュジョブを表示します。

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と同じ値です。
  • MvIdMvNameは、このジョブによって維持されるマテリアライズドビューを識別します。
  • MvDatabaseIdMvDatabaseNameは、マテリアライズドビューを含むデータベースを識別します。
  • ExecuteTypeMANUALであるため、このジョブは独自のタイマーでは実行されません。マテリアライズドビューが手動でリフレッシュされた時、コミット時にリフレッシュされた時、またはシステムによってトリガーされた時にリフレッシュタスクが作成されます。
  • RecurringStrategyMANUAL TRIGGERであり、これはExecuteType = MANUALと一致します。スケジュールされたマテリアライズドビューの場合、このフィールドはEVERY ... STARTS ...として表示されます。
  • StatusRUNNINGであるため、ジョブはリフレッシュタスクを生成できます。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 |
+-----------------+------------------+--------+---------+---------------------+---------------------+

全ての挿入ジョブを表示

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 | |
+----------------+----------------+---------+-------------+--------------------------------------------+---------+--------------------------------------------------------------+---------------------+------------------+-----------------+-------------------+---------+