Przepływy pracy analitycznej dla baz kolumnowych

Wprowadzenie do NoSQL

Jake Roach

Data Engineer

Wspólne wyrażenia tabelowe w Snowflake

Wspólne wyrażenia tabelowe (CTE):

  • Nazwane podzapytania/tabele tymczasowe, definiowane za pomocą słowa kluczowego WITH
  • Tworzą obiekt, który można później odpytywać
  • Ograniczają ilość danych przetwarzanych i/lub łączonych przez JOIN
  • Bardziej modularne, łatwiejsze w diagnostyce
WITH <cte-name> AS (
    SELECT
        ....
    FROM <table-name>
    [JOIN | WHERE | ...]
)

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

Pisanie wspólnych wyrażeń tabelowych

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;
  • Tworzenie tymczasowego obiektu premium_books
  • Użycie premium_books w dalszej części zapytania

$$

Można tworzyć wiele obiektów tymczasowych:

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

Widoki w Snowflake

Widoki:

  • Umożliwiają dostęp do wyników zapytań jak do tabeli
  • Niematerializowane i materializowane
CREATE VIEW <view-name> AS
  SELECT
      ...
  FROM <table-name>
  [WHERE | JOIN | ...];
Wprowadzenie do NoSQL

Tworzenie widoków w Snowflake

CREATE VIEW premium_books AS
    SELECT
        title,
        author,
        avg_reviews
    FROM books
    WHERE price >= 25.00;
SELECT * FROM premium_books;
  • Zapytanie wykonuje się przy wywołaniu premium_books
  • „Nazwana definicja" zapytania
CREATE MATERIALIZED VIEW premium_books AS
    SELECT
        title,
        author,
        avg_reviews
    FROM books
    WHERE price >= 25.00;
SELECT * FROM premium_books;
  • Wyniki są zapisywane podczas wykonania
  • Lepsza wydajność zapytań, wymaga odświeżania
Wprowadzenie do NoSQL

Czas na ćwiczenia!

Wprowadzenie do NoSQL

Preparing Video For Download...