Materialized views

การออกแบบฐานข้อมูล

Lis Sulmont

Curriculum Manager

Views สองประเภท

Views

  • เรียกอีกชื่อว่า non-materialized views
  • วิธีที่เราได้นิยาม views มาจนถึงตอนนี้
การออกแบบฐานข้อมูล

Views สองประเภท

Views

  • เรียกอีกชื่อว่า non-materialized views
  • วิธีที่เราได้นิยาม views มาจนถึงตอนนี้

Materialized views

  • จัดเก็บข้อมูลจริงทางกายภาพ
การออกแบบฐานข้อมูล

Materialized views

  • เก็บ ผลลัพธ์ของคิวรี ไว้ ไม่ใช่ ตัวคิวรี
  • การ query materialized view คือการเข้าถึงผลลัพธ์ที่จัดเก็บไว้
    • ต่างจาก non-materialized view ที่รันคิวรีใหม่ทุกครั้ง
  • รีเฟรชหรือ rematerialize ได้เมื่อสั่งหรือตามกำหนดเวลา
การออกแบบฐานข้อมูล

เมื่อใดควรใช้ materialized views

  • คิวรีที่ใช้เวลานาน
  • ผลลัพธ์ของคิวรีไม่เปลี่ยนแปลงบ่อย
  • Data warehouses เพราะ OLAP ไม่ได้เขียนข้อมูลบ่อย
    • ช่วยประหยัดต้นทุนการคำนวณจากคิวรีที่รันซ้ำบ่อย
การออกแบบฐานข้อมูล

การสร้าง materialized views

(ใน PostgreSQL)

$$

CREATE MATERIALIZED VIEW my_mv AS SELECT * FROM existing_table;

$$

REFRESH MATERIALIZED VIEW my_mv;
การออกแบบฐานข้อมูล

การจัดการ dependencies

  • Materialized views มักขึ้นอยู่กับ materialized views อื่น
การออกแบบฐานข้อมูล

ตัวอย่าง dependency

$$ ไดอะแกรมของ views X และ Y พร้อมลูกศรชี้จาก X ไปยัง Y แสดง dependency

การออกแบบฐานข้อมูล

การจัดการ dependencies

  • Materialized views มักขึ้นอยู่กับ materialized views อื่น
  • ก่อให้เกิด dependency chain เมื่อรีเฟรช views
  • การรีเฟรช views ทั้งหมดพร้อมกันไม่ใช่วิธีที่มีประสิทธิภาพที่สุด
การออกแบบฐานข้อมูล

เครื่องมือจัดการ dependencies

  • ใช้ Directed Acyclic Graphs (DAGs) เพื่อติดตาม views $$ $$
  • เครื่องมือ pipeline scheduler

ตัวอย่าง directed acyclic graph

โลโก้ของ Airflow และ Luigi

การออกแบบฐานข้อมูล

มาฝึกกันเถอะ!

การออกแบบฐานข้อมูล

Preparing Video For Download...