MV_INFOS
Описание
Табличная функция, создающая временные таблицы для асинхронных материализованных представлений и позволяющая просматривать информацию об асинхронных материализованных представлениях, созданных в определённой базе данных.
Синтаксис
MV_INFOS("database"="<database>")
Обязательные параметры
<database>
Укажите имя базы данных кластера, информацию о которой нужно получить
Возвращаемое значение
| Поле | Тип | Описание |
|---|---|---|
| Id | BIGINT | Идентификатор материализованного представления |
| 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-запрос, заданный для материализованного представления |
| MvProperties | TEXT | Свойства материализованного представления |
| MvPartitionInfo | TEXT | Информация о разделах материализованного представления |
| SyncWithBaseTables | BOOLEAN | Синхронизированы ли данные материализованного представления с его базовыми таблицами. Чтобы узнать, какой раздел не синхронизирован, используйте SHOW PARTITIONS. |
| IvmBaseTableStreams | TEXT | Соответствие между базовыми таблицами IVM и внутренними Table Streams, которые Doris создаёт автоматически. Обычно пусто для материализованных представлений, не использующих IVM. |
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: всегда обновлять материализованное представление полностью.PARTITIONS: пересчитывать изменившиеся разделы материализованного представления.INCREMENTAL: использовать инкрементальное обслуживание представлений (IVM) для обработки изменений на уровне строк.AUTO: Doris автоматически выбирает IVM, обновление разделов или полное обновление.
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>, чтобы проверить синхронизацию на уровне разделов.
IvmBaseTableStreams: соответствие между базовыми таблицами, используемыми IVM, и его внутренними Streams. Внутренними Streams управляет Doris; не считывайте, не сбрасывайте и не удаляйте их вручную. См. Инкрементальное обслуживание представлений (IVM).
Примеры
Просмотр материализованного представления в базе данных 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`
MvProperties: {partition_sync_limit=100, partition_sync_time_unit=YEAR}
MvPartitionInfo: MTMVPartitionInfo{partitionType=FOLLOW_BASE_TABLE, relatedTable=user, relatedCol='k2', partitionCol='k2'}
SyncWithBaseTables: 1
IvmBaseTableStreams: \N
В этом результате:
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— определение запроса материализованного представления.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>, чтобы проверить синхронизацию на уровне разделов.IvmBaseTableStreamsпусто, поскольку в этом примере не используется IVM.
Чтобы просмотреть последнюю задачу обновления этого материализованного представления:
select *
from tasks("type"="mv")
where JobName = "inner_mtmv_19494"
order by CreateTime desc
limit 1;