Snowflake schema rozšiřuje star schema normalizací dimenzních tabulek. Kategorie produktu se stává samostatnou tabulkou — šetří úložiště, ale přidává JOINy.
Normalizované dimenze¶
Dimenzní tabulky se normalizují do více úrovní. Diagram připomíná sněhovou vločku.
CREATE TABLE dim_product (
product_key INT PRIMARY KEY,
product_name VARCHAR(200),
category_key INT REFERENCES dim_category(category_key)
);
CREATE TABLE dim_category (
category_key INT PRIMARY KEY,
category_name VARCHAR(100),
department_key INT REFERENCES dim_department(department_key)
);
CREATE TABLE dim_department (
department_key INT PRIMARY KEY,
department_name VARCHAR(100)
);
Star vs Snowflake¶
- Star — rychlejší dotazy, méně JOINů
- Snowflake — méně redundance, velké dimenze
- Moderní warehouse — úložiště je levné, star je většinou lepší
Shrnutí¶
Snowflake schema šetří úložiště normalizací dimenzí. V moderních cloudových warehouse je star schema většinou preferováno.
snowflake schemanormalizacedata modelingwarehouse