Workflow di analytics per database orientati alle colonne

Introduzione ai database NoSQL

Jake Roach

Data Engineer

Common table expressions con Snowflake

Common table expressions (CTE):

  • Sottoquery/tabelle temporanee con nome, definite con la parola chiave WITH
  • Crea un oggetto che potrai interrogare dopo
  • Riduce i dati interrogati e/o uniti con JOIN
  • Più modulare, più facile da diagnosticare
WITH <cte-name> AS (
    SELECT
        ....
    FROM <table-name>
    [JOIN | WHERE | ...]
)

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

Scrivere 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;
  • Creazione di un oggetto temporaneo premium_books
  • Uso di premium_books a valle

$$

Si possono creare più oggetti temporanei:

WITH 
    <first-name> AS (...),
    <second-name> AS (...),
    ...
...
;
Introduzione ai database NoSQL

View con Snowflake

View:

  • Permettono di accedere ai risultati di query come a una tabella
  • Non materializzate e materializzate
CREATE VIEW <view-name> AS
  SELECT
      ...
  FROM <table-name>
  [WHERE | JOIN | ...];
Introduzione ai database NoSQL

Creare view con Snowflake

CREATE VIEW premium_books AS
    SELECT
        title,
        author,
        avg_reviews
    FROM books
    WHERE price >= 25.00;
SELECT * FROM premium_books;
  • La query viene eseguita quando richiami premium_books
  • "Definizione con nome" di una query
CREATE MATERIALIZED VIEW premium_books AS
    SELECT
        title,
        author,
        avg_reviews
    FROM books
    WHERE price >= 25.00;
SELECT * FROM premium_books;
  • I risultati vengono memorizzati all'esecuzione
  • Prestazioni migliori, richiede aggiornamenti
Introduzione ai database NoSQL

Esercitiamoci!

Introduzione ai database NoSQL

Preparing Video For Download...