Snowflakes dataobjekt

Introduktion till datamodellering i Snowflake

Nuno Rocha

Director of Engineering

Datalager

Illustration av ett datalager

Introduktion till datamodellering i Snowflake

Traditionellt vs. virtuellt datalager

Snowflakes virtuella datalager

Introduktion till datamodellering i Snowflake

Traditionellt vs. virtuellt datalager (1)

Snowflakes virtuella datalager vs. traditionellt datalager

Introduktion till datamodellering i Snowflake

Traditionellt vs. virtuellt datalager (2)

  • CREATE WAREHOUSE: Snowflake-sats som skapar en virtuell beräkningsresurs för databearbetning.
  • USE WAREHOUSE: Snowflake-sats som anger det aktiva datalagret för den aktuella sessionen.

Snowflakes virtuella datalager vs. traditionellt datalager

Introduktion till datamodellering i Snowflake

Scheman och tabeller

Databas, scheman och tabeller

Introduktion till datamodellering i Snowflake

Scheman och tabeller (1)

Snowflakes användargränssnitt

Introduktion till datamodellering i Snowflake

Scheman och tabeller (2)

  • CREATE DATABASE: Snowflake-sats för att skapa en ny databas för att organisera dataobjekt.
  • CREATE SCHEMA: Snowflake-sats för att definiera en behållare som grupperar tabeller och vyer.
  • CREATE TABLE: Snowflake-kommando för att skapa en ny tabellstruktur med datakolumner inom ett angivet schema.

Snowflakes användargränssnitt – skapa element

Introduktion till datamodellering i Snowflake

Vyer

Visualisering av vyer

  • VIEWS:
    • Fungerar som en virtuell entitet.
    • Undviker dataduplicering.
    • Sparar lagringsutrymme och säkerställer datakonsistens.
    • Presenterar data dynamiskt baserat på frågelogik.
Introduktion till datamodellering i Snowflake

Vyer (1)

  • Exempel på VIEW som sammanfattar kunders brådskande ordrar
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;
Introduktion till datamodellering i Snowflake

Materialiserade vyer

Förberäknad vy

  • MATERIALIZED VIEWS:
    • Lagrar förberäknade resultat.
    • Förbättrar frågeprestanda genom att spara beräknade operationer.
    • Minskar bearbetningstiden för frågor.
    • Håller en uppdaterad dataögonblicksbild tillgänglig när som helst.
    • Kapslar in komplexa operationer för effektiv datamodellering.
Introduktion till datamodellering i Snowflake

Materialiserade vyer (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;
Introduktion till datamodellering i Snowflake

Begreppsöversikt

  • Datalager (traditionellt): Ett centraliserat system för lagring och analys av stora datamängder med hjälp av en enda server.
  • Virtuellt datalager (i Snowflake): En flexibel och skalbar uppsättning molnbaserade beräkningsresurser som används specifikt för att bearbeta och analysera data.
  • Databas: I Snowflake är databasen den primära behållaren för data och innehåller scheman.
  • Schema: En samling logiska strukturer som innehåller tabeller, vyer och liknande objekt.
  • Tabell: Representation av en entitet i databasen; grundläggande lagringsstruktur organiserad i rader och kolumner inom ett schema.
  • Vy: En sparad fråga som presenterar data som en virtuell entitet utan att lagra datan separat.
  • Materialiserad vy: En lagrad version av en vy som fysiskt sparar frågeresultatet för snabbare åtkomst.
Introduktion till datamodellering i Snowflake

Funktionsöversikt

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);
Introduktion till datamodellering i Snowflake

Exempelmall för (materialiserad) vy

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;
Introduktion till datamodellering i Snowflake

Nu kör vi en övning!

Introduktion till datamodellering i Snowflake

Preparing Video For Download...