Об'єкти даних Snowflake

Вступ до моделювання даних у Snowflake

Nuno Rocha

Director of Engineering

Сховище даних

Схематичне подання сховища даних

Вступ до моделювання даних у Snowflake

Традиційне vs віртуальне сховище

Віртуальне сховище даних Snowflake

Вступ до моделювання даних у Snowflake

Традиційне vs віртуальне сховище (1)

Віртуальне сховище даних Snowflake vs традиційне сховище даних

Вступ до моделювання даних у Snowflake

Традиційне vs віртуальне сховище (2)

  • CREATE WAREHOUSE: оператор Snowflake для створення віртуального обчислювального ресурсу для обробки даних.
  • USE WAREHOUSE: оператор Snowflake для вибору активного сховища даних у поточній сесії.

Віртуальне сховище даних Snowflake vs традиційне сховище даних

Вступ до моделювання даних у Snowflake

Схеми й таблиці

База даних, схеми, таблиці

Вступ до моделювання даних у Snowflake

Схеми й таблиці (1)

Інтерфейс Snowflake

Вступ до моделювання даних у Snowflake

Схеми й таблиці (2)

  • CREATE DATABASE: оператор Snowflake для створення нової бази даних для організації об'єктів.
  • CREATE SCHEMA: оператор Snowflake для визначення контейнера групування таблиць і подань.
  • CREATE TABLE: команда Snowflake для створення структури таблиці та стовпців у вказаній схемі.

Інтерфейс Snowflake, створення елементів

Вступ до моделювання даних у Snowflake

Подання

Візуалізація подання

  • VIEWS:
    • Працюють як віртуальна сутність.
    • Уникають дублювання даних.
    • Економлять місце та забезпечують узгодженість.
    • Динамічно показують дані за логікою запиту.
Вступ до моделювання даних у Snowflake

Подання (1)

  • Приклад VIEW, що підсумовує термінові замовлення клієнтів
CREATE OR REPLACE VIEW customer_urgent_orders AS
SELECT c.c_name AS customer_name, 
    COUNT(DISTINCT o_orderkey) AS order_count,
    SUM(o_totalprice) AS total_price
FROM customer AS c
    JOIN orders AS o 
    ON c.c_custkey = o.o_custkey
WHERE o.o_orderpriority = '1-URGENT'
GROUP BY c.c_name;
ORDER BY total_price DESC;
Вступ до моделювання даних у Snowflake

Матеріалізовані подання

Попередньо обчислене подання

  • MATERIALIZED VIEWS:
    • Зберігають попередньо обчислені результати.
    • Прискорюють запити завдяки збереженим обчисленням.
    • Скорочують час обробки запитів.
    • Підтримують оновлений знімок даних для швидкого доступу.
    • Інкапсулюють складні операції для спрощення моделювання даних.
Вступ до моделювання даних у Snowflake

Матеріалізовані подання (1)

CREATE OR REPLACE MATERIALIZED VIEW top_customers AS
SELECT o.o_custkey AS customer_id,
    c.c_name AS customer_name,
    CASE 
        WHEN SUM(o.o_totalprice) > 5000000 THEN 'Over Price'
        WHEN SUM(o.o_totalprice) > 3000000 THEN 'Top Price'
        WHEN SUM(o.o_totalprice) > 2000000 THEN 'Average Price'
        ELSE 'Review Price'
    END AS total_price
FROM customer AS c
    JOIN orders AS o ON c.c_custkey = o.o_custkey
GROUP BY o.o_custkey, c.c_name
HAVING total_price > 2000000;
Вступ до моделювання даних у Snowflake

Огляд термінів

  • Сховище даних (традиційне): централізована система для зберігання й аналізу великих обсягів даних на одному сервері.
  • Віртуальне сховище даних (у Snowflake): гнучкий, масштабований набір хмарних обчислювальних ресурсів для обробки й аналізу даних.
  • База даних: у Snowflake це головний контейнер даних, що містить схеми.
  • Схема: набір логічних структур, які містять таблиці, подання тощо.
  • Таблиця: подання сутності в базі даних; основна структура зберігання, організована у рядки й стовпці в межах схем.
  • Подання: збережений запит, що показує дані як віртуальну сутність без окремого зберігання.
  • Матеріалізоване подання: збережена версія подання, що фізично зберігає результат запиту для швидшого доступу.
Вступ до моделювання даних у Snowflake

Огляд функцій

CREATE OR REPLACE WAREHOUSE data_warehouse_name;
USE WAREHOUSE data_warehouse_name;
CREATE OR REPLACE DATABASE database_name;
CREATE OR REPLACE SCHEMA schema_name;
CREATE OR REPLACE TABLE table_name(
    column_name datatype,
    other_columns datatype);
Вступ до моделювання даних у Snowflake

Шаблон прикладового (матеріалізованого) подання

CREATE OR REPLACE VIEW view_name AS
SELECT column_name, 
    SUM(column_name2) AS sum_alias,
    CASE WHEN column_name5   condition   value THEN assigned_value
        ELSE another_assigned_value
    END AS case_alias
FROM table_name AS table_alias
    JOIN other_table AS other_alias ON table_alias.FK = other_alias.PK
    LEFT JOIN another_table AS another_alias ON table_alias.FK = other_alias.PK
GROUP BY column_name;
Вступ до моделювання даних у Snowflake

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

Вступ до моделювання даних у Snowflake

Preparing Video For Download...