Поделиться через


.create-or-alter materialized-view

Область применения: ✅Microsoft Fabric✅Azure Data Explorer

Создает материализованное представление или изменяет существующее материализованное представление.

Разрешения

Для выполнения этой команды необходимо иметь по крайней мере разрешения администратора материализованного представления.

Синтаксис

.create-or-altermaterialized-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_mintake_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_mintake_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 столбец содержит частичные данные. Это представление включает только записи, обработанные после изменения.