Struktury zagnieżdżone są Twoim sprzymierzeńcem w GA4 BigQuery

Praca z surowymi danymi GA4 w BigQuery przez długi czas była… po prostu bolesna.
Dane są głęboko zagnieżdżone. Zdarzenia zawierają tablice parametrów. Sesje nie istnieją „gotowe” – trzeba je zbudować samodzielnie.

Pisanie SQL-a, który poprawnie porusza się po ARRAY, STRUCT, UNNEST, wymagało specjalistycznej wiedzy, której większość analityków zwyczajnie nie miała.

I właśnie dlatego powstał cały ekosystem narzędzi, które spłaszczają dane.

„Stary wiktoriański problem” analityki

Schemat był zawsze ten sam:

  • bierzemy zagnieżdżone, „brudne” dane,
  • transformujemy je do ładnych, płaskich tabel,
  • a potem analitycy mogą je odpytywać jak klasyczną bazę danych.

To miało sens kiedy SQL był drogi:

  • drogi w czasie,
  • drogi w kompetencjach,
  • drogi w wysiłku poznawczym.

Spłaszczanie struktury danych było wtedy protezą. Ułatwieniem. Kompromisem.

świat się zmienił

Momentem przełomowym było pojawienie się AI, które potrafi pisać poprawny SQL do BigQuery.

Dziś:

  • opisujesz, czego chcesz, zwykłym językiem,
  • dostajesz zapytanie, które:
    • obsługuje UNNEST,
    • agreguje tablice,
    • przechodzi przez zagnieżdżone struktury,
    • zachowuje kontekst zdarzeń.

Bariera, która uzasadniała spłaszczanie danych, przestała istnieć.

Struktury zagnieżdżone są Twoim sprzymierzeńcem

Brzmi kontrowersyjnie, ale to prawda:

Zagnieżdżone struktury są naturalnym formatem danych GA4.
Płaskie tabele są sztucznym uproszczeniem.

Jeśli spłaszczasz dane GA4 w BigQuery, robisz z BigQuery…
przerośniętego Excela.

Co tracisz, spłaszczając dane GA4?

Gdy rozbijasz tabelę events na osobne tabele (sesje, użytkownicy, transakcje):

  • tracisz bezpośrednią relację między:
    • zdarzeniem,
    • użytkownikiem,
    • parametrami zdarzenia
  • niszczysz kontekst sekwencji zdarzeń
    → trudniej analizować ścieżki, kolejność interakcji, mikro-konwersje
  • agregujesz dane zbyt wcześnie
    → tracisz granularność potrzebną do zaawansowanej atrybucji
  • fragmentujesz kontekst użytkownika
    → analiza cross-device i multi-session staje się problematyczna
  • pozbawiasz się naturalnego mechanizmu śledzenia ścieżek konwersji

To wszystko są realne straty analityczne, a nie tylko „techniczne niuanse”.

BigQuery jest zbudowany pod dane zagnieżdżone

BigQuery:

  • jest kolumnowy,
  • jest skalowalny,
  • jest zoptymalizowany pod STRUCTARRAY.

Zagnieżdżone dane:

  • zmniejszają redundancję,
  • zachowują relacje,
  • lepiej odzwierciedlają rzeczywistość zdarzeń.

Spłaszczanie GA4 idzie wbrew temu, jak BigQuery został zaprojektowany.

To nie problem struktury danych. To problem kompetencji SQL.

Dane nie są „zbyt skomplikowane”.
Ludzie są niekomfortowi z zapytaniami zagnieżdżonymi.

Flattening nie rozwiązuje problemu – on go maskuje.

„Ale AI nie jest wiarygodne w produkcji!”

Ten argument pada często:

„Nie można ufać AI-generated SQL w systemach produkcyjnych.”

I to jest… częściowo prawda.

Ale:

  • większość pracy analitycznej jest eksploracyjna,
  • zapytania można przeglądać przed uruchomieniem,
  • AI nie zastępuje myślenia – zastępuje składnię.

Pipeline produkcyjny ≠ analiza ad hoc.

„A co ze spójnością w dużych zespołach?”

Kolejny argument:

„Jak utrzymać spójność definicji sesji w 50 dashboardach?”

To ważne:

  • w bardzo dużych organizacjach,
  • z wieloma zespołami,
  • z rygorem governance.

Ale dla większości przypadków biznesowych:

  • koszt spłaszczania danych przewyższa korzyści,
  • elastyczność analizy jest ważniejsza niż centralna abstrakcja.

Przestań traktować BigQuery jak Excela

BigQuery nie jest:

  • arkuszem kalkulacyjnym,
  • klasyczną relacyjną bazą OLTP.

BigQuery jest:

  • silnikiem analitycznym,
  • zaprojektowanym pod dane zagnieżdżone,
  • gotowym na złożone analizy zachowań użytkowników.

Używaj go tak, jak został zaprojektowany.

Podobne wpisy