Analytics workflows สำหรับฐานข้อมูลแบบ column-oriented

NoSQL เบื้องต้น

Jake Roach

Data Engineer

Common table expressions กับ Snowflake

Common table expressions (CTEs):

  • Sub-query/ตารางชั่วคราวที่มีชื่อ กำหนดด้วยคีย์เวิร์ด WITH
  • สร้าง object ที่สามารถ query ต่อได้ภายหลัง
  • ลดปริมาณข้อมูลที่ต้อง query และ/หรือ JOIN
  • มีโครงสร้างเป็นโมดูล แก้ไขปัญหาได้ง่ายขึ้น
WITH <cte-name> AS (
    SELECT
        ....
    FROM <table-name>
    [JOIN | WHERE | ...]
)

SELECT
    ...
FROM <cte-name>;
1 https://docs.snowflake.com/en/user-guide/queries-cte
NoSQL เบื้องต้น

การเขียน common table expressions

WITH premium_books AS (
    SELECT
        title,
        author,
        avg_reviews
    FROM books
    WHERE price > 25.00
)
SELECT
    author,
    MIN(avg_reviews) AS min_avg_reviews,
    MAX(avg_reviews) AS max_avg_reviews
FROM premium_books
GROUP BY author;
  • สร้าง object ชั่วคราวชื่อ premium_books
  • นำ premium_books ไปใช้ต่อใน query ถัดไป

$$

สามารถสร้าง object ชั่วคราวได้หลายรายการ:

WITH 
    <first-name> AS (...),
    <second-name> AS (...),
    ...
...
;
NoSQL เบื้องต้น

Views กับ Snowflake

Views:

  • ให้เข้าถึงผลลัพธ์ของ query ได้เหมือนตาราง
  • มีทั้งแบบ non-materialized และ materialized
CREATE VIEW <view-name> AS
  SELECT
      ...
  FROM <table-name>
  [WHERE | JOIN | ...];
NoSQL เบื้องต้น

การสร้าง views กับ Snowflake

CREATE VIEW premium_books AS
    SELECT
        title,
        author,
        avg_reviews
    FROM books
    WHERE price >= 25.00;
SELECT * FROM premium_books;
  • Query จะทำงานเมื่อเรียกใช้ premium_books
  • เป็น "นิยามที่มีชื่อ" ของ query
CREATE MATERIALIZED VIEW premium_books AS
    SELECT
        title,
        author,
        avg_reviews
    FROM books
    WHERE price >= 25.00;
SELECT * FROM premium_books;
  • ผลลัพธ์จะถูกจัดเก็บทันทีหลังรัน
  • ประสิทธิภาพ query ดีกว่า แต่ต้องรีเฟรชข้อมูล
NoSQL เบื้องต้น

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

NoSQL เบื้องต้น

Preparing Video For Download...