Materialized views

Conception de la base de données

Lis Sulmont

Curriculum Manager

Two types of views

Views

  • Also known as non-materialized views
  • How we've defined views so far
Conception de la base de données

Two types of views

Views

  • Also known as non-materialized views
  • How we've defined views so far

Materialized views

  • Physically materialized
Conception de la base de données

Materialized views

  • Stores the query results, not the query
  • Querying a materialized view means accessing the stored query results
    • Not running the query like a non-materialized view
  • Refreshed or rematerialized when prompted or scheduled
Conception de la base de données

When to use materialized views

  • Long running queries
  • Underlying query results don't change often
  • Data warehouses because OLAP is not write-intensive
    • Save on computational cost of frequent queries
Conception de la base de données

Implementing materialized views

(in PostgreSQL)

$$

CREATE MATERIALIZED VIEW my_mv AS SELECT * FROM existing_table;

$$

REFRESH MATERIALIZED VIEW my_mv;
Conception de la base de données

Managing dependencies

  • Materialized views often depend on other materialized views
Conception de la base de données

Dependency example

$$ Diagram of X and Y views with an arrow from X and Y indicating a dependency

Conception de la base de données

Managing dependencies

  • Materialized views often depend on other materialized views
  • Creates a dependency chain when refreshing views
  • Not the most efficient to refresh all views at the same time
Conception de la base de données

Tools for managing dependencies

  • Use Directed Acyclic Graphs (DAGs) to keep track of views $$ $$
  • Pipeline scheduler tools

Example of a directed acyclic graph

Logos of Airflow and Luigi

Conception de la base de données

Let's practice!

Conception de la base de données

Preparing Video For Download...