Snowflake 資料物件

Snowflake 資料建模入門

Nuno Rocha

Director of Engineering

資料倉儲

資料倉儲示意

Snowflake 資料建模入門

傳統 vs. 虛擬倉儲

Snowflake 虛擬資料倉儲

Snowflake 資料建模入門

傳統 vs. 虛擬倉儲(1)

Snowflake 虛擬資料倉儲 vs. 傳統資料倉儲

Snowflake 資料建模入門

傳統 vs. 虛擬倉儲(2)

  • CREATE WAREHOUSE:Snowflake 子句,用來建立供資料處理工作的虛擬運算資源。
  • USE WAREHOUSE:Snowflake 子句,用來指定本次工作階段的使用中資料倉儲。

Snowflake 虛擬資料倉儲 vs. 傳統資料倉儲

Snowflake 資料建模入門

結構與資料表

資料庫、結構、資料表

Snowflake 資料建模入門

結構與資料表(1)

Snowflake 介面

Snowflake 資料建模入門

結構與資料表(2)

  • CREATE DATABASE:Snowflake 子句,用來建立新資料庫以組織資料物件。
  • CREATE SCHEMA:Snowflake 子句,用來定義容器以分組資料表與檢視。
  • CREATE TABLE:Snowflake 指令,用來在指定結構中建立新資料表與欄位。

Snowflake 介面:建立元素

Snowflake 資料建模入門

檢視

檢視視覺化

  • VIEWS(檢視)
    • 如同虛擬實體。
    • 避免資料重複。
    • 節省儲存空間並確保一致性。
    • 依查詢邏輯動態呈現資料。
Snowflake 資料建模入門

檢視(1)

  • 檢視範例:彙總客戶的緊急訂單
CREATE OR REPLACE VIEW customer_urgent_orders AS
SELECT c.c_name AS customer_name, 
    COUNT(DISTINCT o_orderkey) AS order_count,
    SUM(o_totalprice) AS total_price
FROM customer AS c
    JOIN orders AS o 
    ON c.c_custkey = o.o_custkey
WHERE o.o_orderpriority = '1-URGENT'
GROUP BY c.c_name;
ORDER BY total_price DESC;
Snowflake 資料建模入門

實體化檢視

預先計算的檢視

  • MATERIALIZED VIEWS(實體化檢視)
    • 儲存預先計算的結果。
    • 透過保留計算結果提升查詢效能。
    • 縮短查詢處理時間。
    • 維護可隨時擷取的更新快照。
    • 封裝複雜運算,簡化資料建模。
Snowflake 資料建模入門

實體化檢視(1)

CREATE OR REPLACE MATERIALIZED VIEW top_customers AS
SELECT o.o_custkey AS customer_id,
    c.c_name AS customer_name,
    CASE 
        WHEN SUM(o.o_totalprice) > 5000000 THEN 'Over Price'
        WHEN SUM(o.o_totalprice) > 3000000 THEN 'Top Price'
        WHEN SUM(o.o_totalprice) > 2000000 THEN 'Average Price'
        ELSE 'Review Price'
    END AS total_price
FROM customer AS c
    JOIN orders AS o ON c.c_custkey = o.o_custkey
GROUP BY o.o_custkey, c.c_name
HAVING total_price > 2000000;
Snowflake 資料建模入門

術語總覽

  • 資料倉儲(傳統):集中式系統,使用單一伺服器儲存並分析大量資料。
  • 虛擬資料倉儲(Snowflake):在雲端提供彈性可擴充的運算資源,專用於資料處理與分析。
  • Database:在 Snowflake 中,資料庫是主要容器,內含多個結構(schema)。
  • Schema:邏輯結構的集合,包含資料表、檢視等。
  • Table:資料庫中的實體;基本儲存結構,在結構中以列與欄組織。
  • View:已儲存的查詢,作為虛擬實體呈現資料,不另外儲存資料。
  • Materialized View:檢視的實體化版本,將查詢結果實際儲存以加速讀取。
Snowflake 資料建模入門

功能總覽

CREATE OR REPLACE WAREHOUSE data_warehouse_name;
USE WAREHOUSE data_warehouse_name;
CREATE OR REPLACE DATABASE database_name;
CREATE OR REPLACE SCHEMA schema_name;
CREATE OR REPLACE TABLE table_name(
    column_name datatype,
    other_columns datatype);
Snowflake 資料建模入門

檢視/實體化檢視範本

CREATE OR REPLACE VIEW view_name AS
SELECT column_name, 
    SUM(column_name2) AS sum_alias,
    CASE WHEN column_name5   condition   value THEN assigned_value
        ELSE another_assigned_value
    END AS case_alias
FROM table_name AS table_alias
    JOIN other_table AS other_alias ON table_alias.FK = other_alias.PK
    LEFT JOIN another_table AS another_alias ON table_alias.FK = other_alias.PK
GROUP BY column_name;
Snowflake 資料建模入門

一起來練習吧!

Snowflake 資料建模入門

Preparing Video For Download...