Zmaterializowane widoki

Projektowanie baz danych

Lis Sulmont

Curriculum Manager

Dwa typy widoków

Widoki

  • Znane również jako widoki niezmaterializowane
  • Dotychczas omawiane widoki
Projektowanie baz danych

Dwa typy widoków

Widoki

  • Znane również jako widoki niezmaterializowane
  • Dotychczas omawiane widoki

Zmaterializowane widoki

  • Fizycznie zmaterializowane
Projektowanie baz danych

Zmaterializowane widoki

  • Przechowuje wyniki zapytania, nie zapytanie
  • Odpytywanie widoku zmaterializowanego oznacza dostęp do przechowywanych wyników
    • W przeciwieństwie do widoku niezmaterializowanego nie uruchamia zapytania
  • Odświeżany na żądanie lub zgodnie z harmonogramem
Projektowanie baz danych

Kiedy stosować zmaterializowane widoki

  • Długo działające zapytania
  • Wyniki zapytań rzadko się zmieniają
  • Hurtownie danych – OLAP nie jest intensywny zapisu
    • Redukcja kosztów obliczeniowych częstych zapytań
Projektowanie baz danych

Implementowanie zmaterializowanych widoków

(w PostgreSQL)

$$

CREATE MATERIALIZED VIEW my_mv AS SELECT * FROM existing_table;

$$

REFRESH MATERIALIZED VIEW my_mv;
Projektowanie baz danych

Zarządzanie zależnościami

  • Zmaterializowane widoki często zależą od innych zmaterializowanych widoków
Projektowanie baz danych

Przykład zależności

$$ Diagram widoków X i Y ze strzałką wskazującą zależność między nimi

Projektowanie baz danych

Zarządzanie zależnościami

  • Zmaterializowane widoki często zależą od innych zmaterializowanych widoków
  • Odświeżanie widoków tworzy łańcuch zależności
  • Odświeżanie wszystkich widoków jednocześnie jest nieefektywne
Projektowanie baz danych

Narzędzia do zarządzania zależnościami

  • Śledzenie widoków za pomocą skierowanych grafów acyklicznych (DAG) $$ $$
  • Narzędzia do harmonogramowania potoków

Przykład skierowanego grafu acyklicznego

Logo Airflow i Luigi

Projektowanie baz danych

Czas na ćwiczenia!

Projektowanie baz danych

Preparing Video For Download...