Materializované pohledy

Database Design

Lis Sulmont

Curriculum Manager

Dva typy pohledů

Pohledy

  • Také označované jako nematerializované pohledy
  • Dosud definované pohledy
Database Design

Dva typy pohledů

Pohledy

  • Také označované jako nematerializované pohledy
  • Dosud definované pohledy

Materializované pohledy

  • Fyzicky materializované
Database Design

Materializované pohledy

  • Ukládá výsledky dotazu, nikoli dotaz samotný
  • Dotazování materializovaného pohledu znamená přístup k uloženým výsledkům
    • Na rozdíl od nematerializovaného pohledu se dotaz znovu nespouští
  • Obnova probíhá na vyžádání nebo podle plánu
Database Design

Kdy používat materializované pohledy

  • Dlouho běžící dotazy
  • Výsledky podkladového dotazu se nemění příliš často
  • Datové sklady – OLAP není náročný na zápis
    • Úspora výpočetních nákladů u opakovaných dotazů
Database Design

Implementace materializovaných pohledů

(v PostgreSQL)

$$

CREATE MATERIALIZED VIEW my_mv AS SELECT * FROM existing_table;

$$

REFRESH MATERIALIZED VIEW my_mv;
Database Design

Správa závislostí

  • Materializované pohledy často závisí na jiných materializovaných pohledech
Database Design

Příklad závislosti

$$ Diagram pohledů X a Y se šipkou znázorňující závislost

Database Design

Správa závislostí

  • Materializované pohledy často závisí na jiných materializovaných pohledech
  • Při obnově pohledů vzniká řetězec závislostí
  • Obnovovat všechny pohledy najednou není nejefektivnější
Database Design

Nástroje pro správu závislostí

  • Sledování pohledů pomocí orientovaných acyklických grafů (DAG) $$ $$
  • Nástroje pro plánování pipeline

Příklad orientovaného acyklického grafu

Loga nástrojů Airflow a Luigi

Database Design

Pojďme si procvičit!

Database Design

Preparing Video For Download...