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

Проєктування баз даних

Lis Sulmont

Curriculum Manager

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

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

  • Також відомі як нематеріалізовані представлення
  • Як ми визначали представлення досі
Проєктування баз даних

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

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

  • Також відомі як нематеріалізовані представлення
  • Як ми визначали представлення досі

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

  • Фізично матеріалізовані
Проєктування баз даних

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

  • Зберігають результати запиту, а не запит
  • Запит до матеріалізованого представлення звертається до збережених результатів
    • На відміну від запуску запиту в нематеріалізованому представленні
  • Оновлюються або перематеріалізуються за запитом чи за розкладом
Проєктування баз даних

Коли варто використовувати матеріалізовані представлення

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

Реалізація матеріалізованих представлень

(у PostgreSQL)

$$

CREATE MATERIALIZED VIEW my_mv AS SELECT * FROM existing_table;

$$

REFRESH MATERIALIZED VIEW my_mv;
Проєктування баз даних

Керування залежностями

  • Матеріалізовані представлення часто залежать від інших матеріалізованих представлень
Проєктування баз даних

Приклад залежності

$$ Схема представлень X і Y зі стрілкою від X і Y, що позначає залежність

Проєктування баз даних

Керування залежностями

  • Матеріалізовані представлення часто залежать від інших матеріалізованих представлень
  • Під час оновлення створюється ланцюжок залежностей
  • Неефективно оновлювати всі представлення одночасно
Проєктування баз даних

Інструменти для керування залежностями

  • Використовуйте спрямовані ациклічні графи (DAG) для відстеження представлень $$ $$
  • Інструменти планування конвеєрів

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

Логотипи Airflow і Luigi

Проєктування баз даних

Давайте потренуємось!

Проєктування баз даних

Preparing Video For Download...