Snowflake-gegevensobjecten

Introductie tot datamodellering in Snowflake

Nuno Rocha

Director of Engineering

Datawarehouse

Weergave van datawarehouse

Introductie tot datamodellering in Snowflake

Traditioneel vs. virtueel warehouse

Snowflake virtueel datawarehouse

Introductie tot datamodellering in Snowflake

Traditioneel vs. virtueel warehouse (1)

Snowflake virtueel datawarehouse vs. traditioneel datawarehouse

Introductie tot datamodellering in Snowflake

Traditioneel vs. virtueel warehouse (2)

  • CREATE WAREHOUSE: Snowflake-clausule die een virtuele compute-resource aanmaakt voor dataverwerking.
  • USE WAREHOUSE: Snowflake-clausule die het actieve warehouse voor je sessie instelt.

Snowflake virtueel datawarehouse vs. traditioneel datawarehouse

Introductie tot datamodellering in Snowflake

Schema's en tabellen

Database, schema's, tabellen

Introductie tot datamodellering in Snowflake

Schema's en tabellen (1)

Snowflake-UI

Introductie tot datamodellering in Snowflake

Schema's en tabellen (2)

  • CREATE DATABASE: Snowflake-clausule om een nieuwe database te maken voor het organiseren van gegevensobjecten.
  • CREATE SCHEMA: Snowflake-clausule om een container te definiëren voor het groeperen van tabellen en views.
  • CREATE TABLE: Snowflake-commando om binnen een schema een nieuwe tabelstructuur met kolommen te maken.

Snowflake-UI, elementen maken

Introductie tot datamodellering in Snowflake

Views

Visualisatie van view

  • VIEWS:
    • Werken als een virtuele entiteit.
    • Voorkomen dubbele data.
    • Besparen opslag en bewaken consistentie.
    • Tonen data dynamisch op basis van querylogica.
Introductie tot datamodellering in Snowflake

Views (1)

  • Voorbeeld-VIEW die urgente bestellingen per klant samenvat
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;
Introductie tot datamodellering in Snowflake

Materialized views

Vooraf berekende view

  • MATERIALIZED VIEWS:
    • Slaan vooraf berekende resultaten op.
    • Versnellen queries door berekende operaties te bewaren.
    • Verkorten verwerkingstijd.
    • Houden een ververst datasnapshot paraat.
    • Bundelen complexe logica voor eenvoudiger datamodellering.
Introductie tot datamodellering in Snowflake

Materialized views (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;
Introductie tot datamodellering in Snowflake

Overzicht terminologie

  • Datawarehouse (traditioneel): Gecentraliseerd systeem op één server voor opslag en analyse van veel data.
  • Virtueel datawarehouse (in Snowflake): Flexibele, schaalbare cloud-compute voor het verwerken en analyseren van data.
  • Database: In Snowflake de bovenste container voor data, met schema's erin.
  • Schema: Verzameling logische structuren met tabellen, views, enz.
  • Table: Weergave van een entiteit in de database; basisopslag in rijen en kolommen binnen schema's.
  • View: Opgeslagen query die data virtueel toont zonder aparte opslag.
  • Materialized View: Opgeslagen versie van een view die het queryresultaat fysiek bewaart voor snellere toegang.
Introductie tot datamodellering in Snowflake

Overzicht functies

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);
Introductie tot datamodellering in Snowflake

Voorbeeldsjabloon (materialized) view

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;
Introductie tot datamodellering in Snowflake

Laten we oefenen!

Introductie tot datamodellering in Snowflake

Preparing Video For Download...