Materialiserade vyer

Databasdesign

Lis Sulmont

Curriculum Manager

Två typer av vyer

Vyer

  • Kallas även icke-materialiserade vyer
  • Så här har vi definierat vyer hittills
Databasdesign

Två typer av vyer

Vyer

  • Kallas även icke-materialiserade vyer
  • Så här har vi definierat vyer hittills

Materialiserade vyer

  • Fysiskt materialiserade
Databasdesign

Materialiserade vyer

  • Lagrar frågeresultaten, inte frågan
  • Att fråga en materialiserad vy innebär att läsa de lagrade resultaten
    • Frågan körs inte om som i en icke-materialiserad vy
  • Uppdateras manuellt eller enligt schema
Databasdesign

När ska materialiserade vyer användas?

  • Långsamma frågor
  • Underliggande resultat ändras sällan
  • Datalager, eftersom OLAP inte är skrivintensivt
    • Sparar beräkningskostnad vid frekventa frågor
Databasdesign

Implementera materialiserade vyer

(i PostgreSQL)

$$

CREATE MATERIALIZED VIEW my_mv AS SELECT * FROM existing_table;

$$

REFRESH MATERIALIZED VIEW my_mv;
Databasdesign

Hantera beroenden

  • Materialiserade vyer är ofta beroende av andra materialiserade vyer
Databasdesign

Exempel på beroende

$$ Diagram över vyerna X och Y med en pil från X till Y som visar ett beroende

Databasdesign

Hantera beroenden

  • Materialiserade vyer är ofta beroende av andra materialiserade vyer
  • Skapar en beroendekedja vid uppdatering av vyer
  • Att uppdatera alla vyer samtidigt är inte optimalt
Databasdesign

Verktyg för att hantera beroenden

  • Använd riktade acykliska grafer (DAGs) för att hålla koll på vyer $$ $$
  • Schemaläggningsverktyg för pipelines

Exempel på en riktad acyklisk graf

Logotyper för Airflow och Luigi

Databasdesign

Nu kör vi en övning!

Databasdesign

Preparing Video For Download...