Snowflake 中的数据建模入门
Nuno Rocha
Director of Engineering



CREATE WAREHOUSE:在 Snowflake 中创建用于数据处理的虚拟计算资源。USE WAREHOUSE:设置当前会话使用的数据仓库。


CREATE DATABASE:在 Snowflake 中创建用于组织数据对象的新数据库。CREATE SCHEMA:定义用于分组表和视图的容器。CREATE TABLE:在指定模式内创建表结构和列。

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;

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;
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);
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 中的数据建模入门