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


.alter materialized-view

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

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

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

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

Разрешения

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

Синтаксис

.altermaterialized-view [ with(PropertyName = PropertyValue,...)] Запрос SourceTableName MaterializedViewName on table { }

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

Параметры

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

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

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

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

Примеры

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

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

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

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

Имя. SourceTable Query MaterializedTo LastRun LastRunResult IsHealthy IsEnabled Папка DocString AutoUpdateSchema EffectiveDateTime Ретроспективный обзор
MyView MyTable MyTable | суммирование arg_max(Column3, *) по столбцу 1 2023-02-26T16:40:03.3345704Z 2023-02-26T16:44:15.90333667Z Завершено true true false 2023-02-23T14:01:42.5172342Z

Случаи использования

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