Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Переключение служб с помощью раскрывающегося списка версий . Дополнительные сведения о навигации.
Область применения: ✅ Microsoft Fabric ✅ Azure Data Explorer
В этой статье содержатся сведения о политиках, которые можно задать для материализованных представлений.
Политика хранения и кэширования
Материализованное представление имеет политику хранения и политику кэширования. Материализованное представление по умолчанию наследует политики хранения и кэширования базы данных. Эти политики можно изменить с помощью команд управления политиками хранения или команд управления политиками кэширования.
Обе политики применяются только к материализованной части материализованного представления. Описание различий между материализованной частью и разностной частью см. в статье о работе материализованных представлений. Например, если для политики кэширования материализованного представления задано значение 7d, но политика кэширования исходной таблицы имеет значение 0d, при запросе материализованного представления все равно может быть пропущен диск. Это происходит, так как исходная таблица (разностная часть) также участвует в запросе.
Политика хранения материализованного представления не связана с политикой хранения исходной таблицы. Политика хранения исходной таблицы может быть короче, чем политика хранения материализованного представления, если исходные записи требуются в течение более короткого периода. Мы рекомендуем минимальную политику хранения не менее нескольких дней, а для исходной таблицы задано значение true. Этот параметр позволяет быстро восстановить ошибки и в целях диагностики.
Замечание
Политика хранения нуля в исходной таблице не поддерживается.
Политики хранения и кэширования зависят от времени создания экстентов. Последнее обновление записи определяет время создания экстентов для материализованного представления.
Замечание
Процесс материализации пытается свести к минимуму количество обновлений для материализованной части представления. В случаях, когда запись не должна обновляться в представлении, она не будет обновлена. Например, когда материализованное представление является take_any(*) агрегированием, новые записи одного и того же ключа группы не будут повторно приняты в представление, и поэтому политика хранения будет выполняться по самым ранним приемам записей.
Политика секционирования
Политику секционирования можно применить к материализованному представлению. Мы рекомендуем настроить политику секционирования в материализованном представлении только в том случае, если большинство или все запросы представления фильтруются по одному из материализованных ключей представления по группам. Эта ситуация распространена в решениях с несколькими клиентами, где один из материализованных ключей представления — это идентификатор клиента (например, tenantId). customerId Дополнительные сведения см. в первом варианте использования, описанном на странице поддерживаемых политик секционирования .
Команды для изменения политики секционирования материализованного представления см. в командах политики секционирования.
Добавление политики секционирования в материализованном представлении увеличивает количество экстентов в материализованном представлении и создает больше "работы" для процесса материализации. Дополнительные сведения о причине этого поведения см. в разделе о процессе перестроения экстентов, упомянутых в том, как материализованные представления работают.
Политика безопасности на уровне строк
Безопасность на уровне строк может применяться к материализованному представлению с несколькими ограничениями:
- Политика может применяться только к материализованным представлениям с функциями агрегирования arg_max()//take_any() или когда запрос безопасности на уровне строк ссылается на группу ключами статистической обработки материализованного представления.
- Политика применяется только к материализованной части представления.
- Если та же политика безопасности на уровне строк не определена в исходной таблице материализованного представления, запросы к материализованному представлению могут возвращать записи, которые должны быть скрыты политикой. Это происходит потому, что запросы материализованного представления также запрашивают исходную таблицу.
- Мы рекомендуем определить ту же политику безопасности на уровне строк в исходной таблице и материализованном представлении, если представление является arg_max() или arg_min()/take_any()).
- При определении политики безопасности на уровне строк в исходной таблице arg_max() или arg_min()/take_any() материализованного представления команда завершается ошибкой, если в материализованном представлении не определена политика безопасности на уровне строк. Цель сбоя заключается в предупреждении пользователя о потенциальной утечке данных, так как материализованное представление может предоставлять информацию. Чтобы устранить эту ошибку, выполните одно из следующих действий:
- Определите политику безопасности уровня строк в материализованном представлении.
- Выберите игнорировать ошибку, добавив
allowMaterializedViewsWithoutRowLevelSecurityсвойство в команду alter policy. Рассмотрим пример.
.alter table SourceTable policy row_level_security enable with (allowMaterializedViewsWithoutRowLevelSecurity=true) "RLS_function"
Команды для настройки политики безопасности на уровне строк в материализованном представлении см. в row_level_security командах политики.