ALTER MATERIALIZED VIEW
ALTER MATERIALIZED VIEW может:
-
Изменить имя асинхронного materialized view.
-
Изменить стратегию обновления асинхронного materialized view.
-
Изменить статус асинхронного materialized view на активный или неактивный.
-
Выполнить атомарный обмен между двумя асинхронными materialized views.
-
Изменить свойства асинхронного materialized view.
Вы можете использовать этот SQL-оператор для изменения следующих свойств:
bloom_filter_columnspartition_ttl_numberpartition_refresh_numberpartition_refresh_strategyresource_groupauto_refresh_partitions_limitexcluded_trigger_tablesmv_rewrite_staleness_secondunique_constraintsforeign_key_constraintscolocate_withexcluded_refresh_tables- Все свойства, связанные с переменными сессии. Для получения информации о переменных сессии см. System variables.
- Эта операция требует привилегию ALTER для целевого materialized view. Вы можете следовать инструкциям в GRANT для предоставления этой привилегии.
- ALTER MATERIALIZED VIEW не поддерживает прямое изменение SQL-запроса, используемого для построения materialized view. Вы можете создать новый materialized view и обменять его с оригинальным, используя ALTER MATERIALIZED VIEW SWAP WITH.
Синтаксис
ALTER MATERIALIZED VIEW [db_name.]<mv_name>
{ RENAME [db_name.]<new_mv_name>
| REFRESH <new_refresh_scheme_desc>
| ACTIVE | INACTIVE
| SWAP WITH [db_name.]<mv2_name>
| SET ( "<key>" = "<value>"[,...]) }
Параметры
| Parameter | Required | Description |
|---|---|---|
| mv_name | yes | Имя materialized view для изменения. |
| new_refresh_scheme_desc | no | Новая стратегия обновления, см. SQL Reference - CREATE MATERIALIZED VIEW - Parameters для подробностей. |
| new_mv_name | no | Новое имя для materialized view. |
| ACTIVE | no | Установить статус materialized view на активный. Selena автоматически устанавливает materialized view в неактивное состояние, если какая-либо из его базовых таблиц изменяется, например, удаляется и пересоздаётся, чтобы предотвратить ситуацию, когда исходные метаданные не соответствуют изменённой базовой таблице. Неактивные materialized views не могут использоваться для ускорения запросов или переписывания запросов. Вы можете использовать этот SQL для активации materialized view после изменения базовых таблиц. |
| INACTIVE | no | Установить статус materialized view на неактивный. Неактивный асинхронный materialized view не может быть обновлён. Но вы всё равно можете запрашивать его как таблицу. |
| SWAP WITH | no | Выполнить атомарный обмен с другим асинхронным materialized view после необходимых проверок согласованности. |
| key | no | Имя свойства для изменения, см. SQL Reference - CREATE MATERIALIZED VIEW - Parameters для подробностей. ПРИМЕЧАНИЕ Если вы хотите изменить свойство materialized view, связанное с переменной сессии, вы должны добавить префикс session. к свойству, например, session.insert_timeout. Вам не нужно указывать префикс для свойств, не связанных с сессией, например, mv_rewrite_staleness_second. |
| value | no | Значение свойства для изменения. |
Примеры
Пример 1: Изменить имя materialized view.
ALTER MATERIALIZED VIEW lo_mv1 RENAME lo_mv1_new_name;
Пример 2: Изменить интервал обновления materialized view.
ALTER MATERIALIZED VIEW lo_mv2 REFRESH ASYNC EVERY(INTERVAL 1 DAY);
Пример 3: Изменить продолжительность таймаута для задач обновления materialized view на 1 час (по умолчанию).
ALTER MATERIALIZED VIEW mv1 SET ("session.insert_timeout" = "3600");
Пример 4: Изменить статус materialized view на активный.
ALTER MATERIALIZED VIEW order_mv ACTIVE;
Пример 5: Выполнить атомарный обмен между materialized views order_mv и order_mv1.
ALTER MATERIALIZED VIEW order_mv SWAP WITH order_mv1;
Пример 6: Включить профилирование для процесса обновления materialized view. Эта функция включена по умолчанию.
ALTER MATERIALIZED VIEW mv1 SET ("session.enable_profile" = "true");
Пример 7: Включить выгрузку промежуточных результатов для процесса обновления materialized view и установить режим выгрузки в force. Выгрузка промежуточных результатов включена по умолчанию начиная с v1.5.2.
-- Включить выгрузку во время обновления materialized view.
ALTER MATERIALIZED VIEW mv1 SET ("session.enable_spill" = "true");
-- Установить spill_mode в force (значение по умолчанию - auto).
ALTER MATERIALIZED VIEW mv1 SET ("session.spill_mode" = "force");
Пример 8: Изменить продолжительность таймаута оптимизатора для materialized view на 30 секунд (по умолчанию начиная с v1.5.2), если его SQL-запрос содержит внешние таблицы или несколько JOIN.
ALTER MATERIALIZED VIEW mv1 SET ("session.new_planner_optimize_timeout" = "30000");
Пример 9: Изменить время устаревания для переписывания запросов для materialized view на 600 секунд.
ALTER MATERIALIZED VIEW mv1 SET ("mv_rewrite_staleness_second" = "600");
Пример 10: Изменить индексы bloom filter materialized view.
ALTER MATERIALIZED VIEW mv1 SET ("bloom_filter_columns" = "col1, col2");