MV_INFOS
Описание
Табличная функция, создающая временные таблицы для асинхронных материализованных представлений. Позволяет просматривать сведения об асинхронных материализованных представлениях, созданных в определённой базе данных.
Синтаксис
MV_INFOS("database"="<database>")
Параметры
| Параметр | Описание |
|---|---|
<database> | Обязательный. Строковый тип. Имя базы данных, для которой требуется запросить метаданные асинхронных материализованных представлений. |
Возвращаемое значение
Эта табличная функция возвращает ноль или более строк с описанием асинхронных материализованных представлений. Сама функция не возвращает NULL. Отдельные поля могут быть пустыми или содержать NULL, если соответствующие метаданные недоступны.
| Поле | Тип | Описание |
|---|---|---|
| Id | BIGINT | ID материализованного представления |
| Name | TEXT | Имя материализованного представления |
| JobName | TEXT | Имя задания обновления, соответствующего материализованному представлению. Его можно использовать для запросов к jobs("type"="mv") и tasks("type"="mv"). |
| State | TEXT | Состояние метаданных материализованного представления. Возможные значения: INIT, NORMAL и SCHEMA_CHANGE. |
| SchemaChangeDetail | TEXT | Причина перехода State в SCHEMA_CHANGE. Поле пусто, если материализованное представление не находится в состоянии изменения схемы. |
| RefreshState | TEXT | Состояние последнего обновления. Возможные значения: INIT, SUCCESS и FAIL. |
| RefreshInfo | TEXT | Стратегия обновления, заданная для материализованного представления, включая режим построения, метод обновления и режим запуска. |
| QuerySql | TEXT | SQL-запрос, заданный для материализованного представления |
| EnvInfo | TEXT | Сведения об окружении на момент создания материализованного представления |
| MvProperties | TEXT | Свойства материализованного представления |
| MvPartitionInfo | TEXT | Сведения о партиционировании материализованного представления |
| SyncWithBaseTables | BOOLEAN | Синхронизированы ли данные материализованного представления с его базовыми таблицами. Чтобы проверить, какая партиция не синхронизирована, используйте 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 |
+-----------------+------------------+--------+---------+----------+---------------------+---------------------+