Аналітичні робочі процеси для колоноорієнтованих баз даних

Вступ до NoSQL

Jake Roach

Data Engineer

Common table expressions у Snowflake

Common table expressions (CTEs):

  • Іменовані підзапити/тимчасові таблиці, оголошені ключовим словом WITH
  • Створює об'єкт, до якого можна звертатися далі
  • Зменшують обсяг даних для запиту та/або JOIN
  • Більш модульні, легше налагоджувати
WITH <cte-name> AS (
    SELECT
        ....
    FROM <table-name>
    [JOIN | WHERE | ...]
)

SELECT
    ...
FROM <cte-name>;
1 https://docs.snowflake.com/en/user-guide/queries-cte
Вступ до NoSQL

Написання 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;
  • Створення тимчасового об'єкта premium_books
  • Використання premium_books далі в запиті

$$

Можна створювати кілька тимчасових об'єктів:

WITH 
    <first-name> AS (...),
    <second-name> AS (...),
    ...
...
;
Вступ до NoSQL

Подання у Snowflake

Подання (views):

  • Дають змогу звертатися до результатів запиту як до таблиці
  • Нематеріалізовані та матеріалізовані
CREATE VIEW <view-name> AS
  SELECT
      ...
  FROM <table-name>
  [WHERE | JOIN | ...];
Вступ до NoSQL

Створення подань у Snowflake

CREATE VIEW premium_books AS
    SELECT
        title,
        author,
        avg_reviews
    FROM books
    WHERE price >= 25.00;
SELECT * FROM premium_books;
  • Запит виконується, коли викликається premium_books
  • «Іменоване визначення» запиту
CREATE MATERIALIZED VIEW premium_books AS
    SELECT
        title,
        author,
        avg_reviews
    FROM books
    WHERE price >= 25.00;
SELECT * FROM premium_books;
  • Результати зберігаються під час виконання
  • Краща продуктивність запитів, потрібне оновлення
Вступ до NoSQL

Давайте потренуємось!

Вступ до NoSQL

Preparing Video For Download...