Materialized views

Thiết kế cơ sở dữ liệu

Lis Sulmont

Curriculum Manager

Hai loại view

View

  • Còn gọi là view không materialized
  • Cách chúng ta đã định nghĩa view đến nay
Thiết kế cơ sở dữ liệu

Hai loại view

View

  • Còn gọi là view không materialized
  • Cách chúng ta đã định nghĩa view đến nay

Materialized view

  • Được materialize vật lý
Thiết kế cơ sở dữ liệu

Materialized view

  • Lưu kết quả truy vấn, không phải truy vấn
  • Truy vấn materialized view là đọc kết quả đã lưu
    • Không chạy truy vấn như view không materialized
  • Refresh/rematerialize khi được kích hoạt hoặc theo lịch
Thiết kế cơ sở dữ liệu

Khi nào dùng materialized view

  • Truy vấn chạy lâu
  • Kết quả truy vấn gốc ít thay đổi
  • Data warehouse vì OLAP không nặng ghi
    • Tiết kiệm chi phí tính toán cho truy vấn thường xuyên
Thiết kế cơ sở dữ liệu

Triển khai materialized view

(trong PostgreSQL)

$$

CREATE MATERIALIZED VIEW my_mv AS SELECT * FROM existing_table;

$$

REFRESH MATERIALIZED VIEW my_mv;
Thiết kế cơ sở dữ liệu

Quản lý phụ thuộc

  • Materialized view thường phụ thuộc vào materialized view khác
Thiết kế cơ sở dữ liệu

Ví dụ về phụ thuộc

$$ Sơ đồ view X và Y với mũi tên từ X và Y chỉ ra quan hệ phụ thuộc

Thiết kế cơ sở dữ liệu

Quản lý phụ thuộc

  • Materialized view thường phụ thuộc vào materialized view khác
  • Tạo chuỗi phụ thuộc khi refresh view
  • Không hiệu quả nếu refresh tất cả cùng lúc
Thiết kế cơ sở dữ liệu

Công cụ quản lý phụ thuộc

  • Dùng Đồ thị có hướng không chu trình (DAG) để theo dõi view $$ $$
  • Công cụ lập lịch pipeline

Ví dụ đồ thị có hướng không chu trình

Logo của Airflow và Luigi

Thiết kế cơ sở dữ liệu

Ayo berlatih!

Thiết kế cơ sở dữ liệu

Preparing Video For Download...