Вивантаження даних і підключення

Автоматизація конвеєрів даних у Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Сценарій вивантаження

Експорт даних у хмарне сховище

  • Не всі партнери мають доступ до Snowflake
  • COPY INTO пише результати прямо на стадію
  • Окремий пайплайн експорту не потрібен
    COPY INTO @harbr_partner_export/
    daily_summary/
    FROM (SELECT * FROM 
    logistics.shipment_summary
    WHERE export_date = 
    CURRENT_DATE() - 1);
    

 

 

mermaid: вивантаження Snowflake у сховище партнера

Автоматизація конвеєрів даних у Snowflake

COPY INTO

COPY INTO @harbr_partner_export/shipment_summary/
FROM (
  SELECT shipment_id,
         origin,
         destination,
         delivery_status,
         delivery_time_hours
  FROM logistics.shipments
  WHERE delivery_date = CURRENT_DATE()
)
FILE_FORMAT = (TYPE = 'CSV' HEADER = TRUE)
OVERWRITE = TRUE;
Автоматизація конвеєрів даних у Snowflake

Формати файлів для експорту

 

Формат Найкраще для
CSV Універсальний — майже всі системи його читають; ідеально для експорту партнерам
JSON Зберігає вкладені структури; корисний для споживачів напівструктурованих даних
Parquet Великі аналітичні набори; колонарне стиснення = менші файли, швидше читання

Ключові опції вивантаження

-- Розбити великі експорти на кілька файлів (байти)
HEADER = TRUE              -- включити імена стовпців у перший рядок
OVERWRITE = TRUE           -- замінити наявні файли за шляхом
MAX_FILE_SIZE = 104857600  -- 100 MB на вихідний файл
Автоматизація конвеєрів даних у Snowflake

Ландшафт підключень

Ландшафт підключень конекторів

Автоматизація конвеєрів даних у Snowflake

Конектори Kafka і Spark

Конектор Kafka

  • Топіки стрімляться напряму в таблиці Snowflake
  • Без файлів і стадій — використано Snowpipe Streaming
  • Затримка — секунди
# connector.properties (Kafka settings)
snowflake.topic2table.map=events:
delivery_events
snowflake.ingestion.method=
SNOWPIPE_STREAMING

Конектор Spark

  • Інтегрується з DataFrame API Spark
  • Джоби Spark читають і пишуть у Snowflake
  • Підтримує великомасштабні трансформації
// Read from Snowflake into a Spark DataFrame
val df = spark.read.format("snowflake")
  .options(sfOptions).option("dbtable", 
    "shipments").load()
Автоматизація конвеєрів даних у Snowflake

JDBC/ODBC та інтеграції з партнерами

Універсальні підключення

Інтеграція Тип Використання в Harbr
JDBC / ODBC Універсальні драйвери BI-інструменти (Tableau, Power BI, Looker) — прямі запити
Python Connector Рідний драйвер Python Конвеєри даних, планові ETL, DS-процеси
dbt SQL-трансформації Запуск моделей безпосередньо в обчисленнях Snowflake
Fivetran / Airbyte Кероване завантаження Джерела SaaS → Snowflake, без кастомного коду
Автоматизація конвеєрів даних у Snowflake

¡Vamos a practicar!

Автоматизація конвеєрів даних у Snowflake

Preparing Video For Download...