- 軟體名稱:Snowflake
- 支援語系:多國語言
- 支援系統:Windows,Mac,iOS,Android
- 官方網站:Snowflake
Snowflake 網頁版(Web)
這裡是完整的 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)
- 點左邊「Data」→ 選資料表 →
Load Data - 上傳 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 / Schema | USE WAREHOUSE my_wh;USE SCHEMA my_db.my_schema; |
| 查資料表 | SHOW TABLES; |
| 查欄位結構 | DESC TABLE sales; |
| 建 View | CREATE 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 模型(免離開資料庫) |
廣告


