Analysarbetsflöden för kolumnorienterade databaser

Introduktion till NoSQL

Jake Roach

Data Engineer

Common table expressions i Snowflake

Common table expressions (CTE:er):

  • Namngivna underfrågor/temporära tabeller, definierade med nyckelordet WITH
  • Skapar ett objekt som kan användas i senare frågor
  • Minskar mängden data som frågas och/eller JOIN:as
  • Mer modulärt och enklare att felsöka
WITH <cte-name> AS (
    SELECT
        ....
    FROM <table-name>
    [JOIN | WHERE | ...]
)

SELECT
    ...
FROM <cte-name>;
1 https://docs.snowflake.com/en/user-guide/queries-cte
Introduktion till NoSQL

Skriva common table expressions

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;
  • Skapar ett temporärt objekt premium_books
  • Använder premium_books i ett senare steg

$$

Det går att skapa flera temporära objekt:

WITH 
    <first-name> AS (...),
    <second-name> AS (...),
    ...
...
;
Introduktion till NoSQL

Vyer i Snowflake

Vyer:

  • Ger åtkomst till frågeresultat som om de vore en tabell
  • Icke-materialiserade och materialiserade
CREATE VIEW <view-name> AS
  SELECT
      ...
  FROM <table-name>
  [WHERE | JOIN | ...];
Introduktion till NoSQL

Skapa vyer i Snowflake

CREATE VIEW premium_books AS
    SELECT
        title,
        author,
        avg_reviews
    FROM books
    WHERE price >= 25.00;
SELECT * FROM premium_books;
  • Frågan körs när premium_books anropas
  • "Namngiven definition" av en fråga
CREATE MATERIALIZED VIEW premium_books AS
    SELECT
        title,
        author,
        avg_reviews
    FROM books
    WHERE price >= 25.00;
SELECT * FROM premium_books;
  • Resultaten lagras vid körning
  • Bättre frågeprestanda, men kräver uppdatering
Introduktion till NoSQL

Nu kör vi en övning!

Introduktion till NoSQL

Preparing Video For Download...