Загрузка структурированных и полуструктурированных данных

Архитектура Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Рабочий процесс загрузки

Схема рабочего процесса загрузки: файлы поступают в stage и затем загружаются в Snowflake

  • Файлы помещаются в stage, затем выполняется COPY INTO для их загрузки
Архитектура Snowflake

Что такое Stage?

Stage = временное хранилище

Диаграмма «Что такое Stage» из Snowflake

Создание внутреннего stage

CREATE STAGE snowy_peak_stage;

Создание внешнего stage

CREATE STAGE my_s3_stage
  STORAGE_INTEGRATION = s3_int
  URL = 's3://snowy-peak-data/raw/';
Архитектура Snowflake

Загрузка данных в Snowflake

COPY INTO

  • Массовая загрузка из stage
  • Структурированные и полуструктурированные данные
  • Масштабируемость

INSERT

  • Подходит для небольшого числа строк без stage
  • Разовые добавления или незначительные изменения

Snowsight UI

  • Для нетехнических пользователей и разовых задач
Архитектура Snowflake

Просмотр содержимого stage с помощью LIST

snowflake_list_stage.png

Архитектура Snowflake

Загрузка структурированных данных с помощью COPY INTO

Запрос

CREATE OR REPLACE FILE FORMAT csv_format
  TYPE = CSV
  SKIP_HEADER = 1;

COPY INTO orders
FROM @snowy_peak_stage/orders.csv
FILE_FORMAT = (FORMAT_NAME = csv_format);
Архитектура Snowflake

Загрузка и запросы к полуструктурированным данным

Загрузка

JSON загружается в специальный тип столбца Snowflake — VARIANT.

CREATE TABLE events (raw_event VARIANT);

COPY INTO events
FROM @snowy_peak_stage/events.json
FILE_FORMAT = (TYPE = JSON);

Запросы

Для навигации по структуре JSON используйте нотацию с двоеточием.

SELECT 
raw_event:user_id::STRING AS user_id,
raw_event:event_type::STRING 
AS event_type
FROM events;
Архитектура Snowflake

Загрузка через интерфейс

Снимок экрана интерфейса Snowflake

Архитектура Snowflake

Давайте попрактикуемся!

Архитектура Snowflake

Preparing Video For Download...