Definicja #
BigQuery to zarządzana, serverless hurtownia danych Google Cloud Platform (GCP) do analizy dużych zbiorów danych przy użyciu standardowego SQL. Umożliwia skanowanie terabajtów i petabajtów danych w sekundy bez konieczności zarządzania klasterami czy infrastrukturą.
Kluczowe cechy BigQuery:
- Serverless i w pełni zarządzany — brak klastrów do zarządzania; Google automatycznie skaluje zasoby obliczeniowe do wielkości zapytania
- Kolumnowe przechowywanie danych — Capacitor format; zapytania agregujące skanują tylko wybrane kolumny, co drastycznie redukuje ilość przetwarzanych danych
- Separacja compute od storage — dane przechowywane we własnym kolumnowym formacie Capacitor (zarządzanym przez Google, tanie), obliczenia uruchamiane dynamicznie; brak "idle cluster costs"
- Standardowy SQL (ANSI SQL) — zapytania SQL z rozszerzeniami: window functions, ARRAY/STRUCT typy, UDF w JavaScript (natywne); Python przez Remote Functions (Cloud Run)
- BigQuery ML — trenowanie modeli ML (regresja, klasyfikacja, forecasting, k-means) bezpośrednio w SQL bez eksportu danych
- BigQuery Omni — zapytania do danych w AWS S3 i Azure Blob Storage bez przenoszenia danych
- Streaming inserts — wstawianie danych w czasie rzeczywistym (do 100 000 wierszy/sekundę) dla analityki near-real-time
- IAM i Row-level Security — fine-grained access control; column-level security i data masking
Model kosztów: on-demand (płatność za TB skanowanych danych, pierwsze 1 TB/miesiąc bezpłatnie) lub flat-rate (dedykowane slots obliczeniowe dla przewidywalnych kosztów). BigQuery Storage jest znacznie tańszy niż tradycyjne DW.
Zastosowania #
- Analityka big data w Google Cloud — centralna hurtownia danych dla danych z GA4, Firebase, Google Ads, CRM i systemów transakcyjnych
- Ad-hoc analiza dużych zbiorów — eksploracja dziesiątek TB danych przez data analityków bez zarządzania infrastrukturą
- Raportowanie i dashboardy — integracja z Looker Studio (bezpłatny) i Looker jako backend danych dla raportów
- Machine learning na danych — BigQuery ML do trenowania modeli predykcyjnych bezpośrednio w SQL bez przenoszenia danych do Vertex AI
- Real-time analytics — streaming inserts z Pub/Sub + BigQuery do analityki niemal w czasie rzeczywistym
Ścieżka nauki #
BigQuery ma bezpłatny tier (1 TB zapytań + 10 GB storage/miesiąc) — idealny do nauki bez kosztów.
Zacznij od:
- Konto Google Cloud z bezpłatnym tier; BigQuery Console w Google Cloud Console
- Publiczne datasety BigQuery (nyc-tlc, github_repos, bigquery-public-data) — gotowe dane do eksploracji
- Pierwsze zapytania: SELECT, WHERE, GROUP BY, ORDER BY na dużych tabelach; obserwuj czas wykonania i GB skanowane
- Zrozumienie modelu kosztów: partycjonowanie i klastrowanie tabel jako optymalizacja kosztów
Następnie pogłębiaj:
- Partitioning i Clustering — klucze partycjonowania po dacie i klastrowanie po kolumnach filtrowania; dramatyczna redukcja skanowanych danych
- Window functions: ROW_NUMBER, LEAD/LAG, SUM OVER PARTITION BY — niezbędne w analityce
- BigQuery Storage API — szybkie odczytywanie danych przez Apache Arrow do Pandas/Spark
- dbt (data build tool) — budowanie transformacji i modeli danych jako SQL z wersjonowaniem
- Certyfikacja: Google Professional Data Engineer — BigQuery jest centralnym tematem egzaminu
FAQ #
- Czym BigQuery różni się od tradycyjnych baz danych SQL?
- BigQuery jest kolumnową hurtownią danych zoptymalizowaną pod zapytania analityczne (OLAP) — skanuje petabajty, agreguje miliardy wierszy. Tradycyjne bazy (PostgreSQL, MySQL, SQL Server) to OLTP — zoptymalizowane pod transakcje i zapytania po indeksach na małych zbiorach. BigQuery nie ma indeksów ani PRIMARY KEY w tradycyjnym sensie; wydajność uzyskuje przez partycjonowanie, klastrowanie i kolumnowy storage.
- Jak działa model kosztów BigQuery?
- BigQuery oferuje dwa modele: On-demand — płacisz za TB danych skanowanych przez zapytania (aktualnie ~$6.25/TB, pierwsze 1 TB/miesiąc bezpłatnie); Flat-rate — wykupujesz dedykowane slots obliczeniowe (100 slots = ~$2000/miesiąc) dla przewidywalnych kosztów. Storage kosztuje ~$0.02/GB/miesiąc. Koszty można drastycznie obniżyć przez partycjonowanie tabel i SELECT wybranych kolumn zamiast SELECT *.
- Czym jest dbt i dlaczego jest popularny z BigQuery?
- dbt (data build tool) to narzędzie do transformacji danych w SQL — modele danych pisane jako pliki .sql z obsługą dependencies, testów i dokumentacji. Jest odpowiedzią na problem organizacji złożonej logiki ETL w SQL. Z BigQuery tworzy standardowy stack analityczny: BigQuery jako silnik, dbt jako warstwa transformacji, Looker/Power BI jako warstwa wizualizacji.
- Czy BigQuery obsługuje dane strumieniowe (streaming)?
- Tak — BigQuery Streaming inserts umożliwia wstawianie danych w czasie rzeczywistym z Pub/Sub, Dataflow lub bezpośrednio przez API. Dane są dostępne do zapytań w ciągu sekund od wstawienia. Standardowym wzorcem jest: Pub/Sub (zbieranie eventów) → Dataflow (transformacja) → BigQuery (storage + analityka). Streaming jest droższy niż batch loading (Storage Write API).