廣告

Snowflake – 雲端資料倉儲平台

  • 軟體名稱:Snowflake
  • 支援語系:多國語言
  • 支援系統:Windows,Mac,iOS,Android
  • 官方網站:Snowflake

這裡是完整的 Snowflake 教學指南,適合初學者與資料工程師快速上手,從帳號註冊、查詢語法、資料載入,到與 BI 工具整合。


❄️ Snowflake 是什麼?

Snowflake 是一個雲端資料倉儲平台,支援多雲架構(AWS、Azure、GCP),特色包括:

  • 彈性儲存與計算分離(儲存大、算力獨立調整)
  • 支援標準 SQL 查詢語法
  • 原生支援結構化與半結構化資料(如 JSON、Parquet)
  • 自動伸縮與高並發查詢處理
  • 與 BI 工具(如 Tableau、Looker)整合容易

🪜 教學:5 步驟快速上手 Snowflake


1️⃣ 註冊帳號與登入

👉 前往 https://signup.snowflake.com/
註冊免費帳號(有 30 天免費額度)
登入後可看到 Web UI(Classic Console 或 Snowsight)


2️⃣ 界面介紹與重要概念

名稱功能說明
Warehouse處理 SQL 查詢的計算資源(可自動暫停)
Database儲存資料的邏輯集合
Schema資料表的分組(類似命名空間)
Table / View儲存實體資料或虛擬查詢結果
Worksheet撰寫 SQL 查詢的工作區

3️⃣ 建立基本物件(SQL 示範)

✅ 建立 Warehouse(計算資源)

CREATE WAREHOUSE my_wh WITH
  WAREHOUSE_SIZE = 'XSMALL'
  AUTO_SUSPEND = 300
  AUTO_RESUME = TRUE;

✅ 建立 Database 與 Schema

CREATE DATABASE my_db;
CREATE SCHEMA my_db.my_schema;

✅ 建立資料表並插入資料

USE SCHEMA my_db.my_schema;

CREATE TABLE sales (
  id INT,
  product STRING,
  amount FLOAT
);

INSERT INTO sales VALUES
  (1, 'A', 100.0),
  (2, 'B', 150.5),
  (3, 'A', 200.0);

✅ 查詢資料

SELECT product, SUM(amount) AS total
FROM sales
GROUP BY product;

4️⃣ 載入資料(CSV / JSON / Parquet)

方法 1:從本地檔案上傳(UI)

  1. 點左邊「Data」→ 選資料表 → Load Data
  2. 上傳 CSV 檔 → 自動對應欄位 → 載入

方法 2:用 SQL + Stage

-- 建立 Stage 儲存區(類似中繼站)
CREATE OR REPLACE STAGE my_stage;

-- 上傳檔案(在 UI 的 Stage 管理器)
-- 接著載入到表格
COPY INTO sales
FROM @my_stage/sales.csv
FILE_FORMAT = (TYPE = 'CSV', FIELD_OPTIONALLY_ENCLOSED_BY = '"');

Snowflake 也支援從 AWS S3、Azure Blob Storage 載入大量檔案。


5️⃣ 使用半結構化資料(JSON)

CREATE TABLE events (raw VARIANT);

INSERT INTO events VALUES
  (PARSE_JSON('{"user":"Tom", "action":"click", "ts": "2024-01-01"}'));

SELECT raw:user, raw:action
FROM events;

❄️ Snowflake 的 VARIANT 欄位可以存 JSON、Avro、Parquet 等格式,非常靈活。


📊 與 BI 工具整合(Tableau / Power BI / Looker)

  • Snowflake 支援 ODBC / JDBC、以及 Python、R、Spark、dbt 等開發整合
  • 在 BI 工具中:
    • 新增資料來源 → 選擇「Snowflake」
    • 輸入帳號、warehouse、database、schema
    • 開始查詢資料

🧠 常用 SQL 語法整理

功能指令
使用 Warehouse / SchemaUSE WAREHOUSE my_wh;USE SCHEMA my_db.my_schema;
查資料表SHOW TABLES;
查欄位結構DESC TABLE sales;
建 ViewCREATE VIEW top_sales AS SELECT * FROM sales WHERE amount > 100;
刪除表格DROP TABLE sales;

📦 進階主題預告

主題說明
❄️ Snowpipe自動串流資料載入
🔁 Task & Stream做 ETL 時序作業與資料變更擷取(CDC)
📈 Materialized View加速查詢效能
🧱 dbt + Snowflake用 dbt 架構你的資料倉
🤖 Python / Snowpark在 Snowflake 裡直接跑 Python ML 模型(免離開資料庫)

 

廣告

Leave a Reply

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *