Blog JSystems - uwalniamy wiedzę!

Szukaj
Konsola BigQuery w akcji: edytor z zapytaniem SQL i tabela wyników z najpopularniejszymi imionami
Konsola BigQuery w działaniu. U góry zapytanie SQL, poniżej gotowa tabela wyników - a nad nią zakładki do wykresu i szczegółów wykonania. Wszystko w przeglądarce, bez instalowania czegokolwiek.

Jeśli zaczynasz przygodę z analizą danych, prędzej czy później usłyszysz nazwę BigQuery. Dla jednych to tajemnicza usługa Google, do której firmy wrzucają terabajty danych. W rzeczywistości to jedno z najprostszych wejść w świat wielkich danych: piszesz zwykłe zapytanie SQL, klikasz i w kilka sekund dostajesz odpowiedź przeliczoną na tysiącach maszyn - a sam nie zarządzasz żadnym serwerem. W tym przewodniku wytłumaczymy od zera, czym jest BigQuery, po co powstał, jak działa i ile kosztuje, a wszystko pokażemy na prawdziwych zrzutach z konsoli.

Czym jest BigQuery?

Najprościej: BigQuery to chmurowa hurtownia danych Google - miejsce, w którym trzymasz ogromne ilości danych i przeszukujesz je zwykłym językiem SQL, nie martwiąc się o żaden serwer. Hurtownia danych (po angielsku data warehouse) to specjalny rodzaj bazy przystosowany nie do obsługi aplikacji, lecz do analizy: liczenia sum, średnich, trendów i raportów na wielkich zbiorach.

Najważniejsze w BigQuery jest słowo bezserwerowy (po angielsku serverless). Nie instalujesz bazy, nie kupujesz maszyny, nie pilnujesz aktualizacji. Otwierasz stronę w przeglądarce, piszesz zapytanie, a Google na czas jego wykonania sam dokłada moc obliczeniową z tysięcy komputerów i zwalnia ją, gdy skończysz. Dzięki temu zapytanie, które na jednym serwerze liczyłoby się godzinami, tutaj kończy się w sekundy.

Infografika: cztery cechy BigQuery - bezserwerowy, kolumnowy, zwykły SQL i skala petabajtów
Cztery cechy, które najlepiej oddają, czym jest BigQuery i czym różni się od zwykłej bazy danych.

Cała reszta wynika z tych czterech cech. BigQuery jest kolumnowy, czyli trzyma dane kolumnami, a nie wierszami - dzięki temu czyta z dysku tylko te kolumny, o które pytasz. Rozmawiasz z nim zwykłym SQL, więc jeśli znasz podstawy zapytań z jakiejkolwiek innej bazy, od razu ruszasz. I działa w skali petabajtów: te same zapytania równie sprawnie chodzą na tysiącu wierszy, jak i na miliardach.

Po co komu BigQuery? Kto z niego korzysta

Można pomyśleć, że hurtownia danych to zabawka wyłącznie dla wielkich korporacji. Tak było kilkanaście lat temu, gdy trzeba było kupić drogie serwery. Dziś próg wejścia jest tak niski, że BigQuery przydaje się bardzo różnym osobom:

Analitycy i managerowie

  • Liczą sprzedaż, ruch i wskaźniki na danych z wielu lat naraz
  • Budują raporty i pulpity, które odświeżają się automatycznie
  • Odpowiadają na pytania biznesowe w minuty, nie w dni

Firmy i zespoły produktowe

  • Zbierają w jednym miejscu dane ze sklepu, aplikacji i reklam
  • Nie utrzymują własnej infrastruktury bazodanowej
  • Płacą za tyle mocy, ile realnie zużyją

Inżynierowie danych

  • Przetwarzają surowe dane w gotowe tabele do analizy
  • Budują potoki ładowania danych i strumienie na żywo
  • Trenują proste modele uczenia maszynowego wprost w SQL

Marketing i e-commerce

  • Łączą dane z Google Ads, sklepu i analityki w jeden obraz
  • Sprawdzają, które kampanie naprawdę się zwracają
  • Segmentują klientów na podstawie realnych zachowań

