.create-or-alter materialized-view
Область применения: ✅Microsoft Fabric✅Azure Data Explorer
Создает материализованное представление или изменяет существующее материализованное представление.
Разрешения
Для выполнения этой команды необходимо иметь по крайней мере разрешения администратора материализованного представления.
Синтаксис
.create-or-alter
materialized-view
[ with
(
PropertyName =
PropertyValue,
...)
] Запрос SourceTableName MaterializedViewName on table
{
}
Дополнительные сведения о соглашениях синтаксиса.
Параметры
Имя (название) | Type | Обязательно | Описание |
---|---|---|---|
PropertyName, PropertyValue | string |
Список свойств в виде пар имен и значений из списка поддерживаемых свойств. | |
MaterializedViewName | string |
✔️ | Имя материализованного представления. Имя представления не может конфликтовать с именами таблиц или функций в той же базе данных и должно соответствовать правилам именования идентификаторов. |
SourceTableName | string |
✔️ | Имя исходной таблицы, для которой определено представление. |
Запрос | string |
✔️ | Определение запроса материализованного представления. |
Поддерживаемые свойства
Новая таблица
Если таблица новая, следующие свойства поддерживаются в with(
PropertyName =
PropertyValue)
. Все свойства являются необязательными.
Имя. | Тип | Описание |
---|---|---|
Обратной засыпки | bool |
Следует ли создавать представление на основе всех записей, которые в данный момент находятся в SourceTable (true ) или создавать его с этого момента (false ). По умолчанию — false . Дополнительные сведения см. в разделе "Обратная заполнение материализованного представления". |
effectiveDateTime | datetime |
Релевантные только при использовании backfill . Если задано, создание резервных заполнений только записей, которые будут приемлены после даты и времени. backfill также должно быть задано значение true . Это свойство ожидает литерал datetime; например, effectiveDateTime=datetime(2019-05-01) . |
updateExtentsCreationTime | bool |
Релевантные только при использовании backfill . Если задано значение true , время создания экстентов назначается на основе ключа datetime group-by во время процесса обратной заполнения. Дополнительные сведения см. в разделе "Обратная заполнение материализованного представления". |
обратная обратная связь | timespan |
Допустимо только для arg_max //arg_min take_any материализованных представлений. Он ограничивает период времени, в течение которого ожидаются дубликаты. Например, если в представлении указан arg_max обратный просмотр 6 часов, дедупликация между недавно приемными записями и существующими будут принимать во внимание только записи, которые были приема до 6 часов назад. Lookback относится к ingestion_time(). Если материализованный запрос представления не сохраняет ingestion_time() значение, обратный просмотр не может быть определен в представлении. См . материализованные ограничения представлений и известные проблемы. Неправильное определение периода обратного просмотра может привести к дубликатам в материализованном представлении. Например, если запись для определенного ключа будет приемлена через 10 часов после приема записи для того же ключа, а обратный просмотр имеет значение 6 часов, этот ключ будет дублироваться в представлении. Период обратного просмотра применяется как во время материализации, так и во время запроса. |
autoUpdateSchema | bool |
Следует ли автоматически обновлять представление в исходной таблице. По умолчанию — false . Этот параметр действителен только для представлений типа arg_max(Timestamp, *) //arg_min(Timestamp, *) take_any(*) (только если аргумент столбца равен).* Если этот параметр задан true , изменения исходной таблицы будут автоматически отражены в материализованном представлении. |
dimensionTables | array | Динамический аргумент, содержащий массив таблиц измерений в представлении. См . параметр запроса. |
папку | string |
Папка материализованного представления. |
docString | string |
Строка, которая документирует материализованное представление. |
allowMaterializedViewsWithoutRowLevelSecurity | bool |
Позволяет создавать материализованное представление по таблице с включенной политикой безопасности на уровне строк. |
Существующая таблица
Если таблица уже существует, в PropertyValue =
)
поддерживаются with(
только следующие подмножества свойств. Все свойства являются необязательными.
Имя. | Тип | Описание |
---|---|---|
обратная обратная связь | timespan |
Допустимо только для arg_max //arg_min take_any материализованных представлений. Он ограничивает период времени, в течение которого ожидаются дубликаты. Например, если в представлении указан arg_max обратный просмотр 6 часов, дедупликация между недавно приемными записями и существующими будут принимать во внимание только записи, которые были приема до 6 часов назад. Lookback относительно ingestion_time . Неправильное определение периода обратного просмотра может привести к дубликатам в материализованном представлении. Например, если запись для определенного ключа будет приемлена через 10 часов после приема записи для того же ключа, а обратный просмотр имеет значение 6 часов, этот ключ будет дублироваться в представлении. Период обратного просмотра применяется как во время материализации, так и во время запроса. |
autoUpdateSchema | bool |
Следует ли автоматически обновлять представление в исходной таблице. По умолчанию — false . Этот параметр действителен только для представлений типа arg_max(Timestamp, *) //arg_min(Timestamp, *) take_any(*) (только если аргумент столбца равен).* Если этот параметр задан true , изменения исходной таблицы будут автоматически отражены в материализованном представлении. |
dimensionTables | array | Динамический аргумент, содержащий массив таблиц измерений в представлении. См . параметр запроса. |
папку | string |
Папка материализованного представления. |
docString | string |
Строка, которая документирует материализованное представление. |
Возвраты
Схема вывода:
Имя. | Тип | Description |
---|---|---|
Имя. | string |
Имя материализованного представления. |
SourceTable | string |
Имя исходной таблицы, для которой определено представление. |
Query | string |
Определение запроса материализованного представления. |
MaterializedTo | datetime |
Максимальная материализованная ingestion_time() метка времени в исходной таблице. Дополнительные сведения см. в статье о работе материализованных представлений. |
LastRun | datetime |
В последний раз была запущена материализация. |
LastRunResult | string |
Результат последнего выполнения. Возвращается Completed для успешных запусков, в противном случае Failed . |
IsHealthy | bool |
true Если представление считается работоспособным, false в противном случае. Представление считается здоровым, если оно было успешно материализовано до последнего часа (MaterializedTo больше ago(1h) ). |
IsEnabled | bool |
true если представление включено (см. раздел "Отключить или включить материализованное представление"). |
Папка | string |
Папка, в которой создается материализованное представление. |
DocString | string |
Описание, назначенное материализованному представлению. |
AutoUpdateSchema | bool |
Включается ли представление для автоматического обновления. |
EffectiveDateTime | datetime |
Время эффективной даты представления, определенное во время создания (см. раздел .create materialized-view ). |
Ретроспективный обзор | timespan |
Интервал времени, ограничивающий период времени, в течение которого ожидаются дубликаты. |
Примеры
Создание или изменение материализованного представления
Следующая команда создает новое или изменяет существующее материализованное представление с именем ArgMax:
.create-or-alter materialized-view ArgMax on table T
{
T | summarize arg_max(Timestamp, *) by User
}
Выходные данные
Имя. | SourceTable | Query | MaterializedTo | LastRun | LastRunResult | IsHealthy | IsEnabled | Папка | DocString | AutoUpdateSchema | EffectiveDateTime | Ретроспективный обзор |
---|---|---|---|---|---|---|---|---|---|---|---|---|
ArgMax | T | T | суммирование arg_max(Метка времени, *) по пользователю | 2023-02-26T16:40:03.3345704Z | 2023-02-26T16:44:15.90333667Z | Завершено | true | true | false | 2023-02-23T14:01:42.5172342Z |
Замечания
Если материализованное представление не существует, эта команда ведет себя так же, как создание материализованного представления.
Дополнительные сведения см. в разделах "Параметры запроса" и "Свойства ".
Ограничения
Изменения не поддерживаются:
- Изменения в материализованной группе представлений по выражениям.
- Изменение типа столбца.
- Переименование столбцов. Например, изменение представления для удаления столбца и создание нового столбца
T | summarize count() by Id
T | summarize Count=count() by Id
count_
Count
, который изначально содержит только значения NULL.
Влияние на существующие данные:
- Изменение материализованного представления не влияет на существующие данные.
- Добавление фильтров в запрос применяется только к недавно принятым записям и не изменяет записи, которые уже были материализованы.
- Новые столбцы получают значения NULL для всех существующих записей, пока записи не будут приниматься после изменения значений NULL.
- Например: представление
T | summarize count() by bin(Timestamp, 1d)
измененоT | summarize count(), sum(Value) by bin(Timestamp, 1d)
на . Для конкретного объектаTimestamp=T
, для которого записи уже были обработаны перед изменением представления,sum
столбец содержит частичные данные. Это представление включает только записи, обработанные после изменения.