Analyse-Workflows für spaltenorientierte Datenbanken

Einführung in NoSQL

Jake Roach

Data Engineer

Common Table Expressions mit Snowflake

Common Table Expressions (CTEs):

  • Benannte Unterabfragen/temporäre Tabellen, definiert mit dem Schlüsselwort WITH
  • Erstellt ein Objekt, das später abgefragt werden kann
  • Verringern die Datenmenge, die abgefragt und/oder per JOIN verknüpft wird
  • Modularer, leichter zu debuggen
WITH <cte-name> AS (
    SELECT
        ....
    FROM <table-name>
    [JOIN | WHERE | ...]
)

SELECT
    ...
FROM <cte-name>;
1 https://docs.snowflake.com/en/user-guide/queries-cte
Einführung in NoSQL

Common Table Expressions schreiben

WITH premium_books AS (
    SELECT
        title,
        author,
        avg_reviews
    FROM books
    WHERE price > 25.00
)
SELECT
    author,
    MIN(avg_reviews) AS min_avg_reviews,
    MAX(avg_reviews) AS max_avg_reviews
FROM premium_books
GROUP BY author;
  • Erstellen eines temporären Objekts premium_books
  • premium_books weiter unten verwenden

$$

Mehrere temporäre Objekte erstellen:

WITH 
    <first-name> AS (...),
    <second-name> AS (...),
    ...
...
;
Einführung in NoSQL

Views mit Snowflake

Views:

  • Erlauben den Zugriff auf Abfrageergebnisse wie auf eine Tabelle
  • Nicht-materialisiert und materialisiert
CREATE VIEW <view-name> AS
  SELECT
      ...
  FROM <table-name>
  [WHERE | JOIN | ...];
Einführung in NoSQL

Views in Snowflake erstellen

CREATE VIEW premium_books AS
    SELECT
        title,
        author,
        avg_reviews
    FROM books
    WHERE price >= 25.00;
SELECT * FROM premium_books;
  • Abfrage läuft, wenn premium_books aufgerufen wird
  • „Benannte Definition" einer Abfrage
CREATE MATERIALIZED VIEW premium_books AS
    SELECT
        title,
        author,
        avg_reviews
    FROM books
    WHERE price >= 25.00;
SELECT * FROM premium_books;
  • Ergebnisse werden bei der Ausführung gespeichert
  • Schnellere Abfragen, erfordert Aktualisierung
Einführung in NoSQL

Lass uns üben!

Einführung in NoSQL

Preparing Video For Download...