Wspólny mianownik jest jeden: BigQuery oszczędza czas i pieniądze. Zadanie, które kiedyś wymagało zespołu administratorów i tygodni przygotowań, dziś sprowadza się do napisania kilku linijek SQL. Zanim jednak napiszemy pierwsze zapytanie, warto zrozumieć, czym hurtownia różni się od zwykłej bazy - bo to najczęstsze źródło nieporozumień.

Hurtownia danych a zwykła baza

To pytanie pada najczęściej: skoro mam już bazę danych, po co mi jeszcze BigQuery? Odpowiedź jest taka, że to dwa narzędzia do dwóch różnych zadań. Fachowo mówi się o dwóch trybach pracy: OLTP i OLAP.

Infografika porównująca zwykłą bazę danych (OLTP) z hurtownią danych BigQuery (OLAP)
Zwykła baza obsługuje bieżącą pracę aplikacji, hurtownia danych analizuje historię. BigQuery jest po tej drugiej stronie.

OLTP (przetwarzanie transakcji, po angielsku Online Transaction Processing) to zwykła baza za Twoją aplikacją - PostgreSQL, MySQL, Oracle. Jej zadanie to obsługa mnóstwa drobnych, szybkich operacji: dodaj zamówienie, zmień status, pobierz dane jednego klienta. Pracuje na wierszach i musi odpowiadać błyskawicznie tysiącom użytkowników jednocześnie.

OLAP (przetwarzanie analityczne, po angielsku Online Analytical Processing) to właśnie hurtownia danych jak BigQuery. Tu nie chodzi o pojedynczy rekord, tylko o pytania w rodzaju: ile sprzedaliśmy w każdym miesiącu przez ostatnie pięć lat, w podziale na regiony. Takie zapytanie dotyka milionów wierszy naraz i liczy z nich agregaty. Więcej o tym, kiedy sięgać po bazę relacyjną, a kiedy po inne rozwiązanie, znajdziesz w naszym porównaniu baz danych SQL kontra NoSQL.

W praktyce te dwa światy współpracują: aplikacja zapisuje bieżące dane do zwykłej bazy, a co jakiś czas ich kopia trafia do hurtowni, gdzie analitycy spokojnie liczą ciężkie raporty, nie obciążając bazy produkcyjnej.

Pierwsze kroki: darmowy sandbox i konsola

Najlepsze w BigQuery jest to, że możesz go dotknąć od ręki i za darmo. Google udostępnia tryb sandbox (piaskownica) - konto do zabawy, które nie wymaga podawania karty płatniczej. Wystarczy konto Google. Cała droga od zera do pierwszego wyniku ma tylko cztery kroki:

Infografika czterech kroków startu w BigQuery: załóż projekt, wybierz zbiór, napisz SQL, odczytaj wynik
Od zera do pierwszego wyniku w BigQuery wystarczą cztery kroki - każdy w przeglądarce.

Żeby nie zaczynać od pustej hurtowni, Google udostępnia dziesiątki gotowych publicznych zbiorów danych (projekt bigquery-public-data) - od imion nadawanych dzieciom, przez dane pogodowe, po statystyki z serwisu Stack Overflow. Możesz je od razu przeszukiwać, nie wgrywając niczego swojego. Po lewej stronie konsoli widać drzewo z tymi zbiorami, a po kliknięciu tabeli - jej strukturę:

Konsola BigQuery: po lewej publiczne zbiory danych, po prawej schemat tabeli z imionami - kolumny state, gender, year, name, number
Po lewej publiczne zbiory danych Google. Po prawej schemat tabeli z imionami: widać nazwy kolumn, ich typy i opisy.

Zakładka Schema (schemat) to metryczka tabeli - mówi, jakie ma kolumny i jakiego są typu. W naszej przykładowej tabeli z amerykańskimi imionami są kolumny state (stan), gender (płeć), year (rok), name (imię) i number (liczba nadań). Obok, w zakładce Details (szczegóły), BigQuery pokazuje między innymi, ile tabela ma wierszy i ile miejsca zajmuje:

