JOBS
Описание
Табличная функция, которая создаёт временную таблицу задач для просмотра сведений о заданиях определённого типа.
Синтаксис
JOBS(
"type"="<type>"
)
Параметры
| Параметр | Описание |
|---|---|
<type> | Тип задания: insert: задание типа Insert into. mv: задание материализованного представления. |
Возвращаемое значение
Эта табличная функция возвращает ноль или более строк. Сама функция не возвращает NULL. Отдельные поля могут быть пустыми или содержать NULL, если соответствующие метаданные недоступны.
-
jobs("type"="insert")Возвращаемые значения для заданий типа insertПараметр Описание Id Идентификатор задания Name Имя задания Definer Пользователь, определивший задание ExecuteType Тип выполнения RecurringStrategy Правило периодического запуска Status Статус задания ExecuteSql Выполняемый SQL CreateTime Время создания задания SucceedTaskCount Количество успешно выполненных задач FailedTaskCount Количество задач, завершившихся с ошибкой CanceledTaskCount Количество отменённых задач Comment Комментарий к заданию Properties Свойства задания. Значение есть только у заданий с ExecuteType = STREAMINGCurrentOffset Смещение, до которого задание завершило обработку. Значение есть только у заданий с ExecuteType = STREAMINGEndOffset Наибольшее смещение, полученное заданием из источника данных. Значение есть только у заданий с ExecuteType = STREAMINGLoadStatistic Статистика загрузки данных для задания 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 Идентификатор задания. Для заданий MV соответствует tasks("type"="mv").JobId.Name Имя задания. Для заданий MV соответствует mv_infos("database"="...").JobNameиtasks("type"="mv").JobName.MvId Идентификатор материализованного представления, обслуживаемого этим заданием. MvName Имя материализованного представления, обслуживаемого этим заданием. MvDatabaseId Идентификатор базы данных, содержащей материализованное представление. MvDatabaseName Имя базы данных, содержащей материализованное представление. ExecuteType Тип выполнения задания. Для заданий MV возможны значения MANUALиRECURRING.MANUALозначает, что задачи обновления запускаются вручную, при фиксации транзакции или по внутренним событиям.RECURRINGозначает, что задачи обновления запускаются периодически по расписанию.RecurringStrategy Описание расписания, сформированное на основе ExecuteType.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. Это то же значение, что и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 |
+-----------------+------------------+--------+---------+---------------------+---------------------+
Просмотр всех заданий вставки данных
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 | |
+----------------+----------------+---------+-------------+--------------------------------------------+---------+--------------------------------------------------------------+---------------------+------------------+-----------------+-------------------+---------+