Объекты данных 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 — основной контейнер для данных, содержащий схемы.
  • Схема: набор логических структур, включающих таблицы, представления и другие объекты.
  • Таблица: представление сущности в базе данных; базовая структура хранения данных, организованная по строкам и столбцам внутри схемы.
  • Представление (View): сохранённый запрос, который отображает данные как виртуальный объект без их отдельного хранения.
  • Материализованное представление (Materialized View): сохранённая версия представления, физически хранящая результат запроса для быстрого доступа.
Введение в моделирование данных в 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...