Zakładka Details w BigQuery pokazująca informacje o tabeli i liczbę wierszy ponad 6,3 miliona
Szczegóły tabeli. Ta konkretna ma ponad 6,3 miliona wierszy - a mimo to zapytania na niej liczą się w sekundy.

Ponad sześć milionów wierszy, a mimo to za chwilę przeszukamy je w ułamku sekundy. To dobry moment, żeby napisać pierwsze zapytanie.

Twoje pierwsze zapytanie SQL

W BigQuery pytasz zwykłym SQL. Zobaczmy najprostszy przykład: sprawdźmy dziesięć najpopularniejszych imion w Kalifornii w całej historii tego zbioru. Wpisujemy zapytanie do edytora:

SELECT name, gender, SUM(number) AS total
FROM `bigquery-public-data.usa_names.usa_1910_current`
WHERE state = 'CA'
GROUP BY name, gender
ORDER BY total DESC
LIMIT 10;

Jeśli pisałeś kiedykolwiek zapytanie SQL, wszystko tu jest znajome. Jedyny nietypowy element to nazwa tabeli w odwrotnych apostrofach: projekt.zbior.tabela. To pełny adres tabeli w BigQuery - najpierw projekt (bigquery-public-data), potem zbiór danych (usa_names), na końcu sama tabela. Klikamy Uruchom i po chwili dostajemy wynik, który widać było na pierwszym zrzucie na górze artykułu. Ten sam wynik możemy jednym kliknięciem pokazać jako wykres:

BigQuery: wynik zapytania SQL pokazany jako wykres słupkowy najpopularniejszych imion z panelem konfiguracji
Zakładka wizualizacji zamienia tabelę wyników w wykres bez wychodzenia z konsoli. Po prawej ustawiasz, co ma być na osiach.

Zanim w ogóle napiszesz zapytanie, możesz też po prostu zajrzeć do danych. Zakładka Preview (podgląd) pokazuje pierwsze wiersze tabeli jak arkusz kalkulacyjny - i co ważne, taki podgląd nic nie kosztuje, bo nie uruchamia żadnego zapytania:

Zakładka Preview w BigQuery: podgląd wierszy tabeli z danymi bez uruchamiania zapytania
Podgląd danych bez pisania zapytania. Wygodny sposób, żeby zobaczyć, co w ogóle siedzi w tabeli, zanim zaczniesz liczyć.

Chcesz przejść przez BigQuery krok po kroku, na żywych danych i pod okiem praktyka? Szkolenie Google BigQuery - podstawy prowadzi od pierwszego zapytania do analizy danych w chmurze.

Jak to działa pod maską

Skąd bierze się prędkość BigQuery? Z dwóch pomysłów, które warto znać, nawet jeśli na co dzień o nich nie myślisz. Pierwszy to zrównoleglenie: gdy klikasz Uruchom, Twoje jedno zapytanie nie liczy się na jednej maszynie, tylko zostaje pocięte na drobne zadania rozdane setkom jednostek roboczych, które pracują naraz.

Animacja pokazująca, jak BigQuery dzieli zapytanie SQL na etapy i liczy je równolegle na wielu jednostkach
Droga zapytania: od Twojego SQL, przez podział na zadania i równoległe liczenie, po gotowy wynik. To dlatego duże zapytania kończą się w sekundy.

Te jednostki robocze to sloty (po angielsku slots) - jednostki mocy obliczeniowej BigQuery. Nie musisz nimi zarządzać, Google przydziela je na czas zapytania. Po drodze następuje jeszcze wymiana danych między etapami (fachowo shuffle), czyli przekazanie wyników cząstkowych tam, gdzie trzeba je zsumować. Cały ten plan zobaczysz w zakładce Execution graph (graf wykonania):

Graf wykonania zapytania w BigQuery: źródło danych, kolejne etapy przetwarzania i liczba przetworzonych rekordów
Graf wykonania pokazuje, jak zapytanie faktycznie się policzyło: skąd wzięło dane, ile rekordów przeszło przez kolejne etapy i gdzie zeszło najwięcej czasu.

