🎯 Definicja
Normalizacja w Airbyte to proces “sprzątania po integracji”. Kiedy pobierasz dane z API (np. Facebook Ads), dostajesz często skomplikowany, zagnieżdżony JSON. Normalizacja w Airbyte automatycznie rozbija ten JSON na klasyczne tabele SQL (np. Campaigns, AdSets, Ads), żebyś mógł je łatwo odpytać.
🔑 Kluczowe punkty
- Raw Data vs Normalized: Airbyte najpierw wrzuca “brudny” JSON do jednej kolumny (
_airbyte_raw_data), a potem (opcjonalnie) tworzy z tego ładne tabele. - Pod maską: Używa do tego… dbt! Airbyte generuje w locie projekt dbt, który robi te transformacje.
- Relacje: Automatycznie tworzy klucze obce, łącząc np. tabelę
Ordersz tabeląLineItems(która była w środku JSON-a).
📚 Szczegółowe wyjaśnienie
Masz 3 opcje w Airbyte:
- Raw Data (No Normalization): Dostajesz tabelę z jedną kolumną JSON. Radź sobie sam (np. używając funkcji JSON w Snowflake).
- Basic Normalization: Airbyte robi to za Ciebie. Dobre na start.
- Custom Transformation: Sam piszesz SQL/dbt, jak to ma wyglądać.
💡 Przykład zastosowania
Pobierasz dane z Shopify. Jeden rekord zamówienia zawiera listę produktów, adres klienta i historię płatności. Airbyte z włączoną normalizacją stworzy w Twojej bazie:
shopify_ordersshopify_order_items(z kluczem do orders)shopify_customersDzięki temu analityk może zrobić prosteSELECT * FROM orders JOIN items, zamiast męczyć się z parsowaniem JSON-a.
📌 Źródła
- Airbyte Docs - Normalization.
👽 Brudnopis
- Uwaga: Basic Normalization bywa wolna przy ogromnych wolumenach. Wtedy lepiej załadować Raw Data i napisać własny, zoptymalizowany model w dbt.