.alter materialized-view

Модифицирование материализованного представления можно использовать для изменения запроса материализованного представления, сохраняя при этом существующие данные в представлении.

Предупреждение

Будьте особенно осторожны при изменении материализованного представления. Неправильное использование может привести к потере данных.

Разрешения

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

Синтаксис

.altermaterialized-view [ with(PropertyName=PropertyValue,...)] MaterializedViewNameon tableSourceTableName{Запроса}

Дополнительные сведения о соглашениях о синтаксисе.

Параметры

Имя Тип Обязательно Описание
PropertyName, PropertyValue string Список свойств в виде пар "имя- значение" из списка поддерживаемых свойств.
MaterializedViewName string ✔️ Имя материализованного представления.
SourceTableName string ✔️ Имя исходной таблицы, для которой определено представление.
Запрос string ✔️ Определение запроса материализованного представления.

Поддерживаемые свойства

В предложении with(PropertyName=PropertyValue) поддерживаются следующие свойства. Все свойства являются необязательными.

Имя Тип Описание
обратный взгляд timespan Допустимо только для arg_max//arg_mintake_any материализованных представлений. Он ограничивает период времени, в течение которого ожидаются дубликаты. Например, если в представлении указан arg_max обратный просмотр в течение 6 часов, при дедупликации между недавно принимаемыми и существующими записями будут учитываться только записи, которые были приема до 6 часов назад.

Обратный просмотр по отношению к ingestion_time. Неправильное определение периода просмотра может привести к дублированию в материализованном представлении. Например, если запись для определенного ключа подается через 10 часов после приема записи для того же ключа, а для обратного просмотра задано значение 6 часов, этот ключ будет дублироваться в представлении. Период обратного просмотра применяется как во время материализации , так и во время запроса.
autoUpdateSchema bool Указывает, следует ли автоматически обновлять представление при изменении исходной таблицы. По умолчанию — false. Этот параметр допустим только для представлений типа arg_max(Timestamp, *)//arg_min(Timestamp, *)take_any(*) (только в том случае, если аргумент столбца имеет значение ).* Если для этого параметра задано значение true, изменения в исходной таблице будут автоматически отражены в материализованном представлении.
dimensionTables array Динамический аргумент, включающий массив таблиц измерений в представлении. См. раздел Параметр запроса.
folder string Папка материализованного представления.
docString string Строка, которая документирует материализованное представление.

Возвращаемое значение

Схема выходных данных:

Имя Тип Описание
Имя string Имя материализованного представления.
SourceTable string Имя исходной таблицы, для которой определено представление.
Запрос 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 Интервал времени, ограничивающий период времени, в течение которого ожидаются дубликаты.

Примеры

Изменение определения запроса материализованного представления

Следующая команда изменяет определение запроса материализованного представления MyView:

.alter materialized-view MyView on table MyTable
{
    MyTable | summarize arg_max(Column3, *) by Column1
}

Выходные данные

Имя SourceTable Запрос MaterializedTo LastRun LastRunResult IsHealthy IsEnabled Папка DocString AutoUpdateSchema EffectiveDateTime Ретроспективный обзор
MyView MyTable MyTable | summarize arg_max(Column3, *) by Column1 26.02.2023T16:40:03.3345704Z 2023-02-26T16:44:15.9033667Z Завершено Да true false 23.02.2023T14:01:42.5172342Z

Варианты использования

  • Добавьте агрегаты в представление, например, добавьте avg агрегат в T | summarize count(), min(Value) by Id, изменив запрос представления на T | summarize count(), min(Value), avg(Value) by Id.
  • Операторы изменения, отличные от оператора summarize. Например, отфильтруйте некоторые записи, изменив T | summarize arg_max(Timestamp, *) by User на T | where User != 'someone' | summarize arg_max(Timestamp, *) by User.
  • Изменение без изменений в запросе из-за изменения в исходной таблице. Например, предположим, что для представления T | summarize arg_max(Timestamp, *) by Idне задано значение autoUpdateSchema (см. .create materialized-view команду). Если столбец добавляется или удаляется из исходной таблицы представления, представление автоматически отключается. Выполните команду alter с тем же запросом, чтобы изменить схему материализованного представления в соответствии с новой схемой таблицы. Представление по-прежнему должно быть явно включено после изменения с помощью команды включить материализованное представление .

Ограничения

  • Изменения не поддерживаются:

    • Изменения в группе материализованного представления по выражениям.
    • Изменение типа столбца.
    • Переименование столбцов. Например, при изменении представления T | summarize count() by Id в удаляется T | summarize Count=count() by Id столбец count_ и создается новый столбец Count, который изначально содержит только значения NULL.
  • Влияние на существующие данные:

    • Изменение материализованного представления не влияет на существующие данные.
    • Добавление фильтров в запрос применяется только к недавно принятым записям и не изменяет уже материализованные записи.
      • Новые столбцы получают значения NULL для всех существующих записей, пока записи, полученные после того, как команда alter изменит значения NULL.
      • Например: представление изменено T | summarize count() by bin(Timestamp, 1d) на T | summarize count(), sum(Value) by bin(Timestamp, 1d). Для конкретного элемента Timestamp=T , для которого записи уже были обработаны перед изменением представления, sum столбец содержит частичные данные. Это представление содержит только записи, обработанные после выполнения изменения.