Drugi pomysł to wspomniane już składowanie kolumnowe. Zwykła baza trzyma dane wierszami: cały rekord jednego imienia leży razem. BigQuery odwraca to i trzyma każdą kolumnę osobno. Dzięki temu, gdy pytasz tylko o kolumny name i number, silnik czyta z dysku wyłącznie te dwie kolumny, a pozostałe w ogóle nie rusza:

Animacja składowania kolumnowego: zapytanie skanuje tylko dwie z pięciu kolumn tabeli, reszta zostaje pominięta
Składowanie kolumnowe w praktyce. Zapytanie dotyka tylko kolumn name i number - trzy pozostałe zostają na dysku nietknięte. To nie tylko przyspiesza, ale też wprost obniża koszt, o czym za chwilę.

Ile to kosztuje?

To pytanie zwykle pada zaraz po pierwszym zachwycie. Dobra wiadomość jest taka, że na naukę BigQuery jest w praktyce darmowy, a płatne modele są proste i przewidywalne. Są dwa sposoby rozliczeń:

Infografika modeli cen BigQuery: rozliczenie na żądanie za przeskanowane dane oraz model pojemnościowy ze slotami, plus darmowe limity
Dwa modele rozliczeń BigQuery. Na start liczy się przede wszystkim to, że darmowy limit obejmuje 1 terabajt zapytań miesięcznie.

W modelu na żądanie (po angielsku on-demand), domyślnym i najwygodniejszym na start, płacisz nie za liczbę zapytań ani za czas, tylko za ilość danych, którą zapytanie przeskanowało. Co najważniejsze, konsola mówi Ci to z góry - jeszcze przed uruchomieniem pokazuje szacunek u dołu edytora:

Edytor BigQuery z komunikatem, ile danych przetworzy zapytanie po uruchomieniu - szacunek kosztu przed startem
Zanim klikniesz Uruchom, BigQuery mówi, ile danych przeskanuje zapytanie (tutaj około 138 megabajtów). Nigdy nie liczysz w ciemno.

Po wykonaniu zapytania te same liczby znajdziesz w zakładce Job information (informacje o zadaniu). Nasze przykładowe zapytanie przetworzyło niecałe 138 megabajtów i policzyło się w 377 milisekund:

Zakładka Job information w BigQuery: przetworzone i rozliczone bajty, czas trwania zapytania oraz zużyty czas slotów
Podsumowanie wykonanego zapytania: przetworzone dane, dane rozliczone i czas trwania. To na podstawie pola z przetworzonymi danymi naliczana jest opłata w modelu na żądanie.

Drugi model, pojemnościowy (sloty), to stała opłata za zarezerwowaną moc obliczeniową. Opłaca się dużym firmom z ciągłym, przewidywalnym obciążeniem, ale na początek prawie na pewno go nie potrzebujesz. Do rozliczeń dochodzi jeszcze niski koszt składowania danych. W darmowym limicie mieści się 1 terabajt zapytań miesięcznie oraz 10 gigabajtów składowania - do nauki i większości małych projektów to bardzo dużo. Orientacyjnie, po przekroczeniu limitu skanowanie danych kosztuje kilka dolarów za terabajt, ale konkretne stawki najlepiej sprawdzić w aktualnym cenniku Google, bo bywają aktualizowane.

Najczęstszy błąd początkującego: SELECT gwiazdka.

Zapytanie SELECT * każe BigQuery przeczytać wszystkie kolumny, także te, których wcale nie potrzebujesz - a płacisz właśnie za przeczytane dane. Na szerokiej tabeli to różnica między groszami a sporym rachunkiem. Zasada na całe życie z BigQuery: wybieraj konkretne kolumny, których naprawdę używasz, zamiast gwiazdki.

Skąd wziąć dane? Ładowanie i integracje

Publiczne zbiory są świetne do nauki, ale prawdziwa wartość zaczyna się, gdy wrzucisz do BigQuery własne dane. Nie trzeba do tego żadnego skomplikowanego programu - w konsoli jest przycisk dodawania danych, a pod nim całkiem długa lista źródeł:

