Gematerealiseerde views

Databaseontwerp

Lis Sulmont

Curriculum Manager

Twee typen views

Views

  • Ook wel niet-gematerealiseerde views
  • Zo hebben we views tot nu toe gedefinieerd
Databaseontwerp

Twee typen views

Views

  • Ook wel niet-gematerealiseerde views
  • Zo hebben we views tot nu toe gedefinieerd

Gematerealiseerde views

  • Fysiek gematerialiseerd
Databaseontwerp

Gematerealiseerde views

  • Slaat de queryresultaten op, niet de query
  • Een gematerealiseerde view queryen betekent de opgeslagen resultaten opvragen
    • Niet de query uitvoeren zoals bij een niet-gematerealiseerde view
  • Ververst of opnieuw gematerialiseerd op verzoek of volgens schema
Databaseontwerp

Wanneer gematerealiseerde views gebruiken

  • Langlopende queries
  • Onderliggende resultaten veranderen niet vaak
  • Datawarehouses omdat OLAP niet schrijf-intensief is
    • Bespaart rekencapaciteit bij frequente queries
Databaseontwerp

Gematerealiseerde views implementeren

(in PostgreSQL)

$$

CREATE MATERIALIZED VIEW my_mv AS SELECT * FROM existing_table;

$$

REFRESH MATERIALIZED VIEW my_mv;
Databaseontwerp

Afhankelijkheden beheren

  • Gematerealiseerde views hangen vaak af van andere gematerealiseerde views
Databaseontwerp

Voorbeeld afhankelijkheid

$$ Diagram van X- en Y-views met een pijl van X en Y die een afhankelijkheid aangeeft

Databaseontwerp

Afhankelijkheden beheren

  • Gematerealiseerde views hangen vaak af van andere gematerealiseerde views
  • Vormt een afhankelijkheidsketen bij het verversen
  • Niet efficiënt om alle views tegelijk te verversen
Databaseontwerp

Tools voor afhankelijkheden beheren

  • Gebruik gerichte acyclische grafen (DAG's) om views bij te houden $$ $$
  • Pipeline-plannertools

Voorbeeld van een gerichte acyclische graaf

Logo's van Airflow en Luigi

Databaseontwerp

Laten we oefenen!

Databaseontwerp

Preparing Video For Download...