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

TASKS

Описание​

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

Синтаксис​

TASKS(
"type"="<type>"
)

Параметры​

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

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

Эта табличная функция возвращает ноль или более строк. Сама функция не возвращает NULL. Отдельные поля могут быть пустыми или содержать NULL либо \N, если соответствующие метаданные задачи недоступны.

  • tasks("type"="insert"): возвращаемые значения для задач типа insert

    Имя поляОписание
    TaskIdИдентификатор задачи
    JobIdИдентификатор задания
    JobNameИмя задания
    LabelМетка
    StatusСостояние задачи
    ErrorMsgСведения об ошибке задачи
    CreateTimeВремя создания задачи
    FinishTimeВремя завершения задачи
    TrackingUrlURL для отслеживания
    LoadStatisticСтатистика загрузки
    UserПользователь
  • tasks("type"="mv"): возвращаемые значения для задач типа MV

    Имя поляОписание
    TaskIdУникальный идентификатор задачи обновления. При каждом обновлении материализованного представления создаётся новая запись задачи.
    JobIdИдентификатор задания, создавшего эту задачу. Соответствует jobs("type"="mv").Id.
    JobNameИмя задания, создавшего эту задачу. Соответствует mv_infos("database"="...").JobName и jobs("type"="mv").Name.
    MvIdИдентификатор материализованного представления, обновляемого этой задачей.
    MvNameИмя материализованного представления, обновляемого этой задачей.
    MvDatabaseIdИдентификатор базы данных, содержащей материализованное представление.
    MvDatabaseNameИмя базы данных, содержащей материализованное представление.
    StatusСостояние задачи. Возможные значения: PENDING означает, что задача ожидает выполнения; RUNNING означает, что задача выполняется; SUCCESS означает, что задача успешно завершена; FAILED означает, что задача завершилась с ошибкой; CANCELED означает, что задача отменена.
    ErrorMsgСообщение об ошибке, если Status имеет значение FAILED или CANCELED. Пустое при успешном завершении задачи.
    CreateTimeВремя создания записи задачи.
    StartTimeВремя начала выполнения задачи. Может содержать \N, если задача ещё не запущена.
    FinishTimeВремя завершения задачи. Может содержать \N, если задача ещё ожидает выполнения или выполняется.
    DurationMsВремя выполнения в миллисекундах, вычисляемое как FinishTime - StartTime. Может содержать \N, если задача ещё не завершена.
    TaskContextСтрока JSON, описывающая причину запуска задачи и запрос пользователя. Часто используемые поля: triggerMode, partitions и isComplete. Значения triggerMode: MANUAL, COMMIT и SYSTEM.
    RefreshModeФактический охват обновления, определённый этой задачей. Возможные значения: COMPLETE означает, что обновлены все партиции материализованного представления; PARTIAL означает, что обновлены лишь некоторые партиции; NOT_REFRESH означает, что ни одна партиция не требовала обновления.
    NeedRefreshPartitionsМассив JSON с партициями материализованного представления, которые требовали обновления в этой задаче. Пустой массив означает, что ни одна партиция не требовала обновления.
    CompletedPartitionsМассив JSON с партициями, которые были успешно обновлены. Сравните его с NeedRefreshPartitions, чтобы проверить, завершено ли обновление всех требуемых партиций.
    ProgressХод обновления в формате percentage (completed/total), например 100.00% (1/1). Может содержать \N, если нет партиций для обновления.
    LastQueryIdИдентификатор запроса SQL, выполненного задачей обновления. Используйте этот идентификатор для поиска в журналах FE или BE при диагностике сбоев задач. Может быть пустым, если SQL для обновления не выполнялся. Это поле поддерживается начиная с Doris 3.0.0.

Поля задач MV с перечисляемыми значениями​

Следующие поля с перечисляемыми значениями часто используются при проверке задач обновления материализованных представлений:

  • Status: состояние задачи в её жизненном цикле.
    • PENDING: задача создана, но ещё не запущена. Она ожидает планирования или выделения ресурсов.
    • RUNNING: задача выполняется.
    • SUCCESS: задача успешно завершена.
    • FAILED: задача завершилась с ошибкой. Сначала проверьте ErrorMsg, затем используйте LastQueryId для поиска в журналах, если это поле не пустое.
    • CANCELED: задача отменена до завершения.
  • TaskContext.triggerMode: причина создания задачи.
    • MANUAL: создана командой ручного обновления, например REFRESH MATERIALIZED VIEW.
    • COMMIT: создана из-за изменений данных в связанных базовых таблицах, которые вызвали обновление.
    • SYSTEM: создана внутренним действием системы, например при первоначальном построении материализованного представления, созданного с немедленным построением.
  • TaskContext.isComplete: запрошено ли полное обновление.
    • true: запрос предписывает Doris обновить все партиции материализованного представления.
    • false: запрос не требует принудительного полного обновления. Doris может определить фактический охват обновления на основе актуальности партиций.
  • RefreshMode: фактический охват обновления, выбранный задачей после проверки партиций.
    • COMPLETE: для обновления выбраны все партиции материализованного представления, принадлежащие MV.
    • PARTIAL: для обновления выбраны лишь некоторые партиции материализованного представления.
    • NOT_REFRESH: ни одна партиция не требовала обновления. В этом случае NeedRefreshPartitions обычно пуст, а Progress может содержать \N.