Panel dodawania danych w BigQuery z listą źródeł: pliki lokalne, Google Cloud Storage, Amazon Redshift, Amazon S3, Google Ads i inne
Katalog źródeł danych w BigQuery. Najprościej wgrać plik z dysku albo z Google Cloud Storage, ale gotowe konektory sięgają też po dane z reklam czy innych hurtowni.

Dla początkującego najprostsze są dwie drogi: wgranie pliku CSV (albo JSON) prosto z komputera oraz wczytanie danych z Google Cloud Storage (chmurowy magazyn plików Google). Bardziej zaawansowane zespoły podłączają gotowe konektory do reklam, systemów sklepowych czy innych hurtowni, żeby dane spływały automatycznie. Cała ta układanka wygląda tak:

Animacja architektury: źródła danych wpływają do BigQuery, gdzie składowanie i silnik zapytań są rozdzielone, a wynik trafia do narzędzi analitycznych
Miejsce BigQuery w świecie danych: dane wpływają ze źródeł, BigQuery je składuje i przelicza, a wynik trafia do narzędzi analitycznych i pulpitów.

Na wyjściu podłączasz wynik do narzędzi, w których dane się ogląda i prezentuje: darmowego Looker Studio od Google, arkuszy albo Power BI. Jeśli interesuje Cię właśnie ta strona - budowanie czytelnych pulpitów na danych z hurtowni - zajrzyj do naszego przewodnika czym jest Power BI, Power Query i DAX.

BigQuery a inne narzędzia

BigQuery nie jest jedyną chmurową hurtownią danych. Warto wiedzieć, w jakim towarzystwie się porusza, bo nazwy tych usług często słychać obok siebie:

NarzędzieCo to jestDla kogo
BigQueryBezserwerowa hurtownia danych Google. Płacisz za przeskanowane dane.Zespoły w chmurze Google, marketing, szybki start bez administracji
SnowflakeChmurowa hurtownia działająca na wielu chmurach naraz. Rozdziela składowanie od mocy.Firmy, które nie chcą przywiązywać się do jednego dostawcy chmury
Amazon RedshiftHurtownia danych w chmurze Amazona (AWS).Zespoły, które już siedzą w ekosystemie AWS
PostgreSQL, OracleKlasyczne bazy relacyjne (OLTP) do obsługi aplikacji.Systemy transakcyjne, gdzie liczy się pojedynczy rekord

Najbliższym kuzynem BigQuery jest Snowflake - też chmurowa hurtownia, też rozmawia SQL, tylko z inną filozofią rozliczeń i niezależnością od jednej chmury. Jeśli chcesz zobaczyć drugą stronę tego świata, opisaliśmy ją osobno: co to jest Snowflake. A szerszy obraz całej układanki - hurtownie, jeziora danych i strumienie - znajdziesz w tekście o współczesnych rozwiązaniach Big Data.

Dobre praktyki na start

Na koniec kilka nawyków, które warto wyrobić sobie od pierwszego dnia. Nie są trudne, a oszczędzą Ci pieniędzy i nerwów.

Cztery zasady, które opłaca się znać od początku:
  • Wybieraj kolumny, nie gwiazdkę. Skoro płacisz za przeczytane dane, pytaj tylko o te kolumny, których używasz. To najprostszy sposób na niższy rachunek.
  • Patrz na szacunek przed uruchomieniem. Konsola zawsze mówi, ile danych przetworzy zapytanie. Jeśli widzisz gigabajty tam, gdzie spodziewasz się megabajtów, coś jest nie tak.
  • Poznaj partycjonowanie i klastrowanie. To sposoby ułożenia tabeli tak, by zapytania czytały tylko potrzebny fragment danych (na przykład jeden dzień), a nie całą historię. Na większych tabelach potrafią wielokrotnie obniżyć koszt.
  • Zacznij od sandbox. Darmowy tryb pozwala przećwiczyć wszystko bez ryzyka. Kartę płatniczą podłączysz dopiero, gdy naprawdę będziesz jej potrzebować.

