メインコンテンツまでスキップ
に最終更新

JOBS

説明​

指定したジョブの種類に関する情報を確認できる一時テーブルを生成するテーブル関数です。

構文​

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

パラメータ​

パラメータ説明
<type>ジョブの種類:
insert:INSERT INTO タイプのジョブ。
mv:マテリアライズドビューのジョブ。

戻り値​

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

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

    パラメータ説明
    Idジョブ ID
    Nameジョブ名
    Definerジョブの定義者
    ExecuteType実行タイプ
    RecurringStrategy定期実行の方式
    Statusジョブのステータス
    ExecuteSql実行する SQL
    CreateTimeジョブの作成時刻
    SucceedTaskCount成功したタスクの数
    FailedTaskCount失敗したタスクの数
    CanceledTaskCountキャンセルされたタスクの数
    Commentジョブのコメント
    Propertiesジョブのプロパティ。ExecuteType = STREAMING のジョブにのみ値があります
    CurrentOffsetジョブが処理を完了したオフセット。ExecuteType = STREAMING のジョブにのみ値があります
    EndOffsetジョブがデータソースから取得した最大のオフセット。ExecuteType = STREAMING のジョブにのみ値があります
    LoadStatisticジョブのロード統計情報
    ErrorMsgジョブ実行時のエラーメッセージ
    JobRuntimeMsgジョブの実行時メッセージ
    LagBytesソース側のログ(MySQL の binlog や PostgreSQL の WAL など)の未処理量(バイト単位)。-1 は、S3 データソースの場合やスナップショット全体の処理中など、現在値を取得できないことを示します。
    4.1.4 以降、この列の名前は Lag(秒単位)から LagBytes(バイト単位)に変更されました
    LastSourceEventTimestampジョブがコミットしたオフセットに記録されている、ソース側の最新イベントのタイムスタンプ(Unix 秒)。空欄の場合は取得できないことを示します。4.1.4 で追加
    LastTaskSuccessTimeタスクが最後に正常終了した時刻
  • 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 ジョブの列挙値フィールド​

マテリアライズドビューの更新ジョブを確認する際には、通常、次の列挙値フィールドを使用します。

  • 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 更新ジョブではまれですが、汎用のジョブフレームワークでは表示される場合があります。

マテリアライズドビューでは、一つのマテリアライズドビューに一つの更新ジョブがあり、一つの更新ジョブから多数の更新タスクを作成できます。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 です。JobId(tasks("type"="mv") の列)と同じ値です。
  • Name は MV 更新ジョブの名前です。JobName(mv_infos("database"="test") および tasks("type"="mv") の列)と同じ値です。
  • 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 | |
+----------------+----------------+---------+-------------+--------------------------------------------+---------+--------------------------------------------------------------+---------------------+------------------+-----------------+-------------------+---------+