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

MV_INFOS

Описание​

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

Синтаксис​

MV_INFOS("database"="<database>")

Параметры​

ПараметрОписание
<database>Обязательный. Строковый тип. Имя базы данных, для которой требуется запросить метаданные асинхронных материализованных представлений.

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

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

ПолеТипОписание
IdBIGINTID материализованного представления
NameTEXTИмя материализованного представления
JobNameTEXTИмя задания обновления, соответствующего материализованному представлению. Его можно использовать для запросов к jobs("type"="mv") и tasks("type"="mv").
StateTEXTСостояние метаданных материализованного представления. Возможные значения: INIT, NORMAL и SCHEMA_CHANGE.
SchemaChangeDetailTEXTПричина перехода State в SCHEMA_CHANGE. Поле пусто, если материализованное представление не находится в состоянии изменения схемы.
RefreshStateTEXTСостояние последнего обновления. Возможные значения: INIT, SUCCESS и FAIL.
RefreshInfoTEXTСтратегия обновления, заданная для материализованного представления, включая режим построения, метод обновления и режим запуска.
QuerySqlTEXTSQL-запрос, заданный для материализованного представления
EnvInfoTEXTСведения об окружении на момент создания материализованного представления
MvPropertiesTEXTСвойства материализованного представления
MvPartitionInfoTEXTСведения о партиционировании материализованного представления
SyncWithBaseTablesBOOLEANСинхронизированы ли данные материализованного представления с его базовыми таблицами. Чтобы проверить, какая партиция не синхронизирована, используйте SHOW PARTITIONS.

RefreshInfo отображается в виде BUILD <BuildMode> REFRESH <RefreshMethod> ON <RefreshTrigger> [schedule]. Значение каждой части описано ниже в разделе о полях с перечисляемыми значениями.

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

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

  • State: состояние метаданных материализованного представления.
    • INIT: материализованное представление создано, но его метаданные ещё не перешли в нормальное состояние, необходимое для работы.
    • NORMAL: метаданные материализованного представления в нормальном состоянии. Это ожидаемое состояние в большинстве случаев.
    • SCHEMA_CHANGE: изменение схемы базовой таблицы или связанного объекта повлияло на это материализованное представление. Причина указана в SchemaChangeDetail. Как правило, к материализованному представлению можно обращаться с запросами напрямую, но оно может быть недоступно для прозрачного переписывания запросов до успешного обновления.
  • RefreshState: результат последнего обновления.
    • INIT: результат обновления ещё не зарегистрирован.
    • SUCCESS: последнее обновление завершилось успешно.
    • FAIL: последнее обновление завершилось ошибкой. Используйте JobName, чтобы выполнить запрос к tasks("type"="mv") и проверить поле ErrorMsg у завершившейся ошибкой задачи.
  • RefreshInfo.BuildMode: когда Doris формирует данные материализованного представления.
    • IMMEDIATE: данные материализованного представления формируются сразу после его создания.
    • DEFERRED: данные не формируются при создании. Чтобы материализованное представление содержало актуальные данные, его необходимо обновить позднее.
  • RefreshInfo.RefreshMethod: как Doris выбирает данные для обновления.
    • COMPLETE: материализованное представление всегда обновляется полностью.
    • AUTO: Doris определяет, нужно ли обновить все партиции или только изменившиеся.
  • RefreshInfo.RefreshTrigger: что запускает задачи обновления.
    • MANUAL: обновление запускается вручную.
    • COMMIT: обновление запускается при изменении данных в связанных базовых таблицах.
    • SCHEDULE: обновление запускается по расписанию. Сведения о расписании указываются после ON SCHEDULE в RefreshInfo.
  • MvPartitionInfo.partitionType: как партиционируется материализованное представление.
    • FOLLOW_BASE_TABLE: партиции материализованного представления формируются по столбцу партиционирования базовой таблицы.
    • SELF_MANAGE: материализованное представление самостоятельно управляет своими партициями.
    • EXPR: партиции материализованного представления задаются выражением.
  • SyncWithBaseTables: синхронизированы ли данные материализованного представления с базовыми таблицами.
    • 1 или true: синхронизированы.
    • 0 или false: синхронизированы не полностью. Для партиционированных материализованных представлений используйте SHOW PARTITIONS FROM <mv_name>, чтобы проверить синхронизацию на уровне партиций.