Версия

LastQueryId поддерживается начиная с Doris 3.0.0. В Doris 2.1.x это поле недоступно.

Примеры​

Просмотр последней задачи обновления материализованного представления.

select *
from tasks("type"="mv")
where MvDatabaseName = "test" and MvName = "mv1"
order by CreateTime desc
limit 1\G
*************************** 1. row ***************************
TaskId: 437156301250803
JobId: 19508
JobName: inner_mtmv_19494
MvId: 19494
MvName: mv1
MvDatabaseId: 16016
MvDatabaseName: test
Status: SUCCESS
ErrorMsg:
CreateTime: 2025-01-07 22:13:48
StartTime: 2025-01-07 22:13:48
FinishTime: 2025-01-07 22:17:45
DurationMs: 236985
TaskContext: {"triggerMode":"MANUAL","partitions":[],"isComplete":false}
RefreshMode: COMPLETE
NeedRefreshPartitions: ["p_20210101_MAXVALUE","p_20200101_20210101"]
CompletedPartitions: ["p_20210101_MAXVALUE","p_20200101_20210101"]
Progress: 100.00% (2/2)
LastQueryId: 7965b4ddce8a4480-8884e9701679c1c4

В этом результате:

  • TaskId идентифицирует это выполнение обновления. При каждом обновлении он отличается.
  • JobId и JobName идентифицируют задание обновления MV. Сведения о задании можно получить запросом select * from jobs("type"="mv") where Name = "inner_mtmv_19494";.
  • MvId, MvName, MvDatabaseId и MvDatabaseName идентифицируют материализованное представление, обновляемое задачей.
  • Status имеет значение SUCCESS, поэтому задача успешно завершена. Если значение равно FAILED, сначала проверьте ErrorMsg.
  • CreateTime, StartTime, FinishTime и DurationMs показывают время создания, начала и завершения задачи, а также продолжительность её выполнения.
  • TaskContext показывает, что задача запущена вручную. partitions: [] означает, что пользователь не указал список партиций в команде обновления.
  • RefreshMode имеет значение COMPLETE, поэтому эта задача обновила все партиции материализованного представления, требовавшие обновления.
  • NeedRefreshPartitions содержит две партиции, требовавшие обновления, а CompletedPartitions содержит те же две партиции, поэтому обновление всех требуемых партиций завершено.
  • Progress имеет значение 100.00% (2/2), что также означает завершение обновления двух из двух требуемых партиций.
  • LastQueryId содержит идентификатор запроса SQL для обновления. Используйте его для поиска в журналах Doris, если задача завершается с ошибкой или выполняется медленно.
Примечание

Количество сохраняемых и отображаемых записей задач определяется параметром конфигурации FE max_persistence_task_count. Значение по умолчанию — 100. Когда количество записей задач превышает этот предел, старые записи удаляются. Если значение меньше 1, записи задач не сохраняются. После изменения этого параметра перезапустите FE.

Просмотр всех задач вставки данных

select * from tasks("type"="insert");
+----------------+----------------+----------------+-------------------------------+---------+----------+---------------------+---------------------+---------------------+-------------+---------------+------+
| TaskId | JobId | JobName | Label | Status | ErrorMsg | CreateTime | StartTime | FinishTime | TrackingUrl | LoadStatistic | User |
+----------------+----------------+----------------+-------------------------------+---------+----------+---------------------+---------------------+---------------------+-------------+---------------+------+
| 79133848479750 | 78533940810334 | insert_tab_job | 78533940810334_79133848479750 | SUCCESS | | 2025-01-17 14:42:54 | 2025-01-17 14:42:54 | 2025-01-17 14:42:54 | | | root |
+----------------+----------------+----------------+-------------------------------+---------+----------+---------------------+---------------------+---------------------+-------------+---------------+------+