Перейти к содержимому
Последнее обновление

JOBS

Описание​

Табличная функция, которая создает временную таблицу задач для просмотра информации о заданиях определенного типа.

Синтаксис​

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

Обязательные параметры​

ПолеОписание
<type>Тип задания:
insert: задание вставки данных.
mv: задание материализованного представления.

Возвращаемое значение​

  • jobs("type"="insert") Возвращаемое значение для заданий типа insert

    ПолеОписание
    IdID задания
    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Объем необработанных данных в журнале на стороне источника (например, binlog MySQL или WAL PostgreSQL), в байтах. -1 означает, что значение в данный момент недоступно, например для источника данных S3 или на этапе создания полного снимка.
    Начиная с 4.1.4, этот столбец переименован из Lag (в секундах) в LagBytes (в байтах)
    LastSourceEventTimestampВременная метка (в секундах Unix) последнего события на стороне источника, записанного в смещении, зафиксированном заданием. Пустое значение означает, что информация недоступна. Добавлено в 4.1.4
    LastTaskSuccessTimeВремя последнего успешного завершения задачи
  • jobs("type"="mv") Возвращаемое значение для заданий типа MV

    ПолеОписание
    IdID задания. Для заданий MV соответствует tasks("type"="mv").JobId.
    NameИмя задания. Для заданий MV соответствует mv_infos("database"="...").JobName и tasks("type"="mv").JobName.
    MvIdID материализованного представления, обслуживаемого этим заданием.
    MvNameИмя материализованного представления, обслуживаемого этим заданием.
    MvDatabaseIdID базы данных, содержащей материализованное представление.
    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 — 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 *
from tasks("type"="mv")
where JobName = "inner_mtmv_19494"
order by CreateTime desc;

Просмотр всех заданий типа 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 | |
+----------------+----------------+---------+-------------+--------------------------------------------+---------+--------------------------------------------------------------+---------------------+------------------+-----------------+-------------------+---------+