Yarı Yapılandırılmış Verileri Sorgulama

Snowflake'te Veri Pipeline'larını Otomatikleştirme

Emily Melhuish

Technical Curriculum Developer, Snowflake

Yarı Yapılandırılmış Veri Yükleme

veri yükleme.png

1 * Snowflake Eğitim Materyali
Snowflake'te Veri Pipeline'larını Otomatikleştirme

Farklı Veri Şekillerini Yönetme

Taşıyıcı A Taşıyıcı A JSON'u

Taşıyıcı B

Taşıyıcı B JSON'u

Snowflake'te Veri Pipeline'larını Otomatikleştirme

Dönüşüm Örneği

Screenshot 2026-05-11 at 5.56.34 pm.png

Snowflake'te Veri Pipeline'larını Otomatikleştirme

Snowflake Veri Türleri

Kategori Türler Örnek
Sayısal NUMBER, INT, FLOAT credits_used NUMBER(10,2)
Metin VARCHAR, STRING, TEXT carrier_name VARCHAR
Tarih / Saat DATE, TIME, TIMESTAMP dispatch_date DATE
Mantıksal BOOLEAN is_active BOOLEAN
Yarı yapılandırılmış VARIANT, OBJECT, ARRAY event_payload VARIANT
Snowflake'te Veri Pipeline'larını Otomatikleştirme

VARIANT türü

  • VARIANT yarı yapılandırılmış veriyi olduğu gibi saklar: şema gerekmez
  • JSON, Parquet, Avro, ORC veya XML'i doğrudan yükleyin
  • Veri yapısı sorgu anında çözümlenir, yükleme anında değil (okuma-anında şema)
COPY INTO shipment_events
FROM @harbr_stage/events/
FILE_FORMAT = (TYPE = 'JSON');

VARIANT'in tuttuğu tüm yarı yapılandırılmış veri türlerini gösteren kelime bulutu: JSON, ARRAY, OBJECT, AVRO, PARQUET, SEMI-STRUCTURED

Snowflake'te Veri Pipeline'larını Otomatikleştirme

JSON'da Gezinme

JSON örneği

{
  "shipment_id": "SHP-001",
  "carrier": { "name": "FastFreight" },
  "stops": [
    { "location": "Rotterdam Port" },
    { "location": "Amsterdam Hub" }
  ]
}

JSON'da gezinme

Yapıda ilerleme:

<sütun>:<seviye1_öğe>.<seviye2_öğe>

SELECT 
event:id::STRING AS shipment_id
, event:carrier.name::STRING AS carrier
, event:stops[0]:location::STRING 
AS first_stop 
FROM shipment_events;
Snowflake'te Veri Pipeline'larını Otomatikleştirme

Dizileri Satırlara Dönüştürme: FLATTEN

Flatten.png

Snowflake'te Veri Pipeline'larını Otomatikleştirme

LATERAL FLATTEN Kullanımı

SELECT 
  s.event_data:shipment_id::STRING AS shipment_id,
  f.value:location::STRING AS stop,
  f.value:arrived_at::TIMESTAMP AS arrived_at 
FROM shipment_events s,
  LATERAL FLATTEN(input => s.event_data:stops) f;

Flatten.png

Snowflake'te Veri Pipeline'larını Otomatikleştirme

Vamos praticar!

Snowflake'te Veri Pipeline'larını Otomatikleştirme

Preparing Video For Download...