Tyle wystarczy, żeby ruszyć. BigQuery należy do tych narzędzi, w których pierwszy wynik dostajesz w kilka minut, a potem stopniowo odkrywasz kolejne możliwości: partycje, funkcje analityczne, uczenie maszynowe w SQL czy strumienie danych na żywo. Fundament jednak jest prosty i znasz go już z tego artykułu: dane w chmurze plus zwykłe zapytanie SQL, bez żadnego serwera po Twojej stronie.

Rozumiesz już, czym jest hurtownia danych w chmurze - czas zamienić to w praktyczną umiejętność.

Najkrótsza droga to przejść przez BigQuery na żywych danych, pod okiem trenera:

Szkolenie Google BigQuery - podstawy -->

To szkolenie może być dofinansowane dla Ciebie z KFS lub BUR.

★★★★★ Średnia ocena naszych szkoleń w Google: 5/5

Najczęściej zadawane pytania

Czy BigQuery jest darmowy?
Na naukę i małe projekty w praktyce tak. Google daje darmowy tryb sandbox bez karty płatniczej, a w ramach darmowego limitu masz co miesiąc 1 terabajt danych przeszukanych zapytaniami oraz 10 gigabajtów składowania. Płacisz dopiero, gdy przekroczysz te limity. Do przećwiczenia wszystkiego z tego artykułu darmowy limit w zupełności wystarcza.
Czym BigQuery różni się od zwykłej bazy danych?
Zwykła baza (na przykład PostgreSQL czy Oracle) jest zaprojektowana do obsługi pojedynczych operacji w aplikacji: dodaj zamówienie, zmień status, pobierz jednego klienta. BigQuery to hurtownia danych zaprojektowana do analizy: przeszukuje miliony i miliardy wierszy naraz, żeby policzyć sumy, trendy i raporty. Trzyma dane kolumnami zamiast wierszami i rozkłada pracę na tysiące maszyn, dlatego duże zapytania kończą się w sekundy.
Jakiego języka używa BigQuery?
Standardowego SQL - tego samego, który znasz z innych baz danych. Piszesz SELECT, WHERE, GROUP BY i JOIN dokładnie tak jak wszędzie indziej. Nie musisz uczyć się nowego języka, żeby zacząć. BigQuery dokłada tylko kilka własnych funkcji, ale podstawy są identyczne.
Ile kosztuje zapytanie w BigQuery?
W domyślnym modelu na żądanie płacisz za ilość danych, którą zapytanie przeskanowało, a nie za liczbę zapytań ani czas. Konsola pokazuje szacunek jeszcze przed uruchomieniem - nasze przykładowe zapytanie zapowiadało przetworzenie około 138 megabajtów. Ponieważ dane leżą kolumnami, płacisz tylko za te kolumny, o które faktycznie pytasz. Dlatego wybieranie konkretnych kolumn zamiast gwiazdki potrafi radykalnie obniżyć rachunek.
Czy muszę stawiać jakiś serwer, żeby użyć BigQuery?
Nie. BigQuery jest bezserwerowy - nie instalujesz ani nie administrujesz żadną maszyną. Otwierasz konsolę w przeglądarce, piszesz zapytanie, a Google sam dokłada moc obliczeniową na czas jego wykonania i zwalnia ją po zakończeniu. To jedna z największych różnic wobec klasycznej bazy danych, którą trzeba postawić i utrzymywać.
Skąd wziąć dane do BigQuery?
Na start możesz korzystać z gotowych publicznych zbiorów Google (bigquery-public-data) - są darmowe i od razu gotowe do zapytań. Własne dane wgrywasz z pliku CSV lub JSON, z Google Cloud Storage, z Arkuszy Google, a przez gotowe konektory także z Google Ads, Amazon S3 czy innych hurtowni. Wynik analizy podłączysz potem do narzędzi takich jak Looker Studio czy Power BI.

Komentarze (0)

Musisz być zalogowany by móc dodać komentarz. Zaloguj się przez Google

Brak komentarzy...