Материализованные представления

Проектирование баз данных

Lis Sulmont

Curriculum Manager

Два типа представлений

Представления

  • Также называются нематериализованными представлениями
  • Именно так мы определяли представления ранее
Проектирование баз данных

Два типа представлений

Представления

  • Также называются нематериализованными представлениями
  • Именно так мы определяли представления ранее

Материализованные представления

  • Физически материализованы
Проектирование баз данных

Материализованные представления

  • Хранят результаты запроса, а не сам запрос
  • Обращение к материализованному представлению — это чтение сохранённых результатов
    • Запрос не выполняется заново, как в нематериализованном представлении
  • Обновляются по запросу или по расписанию
Проектирование баз данных

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

  • Длительные запросы
  • Результаты базового запроса меняются редко
  • Хранилища данных, где OLAP не предполагает частой записи
    • Снижение вычислительных затрат при частых запросах
Проектирование баз данных

Создание материализованных представлений

(в PostgreSQL)

$$

CREATE MATERIALIZED VIEW my_mv AS SELECT * FROM existing_table;

$$

REFRESH MATERIALIZED VIEW my_mv;
Проектирование баз данных

Управление зависимостями

  • Материализованные представления нередко зависят от других материализованных представлений
Проектирование баз данных

Пример зависимости

$$ Диаграмма представлений X и Y со стрелкой, указывающей на зависимость

Проектирование баз данных

Управление зависимостями

  • Материализованные представления нередко зависят от других материализованных представлений
  • При обновлении возникает цепочка зависимостей
  • Обновлять все представления одновременно неэффективно
Проектирование баз данных

Инструменты управления зависимостями

  • Для отслеживания представлений используют направленные ациклические графы (DAGs) $$ $$
  • Инструменты планировщика конвейеров

Пример направленного ациклического графа

Логотипы Airflow и Luigi

Проектирование баз данных

Давайте потренируемся!

Проектирование баз данных

Preparing Video For Download...