Analytické pracovní postupy pro sloupcově orientované databáze

Úvod do NoSQL

Jake Roach

Data Engineer

Společné tabulkové výrazy ve Snowflake

Společné tabulkové výrazy (CTE):

  • Pojmenované poddotazy/dočasné tabulky definované klíčovým slovem WITH
  • Vytváří objekt, na který lze následně dotazovat
  • Omezují množství dotazovaných nebo spojovaných (JOIN) dat
  • Modulárnější, snazší ladění
WITH <cte-name> AS (
    SELECT
        ....
    FROM <table-name>
    [JOIN | WHERE | ...]
)

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

Psaní společných tabulkových výrazů

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;
  • Vytvoření dočasného objektu premium_books
  • Použití premium_books v navazujících dotazech

$$

Možnost vytvoření více dočasných objektů:

WITH 
    <first-name> AS (...),
    <second-name> AS (...),
    ...
...
;
Úvod do NoSQL

Pohledy ve Snowflake

Pohledy (Views):

  • Umožňují přistupovat k výsledkům dotazů jako k tabulce
  • Nematerializované a materializované
CREATE VIEW <view-name> AS
  SELECT
      ...
  FROM <table-name>
  [WHERE | JOIN | ...];
Úvod do NoSQL

Vytváření pohledů ve Snowflake

CREATE VIEW premium_books AS
    SELECT
        title,
        author,
        avg_reviews
    FROM books
    WHERE price >= 25.00;
SELECT * FROM premium_books;
  • Dotaz se spustí při volání premium_books
  • „Pojmenovaná definice" dotazu
CREATE MATERIALIZED VIEW premium_books AS
    SELECT
        title,
        author,
        avg_reviews
    FROM books
    WHERE price >= 25.00;
SELECT * FROM premium_books;
  • Výsledky jsou uloženy při spuštění
  • Lepší výkon dotazů, vyžaduje obnovení
Úvod do NoSQL

Pojďme cvičit!

Úvod do NoSQL

Preparing Video For Download...