Ограничения материализованных представлений и известные проблемы
Область применения: ✅Microsoft Fabric✅Azure Data Explorer
Источник материализованного представления
- Исходная таблица материализованного представления:
- Должен быть таблицей , в которой данные непосредственно приемуются, с помощью политики обновления или приема из команд запросов.
- Использование экстентов перемещения или замены экстентов из других таблиц в исходную таблицу материализованного представления поддерживается только в том случае, если в
setNewIngestionTime
команде move экстентов используется свойство (см. инструкции .move extents и .replace экстентов для получения дополнительных сведений). - Перемещение экстентов в исходную таблицу материализованного представления, а не использование
setNewIngestionTime
может завершиться ошибкой с одной из следующих ошибок:Cannot drop/move extents from/to table 'TableName' since Materialized View 'ViewName' is currently processing some of these extents
.Cannot move extents to 'TableName' since materialized view 'ViewName' will not process these extents (can lead to data loss in the materialized view)
.
- Использование экстентов перемещения или замены экстентов из других таблиц в исходную таблицу материализованного представления поддерживается только в том случае, если в
- Должен быть таблицей , в которой данные непосредственно приемуются, с помощью политики обновления или приема из команд запросов.
- Исходная таблица материализованного представления должна включать политику IngestionTime. Эта политика включена по умолчанию.
- Если материализованное представление использует a
lookback
(см . поддерживаемые свойства),ingestion_time()
его необходимо сохранить в запросе материализованного представления. Операторы, такие как mv-expand или pivot plugin, не сохраняют иingestion_time()
поэтому не могут использоваться в материализованном представлении с параметромlookback
. - Исходная таблица материализованного представления не может быть таблицей с политикой доступа к ограниченному представлению.
- Материализованное представление не может быть создано поверх другого материализованного представления, если только первое материализованное представление не является агрегированием типа
take_any(*)
. См . материализованное представление по материализованному представлению. - Материализованные представления нельзя определить по внешним таблицам.
Предупреждение
- Материализованное представление автоматически отключается системой, если изменения исходной таблицы материализованного представления или изменения данных приводят к несовместимости между материализованным запросом представления и ожидаемой схемой материализованного представления.
- Чтобы избежать этой ошибки, материализованный запрос представления должен быть детерминированным. Например, подключаемые модули bag_unpack или сводки приводят к недетерминированной схеме.
- При использовании агрегата и при
autoUpdateSchema
значении false изменения исходнойarg_max(Timestamp, *)
таблицы также могут привести к несоответствиям схемы.- Избегайте этого сбоя, определяя запрос представления как
arg_max(Timestamp, Column1, Column2, ...)
или используяautoUpdateSchema
этот параметр.
- Избегайте этого сбоя, определяя запрос представления как
- Использование
autoUpdateSchema
может привести к необратимой потере данных при удалении столбцов в исходной таблице. - Мониторинг автоматического отключения материализованных представлений с помощью метрики MaterializedViewResult.
- После устранения проблем несовместимости представление должно быть явно включено с помощью команды включения материализованного представления .
Влияние записей, полученных в исходную таблицу или удаленных из нее
- Материализованное представление обрабатывает только новые записи, приема в исходную таблицу. Записи, удаленные из исходной таблицы, либо за счет очистки/данных обратимого удаления экстентов удаления/, либо из-за политики хранения или любой другой причины, не влияют на материализованное представление.
- Материализованное представление имеет собственную политику хранения, которая не зависит от политики хранения исходной таблицы. Материализованное представление может содержать записи, которые отсутствуют в исходной таблице.
Базы данных подписчиков
- Материализованные представления нельзя создавать в базах данных подписчиков. Базы данных подписчиков доступны только для чтения и материализованные представления требуют операций записи.
- Материализованные представления нельзя создавать в сочетаниях клавиш базы данных. Сочетания клавиш базы данных — это доступные только для чтения представления и материализованные представления требуют операций записи.
- Материализованные представления, определенные в базах данных лидеров, можно запрашивать от своих последователей, как и любую другую таблицу в лидере.
- Используйте кластер лидеров для мониторинга материализованных представлений базы данных последователей. Дополнительные сведения см. в разделе "Материализованные представления" в базах данных подписчиков.
- Используйте исходное хранилище событий для мониторинга материализованных представлений базы данных. Дополнительные сведения см. в разделе "Мониторинг материализованных представлений"