Analysetrajecten voor kolomgeoriënteerde databases

Introductie tot NoSQL

Jake Roach

Data Engineer

Common table expressions met Snowflake

Common table expressions (CTE’s):

  • Benoemde subquery’s/tijdelijke tabellen, gedefinieerd met het WITH-keyword
  • Maakt een object dat later te bevragen is
  • Vermindert data die bevraagd en/of JOIN’d wordt
  • Meer modulair, makkelijker te 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
Introductie tot NoSQL

Common table expressions schrijven

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;
  • Tijdelijk object premium_books maken
  • premium_books downstream gebruiken

$$

Meerdere tijdelijke objecten maken kan:

WITH 
    <first-name> AS (...),
    <second-name> AS (...),
    ...
...
;
Introductie tot NoSQL

Views met Snowflake

Views:

  • Maakt queryresultaten toegankelijk als een tabel
  • Niet-gematerialiseerd en gematerialiseerd
CREATE VIEW <view-name> AS
  SELECT
      ...
  FROM <table-name>
  [WHERE | JOIN | ...];
Introductie tot NoSQL

Views maken met Snowflake

CREATE VIEW premium_books AS
    SELECT
        title,
        author,
        avg_reviews
    FROM books
    WHERE price >= 25.00;
SELECT * FROM premium_books;
  • Query wordt uitgevoerd wanneer premium_books wordt aangeroepen
  • "Benoemde definitie" van een query
CREATE MATERIALIZED VIEW premium_books AS
    SELECT
        title,
        author,
        avg_reviews
    FROM books
    WHERE price >= 25.00;
SELECT * FROM premium_books;
  • Resultaten worden opgeslagen bij uitvoering
  • Betere query-prestaties, vereist verversen
Introductie tot NoSQL

Laten we oefenen!

Introductie tot NoSQL

Preparing Video For Download...