Wyładowywanie danych i łączność

Automatyzacja potoków danych w Snowflake

Emily Melhuish

Technical Curriculum Developer, Snowflake

Przypadek użycia: wyładowywanie danych

Eksportowanie danych do chmury

  • Nie wszyscy partnerzy mają dostęp do Snowflake
  • COPY INTO zapisuje wyniki bezpośrednio na etap
  • Nie wymaga oddzielnego potoku eksportu
    COPY INTO @harbr_partner_export/
    daily_summary/
    FROM (SELECT * FROM 
    logistics.shipment_summary
    WHERE export_date = 
    CURRENT_DATE() - 1);
    

 

 

diagram: wyładowywanie danych Snowflake do magazynu partnera

Automatyzacja potoków danych w 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;
Automatyzacja potoków danych w Snowflake

Opcje formatu pliku eksportu

 

Format Najlepszy do
CSV Uniwersalny – obsługiwany przez niemal każdy system; idealny do eksportu dla partnerów
JSON Zachowuje struktury zagnieżdżone; przydatny dla odbiorców danych półustrukturyzowanych
Parquet Duże zbiory analityczne; kompresja kolumnowa = mniejsze pliki, szybszy odczyt

Kluczowe opcje wyładowywania

-- Split large exports across multiple files (bytes)
HEADER = TRUE              -- include column names in first row
OVERWRITE = TRUE           -- replace any existing files at that path
MAX_FILE_SIZE = 104857600  -- 100 MB per output file
Automatyzacja potoków danych w Snowflake

Krajobraz łączności

Krajobraz łączności – konektory

Automatyzacja potoków danych w Snowflake

Konektory Kafka i Spark

Konektor Kafka

  • Tematy przesyłane strumieniowo bezpośrednio do tabel Snowflake
  • Bez plików, bez etapów — używa Snowpipe Streaming
  • Opóźnienie mierzone w sekundach
# connector.properties (Kafka settings)
snowflake.topic2table.map=events:
delivery_events
snowflake.ingestion.method=
SNOWPIPE_STREAMING

Konektor Spark

  • Integruje się z DataFrame API Spark
  • Zadania Spark odczytują i zapisują dane w Snowflake
  • Obsługuje zadania transformacji na dużą skalę
// Read from Snowflake into a Spark DataFrame
val df = spark.read.format("snowflake")
  .options(sfOptions).option("dbtable", 
    "shipments").load()
Automatyzacja potoków danych w Snowflake

JDBC/ODBC i integracje partnerskie

Uniwersalna łączność

Integracja Typ Zastosowanie w Harbr
JDBC / ODBC Sterowniki uniwersalne Narzędzia BI (Tableau, Power BI, Looker) – bezpośrednie zapytania
Python Connector Natywny sterownik Python Potoki danych, zaplanowane ETL, data science
dbt Transformacje SQL Uruchamia modele bezpośrednio w Snowflake
Fivetran / Airbyte Zarządzane pobieranie danych Systemy SaaS → Snowflake, bez własnego kodu
Automatyzacja potoków danych w Snowflake

Czas na ćwiczenia!

Automatyzacja potoków danych w Snowflake

Preparing Video For Download...