Snowflake-Datenobjekte

Einführung in das Data Modeling in Snowflake

Nuno Rocha

Director of Engineering

Data Warehouse

Darstellung eines Data Warehouse

Einführung in das Data Modeling in Snowflake

Klassisch vs. virtuell

Snowflake Virtual Data Warehouse

Einführung in das Data Modeling in Snowflake

Klassisch vs. virtuell (1)

Snowflake Virtual Data Warehouse vs. traditionelles Data Warehouse

Einführung in das Data Modeling in Snowflake

Klassisch vs. virtuell (2)

  • CREATE WAREHOUSE: Snowflake-Klausel, die eine virtuelle Rechenressource für Datenverarbeitung einrichtet.
  • USE WAREHOUSE: Snowflake-Klausel, die das aktive Warehouse für die aktuelle Sitzung setzt.

Snowflake Virtual Data Warehouse vs. traditionelles Data Warehouse

Einführung in das Data Modeling in Snowflake

Schemas und Tabellen

Datenbank, Schemas, Tabellen

Einführung in das Data Modeling in Snowflake

Schemas und Tabellen (1)

Snowflake-UI

Einführung in das Data Modeling in Snowflake

Schemas und Tabellen (2)

  • CREATE DATABASE: Snowflake-Klausel zum Erstellen einer neuen Datenbank zur Organisation von Datenobjekten.
  • CREATE SCHEMA: Snowflake-Klausel zum Definieren eines Containers zum Gruppieren von Tabellen und Views.
  • CREATE TABLE: Snowflake-Befehl zum Anlegen einer neuen Tabellenstruktur und Datenspalten in einem Schema.

Snowflake-UI, Elemente erstellen

Einführung in das Data Modeling in Snowflake

Views

View-Visualisierung

  • VIEWS:
    • Verhält sich wie ein virtuelles Objekt.
    • Vermeidet doppelte Daten.
    • Spart Speicher und hält Daten konsistent.
    • Zeigt Daten dynamisch basierend auf der Abfragelogik.
Einführung in das Data Modeling in Snowflake

Views (1)

  • Beispiel-View, die dringende Bestellungen von Kund:innen zusammenfasst
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;
Einführung in das Data Modeling in Snowflake

Materialized Views

Vorberechnete View

  • MATERIALIZED VIEWS:
    • Speichern vorab berechnete Ergebnisse.
    • Beschleunigen Abfragen durch gespeicherte Berechnungen.
    • Verringern die Verarbeitungszeit.
    • Halten einen aktualisierten Datensnapshot zur jederzeitigen Abfrage vor.
    • Kapseln komplexe Logik für schlankeres Datenmodellieren.
Einführung in das Data Modeling 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;
Einführung in das Data Modeling in Snowflake

Begriffsübersicht

  • Data Warehouse (klassisch): Zentrales System zum Speichern und Analysieren großer Datenmengen auf einem einzelnen Server.
  • Virtuelles Data Warehouse (in Snowflake): Flexible, skalierbare Cloud-Rechenressourcen speziell für Datenverarbeitung und -analyse.
  • Database: In Snowflake der primäre Container für Daten; enthält Schemas.
  • Schema: Sammlung logischer Strukturen, die Tabellen, Views usw. enthalten.
  • Table: Darstellung einer Entität in der Datenbank; grundlegende Speicherstruktur in Zeilen und Spalten innerhalb von Schemas.
  • View: Gespeicherte Abfrage, die Daten virtuell darstellt, ohne sie separat zu speichern.
  • Materialized View: Gespeicherte Version einer View, die das Abfrageergebnis physisch hält für schnelleren Zugriff.
Einführung in das Data Modeling in Snowflake

Funktionsübersicht

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);
Einführung in das Data Modeling in Snowflake

Vorlagenbeispiel für (materialisierte) Views

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;
Einführung in das Data Modeling in Snowflake

Lass uns üben!

Einführung in das Data Modeling in Snowflake

Preparing Video For Download...