Fluxuri analitice pentru baze de date orientate pe coloane

Introducere în NoSQL

Jake Roach

Data Engineer

Expresii de tabel comune în Snowflake

Expresii de tabel comune (CTE):

  • Sub-interogări/tabele temporare denumite, definite cu cuvântul cheie WITH
  • Creează un obiect care poate fi interogat ulterior
  • Reduc volumul de date interogate și/sau unite prin JOIN
  • Mai modulare, mai ușor de depanare
WITH <cte-name> AS (
    SELECT
        ....
    FROM <table-name>
    [JOIN | WHERE | ...]
)

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

Scrierea expresiilor de tabel comune

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;
  • Crearea unui obiect temporar premium_books
  • Utilizarea premium_books în aval

$$

Posibilitate de a crea mai multe obiecte temporare:

WITH 
    <first-name> AS (...),
    <second-name> AS (...),
    ...
...
;
Introducere în NoSQL

Vizualizări în Snowflake

Vizualizări:

  • Permit accesarea rezultatelor interogărilor ca un tabel
  • Nematerializate și materializate
CREATE VIEW <view-name> AS
  SELECT
      ...
  FROM <table-name>
  [WHERE | JOIN | ...];
Introducere în NoSQL

Crearea vizualizărilor în Snowflake

CREATE VIEW premium_books AS
    SELECT
        title,
        author,
        avg_reviews
    FROM books
    WHERE price >= 25.00;
SELECT * FROM premium_books;
  • Interogarea se execută la apelarea premium_books
  • „Definiție denumită" a unei interogări
CREATE MATERIALIZED VIEW premium_books AS
    SELECT
        title,
        author,
        avg_reviews
    FROM books
    WHERE price >= 25.00;
SELECT * FROM premium_books;
  • Rezultatele sunt stocate la execuție
  • Performanță mai bună, necesită reîmprospătare
Introducere în NoSQL

Să exersăm!

Introducere în NoSQL

Preparing Video For Download...