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

routine_load_job

概要​

Routine Load ジョブの情報を確認するためのテーブルです。

データベースとテーブル​

information_schema.routine_load_jobs

テーブル情報​

カラム名型説明例
JOB_IDtextDoris が生成したジョブ ID。12025
JOB_NAMEtextRoutine Load ジョブの名前。example_routine_load
CREATE_TIMEtextジョブの作成時刻。2024-01-15 08:12:42
PAUSE_TIMEtextジョブが最後に一時停止した時刻。一時停止したことがない場合は NULL。NULL
END_TIMEtextジョブの終了時刻。終了していない場合は NULL。NULL
DB_NAMEtextジョブのデータベース名。default_cluster:testdb
TABLE_NAMEtextジョブのロード先テーブル名。複数テーブルへのインポートジョブでは multi-table。test_routineload_tbl
STATEtextジョブの実行状態。NEED_SCHEDULE、RUNNING、PAUSED、STOPPED、CANCELLED のいずれか。RUNNING
CURRENT_TASK_NUMtext現在スケジュール中または実行中のサブタスク数。1
JOB_PROPERTIEStextバッチサイズ、並行度、インポート形式、カラムマッピング、エラー許容範囲などのジョブ設定。{"max_batch_rows":"200000","format":"csv","columnToColumnExpr":"user_id,name,age","max_filter_ratio":"1.0"}
DATA_SOURCE_PROPERTIEStextデータソースの設定。Kafka の場合はトピック、ブローカー一覧、現在の Kafka パーティションなどを含みます。{"topic":"test-topic","currentKafkaPartitions":"0","brokerList":"192.168.88.62:9092"}
CUSTOM_PROPERTIEStextジョブ作成時に設定したカスタムプロパティ。Kafka の場合は通常、オフセット、グループ ID、property. プレフィックス付きで渡した Kafka クライアントパラメータなどを含みます。バージョン 4.0.8 以降、機密性の高いプロパティは ****** と表示されます。{"kafka_default_offsets":"OFFSET_BEGINNING","group.id":"example_routine_load_73daf600-884e-46c0-a02b-4e49fdf3b4dc"}
STATISTICtextジョブの実行時統計情報。主なフィールドには receivedBytes、loadedRows、errorRows、committedTaskNum、abortedTaskNum、loadRowsRate、taskExecuteTimeMs があります。{"receivedBytes":28,"runningTxns":[],"errorRows":0,"committedTaskNum":3,"loadedRows":3,"loadRowsRate":0,"abortedTaskNum":0,"errorRowsAfterResumed":0,"totalRows":3,"unselectedRows":0,"receivedBytesRate":0,"taskExecuteTimeMs":30069}
PROGRESStextジョブの実行進捗。Kafka の場合は各パーティションで消費済みのオフセットを示します。{"0":"2"}
LAGtextジョブの遅延情報。Kafka の場合は各パーティションの消費遅延を示します。{"0":0}
REASON_OF_STATE_CHANGEDtextジョブの状態が変わった理由。通常の実行中は空で、ジョブが異常に一時停止またはキャンセルされた場合は具体的な理由を記録します。The number of failed task exceeded max_error_number
ERROR_LOG_URLStext品質チェックで不合格となり、除外されたデータを確認するためのエラーログ URL。エラーログがない場合は空です。http://fe_host:8030/api/_load_error_log?file=error.log
USER_NAMEtextジョブを作成または操作したユーザー。root
CURRENT_ABORT_TASK_NUMint現在の失敗したサブタスク数。0
IS_ABNORMAL_PAUSEbooleanユーザーによる手動操作ではなく、システムによってジョブが異常に一時停止されたかどうか。true はシステムによる異常な一時停止を、false は異常な一時停止がないことを示します。false
COMPUTE_GROUPtextジョブを実行するコンピュートグループ。default_compute_group
FIRST_ERROR_MSGtextジョブで最初に発生したエラーメッセージ。根本原因の調査に役立ちます。エラーがない場合は空です。too many filtered rows

データの取得元と完全性​

FIRST_ERROR_MSG と ERROR_LOG_URLS は、マスター FE のメモリ内でのみ保持される一時的な実行時フィールドです。フォロワー FE はメタデータの再生時にこれらの値を設定しません。

動作の変更(4.0.8)

バージョン 4.0.8 以降、information_schema.routine_load_jobs のスキャンはマスター FE にルーティングされます。そのため、どの FE からクエリしても、完全な FIRST_ERROR_MSG と ERROR_LOG_URLS の値が返されます。

4.0.8 より前は、クエリを受け付けた FE がこのテーブルの結果を返していました。そのため、マスター以外の FE ではこれら二つのカラムが空になり、マスターに転送される SHOW ROUTINE LOAD の結果と一致しませんでした。

このルーティングはセッション変数 enable_schema_scan_from_master_fe で制御され、デフォルト値は true です。

異常なジョブの検索​

ジョブが異常に一時停止している場合、失敗したタスクがある場合、または RUNNING 状態でも実行中のサブタスクがなく、Kafka に消費遅延が残っている場合は、調査が必要です。次の SQL で該当するジョブを検索できます。

SELECT DB_NAME, JOB_NAME
FROM information_schema.routine_load_jobs
WHERE IS_ABNORMAL_PAUSE = TRUE
OR (
STATE = 'RUNNING'
AND (
CURRENT_ABORT_TASK_NUM > 0
OR (
CAST(CURRENT_TASK_NUM AS INT) = 0
AND `LAG` REGEXP ':[[:space:]]*[1-9][0-9]*'
)
)
);

異常なジョブが見つかったら、該当するデータベースに切り替え、SHOW ROUTINE LOAD でジョブの詳細を確認します。

USE `db_name`;
SHOW ROUTINE LOAD FOR `job_name`;

LAG は Kafka の各パーティションの消費遅延情報です。LAG REGEXP ':[[:space:]]*[1-9][0-9]*' は、少なくとも一つのパーティションで遅延が 0 より大きいジョブに一致します。