Примеры​

Просмотр материализованного представления в базе данных test.

select *
from mv_infos("database"="test")
where Name = "mv1"\G
*************************** 1. row ***************************
Id: 19494
Name: mv1
JobName: inner_mtmv_19494
State: NORMAL
SchemaChangeDetail:
RefreshState: SUCCESS
RefreshInfo: BUILD DEFERRED REFRESH AUTO ON MANUAL
QuerySql: SELECT `internal`.`test`.`user`.`k2`, `internal`.`test`.`user`.`k3` FROM `internal`.`test`.`user`
EnvInfo: EnvInfo{ctlId='0', dbId='16813'}
MvProperties: {partition_sync_limit=100, partition_sync_time_unit=YEAR}
MvPartitionInfo: MTMVPartitionInfo{partitionType=FOLLOW_BASE_TABLE, relatedTable=user, relatedCol='k2', partitionCol='k2'}
SyncWithBaseTables: 1

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

  • Id и Name идентифицируют материализованное представление.
  • JobName — имя задания обновления для этого материализованного представления. Используйте его для запроса сведений о задании или задачах обновления, например select * from jobs("type"="mv") where Name = "inner_mtmv_19494";.
  • State имеет значение NORMAL, то есть метаданные материализованного представления в нормальном состоянии. INIT означает, что материализованное представление только что создано или инициализировано. SCHEMA_CHANGE означает, что изменение схемы базовой таблицы повлияло на это материализованное представление; в этом состоянии проверьте SchemaChangeDetail.
  • SchemaChangeDetail пусто, поскольку State не имеет значения SCHEMA_CHANGE.
  • RefreshState имеет значение SUCCESS, то есть последнее обновление прошло успешно. INIT означает, что состояние успешного обновления ещё не зарегистрировано. FAIL означает, что последнее обновление завершилось ошибкой; выполните запрос к tasks("type"="mv") с использованием JobName, чтобы найти завершившуюся ошибкой задачу и её ErrorMsg.
  • RefreshInfo имеет значение BUILD DEFERRED REFRESH AUTO ON MANUAL. BUILD DEFERRED означает, что данные материализованного представления не были сформированы сразу при его создании. REFRESH AUTO означает, что Doris определяет, нужно ли обновить все партиции или только изменившиеся. ON MANUAL означает, что обновление запускается вручную, а не по расписанию.
  • QuerySql содержит запрос, определяющий материализованное представление.
  • EnvInfo содержит сведения об окружении на момент создания материализованного представления.
  • MvProperties показывает свойства материализованного представления. В этом примере синхронизация партиций ограничена параметрами partition_sync_limit=100 и partition_sync_time_unit=YEAR.
  • MvPartitionInfo показывает, как партиционируется материализованное представление. FOLLOW_BASE_TABLE означает, что материализованное представление использует столбец партиционирования базовой таблицы. SELF_MANAGE означает, что материализованное представление самостоятельно управляет своими партициями. EXPR означает, что партиционирование материализованного представления задаётся выражением.
  • SyncWithBaseTables имеет значение 1, то есть данные материализованного представления синхронизированы с его базовыми таблицами. 0 означает, что они синхронизированы не полностью. Для партиционированных материализованных представлений используйте SHOW PARTITIONS FROM <mv_name>, чтобы проверить синхронизацию на уровне партиций.

Чтобы просмотреть последнюю задачу обновления этого материализованного представления:

select TaskId, JobName, MvName, Status, ErrorMsg, CreateTime, FinishTime
from tasks("type"="mv")
where JobName = "inner_mtmv_19494"
order by CreateTime desc
limit 1;
+-----------------+------------------+--------+---------+----------+---------------------+---------------------+
| TaskId | JobName | MvName | Status | ErrorMsg | CreateTime | FinishTime |
+-----------------+------------------+--------+---------+----------+---------------------+---------------------+
| 437156301250803 | inner_mtmv_19494 | mv1 | SUCCESS | | 2025-01-07 22:13:48 | 2025-01-07 22:17:45 |
+-----------------+------------------+--------+---------+----------+---------------------+---------------------+