październik 23 2017

8min czytania

BigQuery – jak zacząć? Wprowadzenie dla nie-geeków

-

Piotr Pater

Na naszym blogu startujemy z cyklem artykułów poświęconych Google BigQuery. Zaczniemy od wprowadzenia dla osób, które dopiero rozpoczynają lub chcą rozpocząć swoją przygodę z BigQuery. Zebraliśmy w jednym miejscu informacje najbardziej podstawowe, żeby nowicjusze w temacie BQ nie musieli wyważać otwartych drzwi, ale mogli jak najszybciej rozpocząć pracę z narzędziem

Spis Treści:

  1. Czym jest BigQuery?

  2. Dlaczego BigQuery?

  3. Zaczynamy! Krok 1 – rejestracja

  4. Krok 2 – tworzymy nowy projekt w Cloud Platform

  5. Pierwsze kroki w BigQuery

  6. Pierwsze zapytanie SQL w BigQuery

  7. Historia zapytań

Czym jest BigQuery?

Google BigQuery jest działającą w chmurze skalowalną hurtownią danych, zoptymalizowaną pod kątem szybkiej analizy dużych zbiorów danych – czyli szybką bazą danych, do której możesz wrzucić lub zaciągnąć swoje dane z różnych źródeł i sprawnie je przeanalizować, a przy tym nie przejmować się kwestiami sprzętu (w ogóle) czy konfiguracji (prawie wcale).
Płacisz – najogólniej rzecz ujmując – za dane, które przeanalizujesz (przy czym pierwszy terabajt w miesiącu jest za darmo). Kwestią rozliczeń zajmiemy się bardziej szczegółowo w dalszej części tego artykułu
Do pracy z danymi w samym BigQuery konieczna będzie znajomość języka SQL. Ratunkiem dla tych, którzy z SQL nie są za pan brat może okazać się podpięcie do BQ któregoś z licznych “wizualnych” narzędzi Business Intelligence, co pozwoli na analizę danych z BQ bez konieczności pisania zapytań w SQL-u.

Dlaczego BigQuery?

BigQuery nie egzystuje w rynkowej próżni – istnieją rozwiązania mniej lub bardziej zbliżone zakresem funkcjonalności (jednym z przykładów może być Amazon Redshift), tak więc pytanie “Dlaczego?” jest jak najbardziej zasadne. Inna sprawa, że porównanie tych dwóch narzędzi jest tematem na osobny artykuł. Niemniej jednak, odpowiadając na postawione tu pytanie, można podejść do niego trojako:
Po pierwsze – jeżeli Twoją główną motywacją jest po prostu chęć poznania i przetestowania jakiejś hurtowni danych w chmurze, to rozpoczęcie od BigQuery będzie dobrym pomysłem, ponieważ w porównaniu do Amazon Redshift, BQ zdejmuje z użytkownika konieczność zarządzania niskopoziomowymi zasobami (sprzęt, baza danych, konfiguracja), a przy tym może być wręcz darmowy lub bardzo tani – przynajmniej dopóki nie trzyma się w nim i nie przetwarza dużych (liczonych w terabajtach) zbiorów danych.
Po drugie – jeżeli dopiero zastanawiasz się nad wyborem chmury obliczeniowej tego lub innego dostawcy, należałoby spojrzeć na temat szerzej niż tylko przez pryzmat pytania “BigQuery czy Redshift?”. Najbardziej sensowne wydaje się porównanie możliwości, oferty i wyceny całych platform, a przynajmniej tych ich składników, z których planujesz korzystać – nie tylko hurtowni danych, ale zapewne też rozwiązań storage’owych, obliczeniowych itd.
Po trzecie – być może już dysponujesz danymi, udostępnionymi w ramach chmury obliczeniowej Google Cloud Platform (czyli w kwestii wyboru dostawcy chmury obliczeniowej postawiono Cię przed faktem dokonanym) – wtedy wykorzystanie BigQuery nasuwa się niejako samo przez się. Przykłady takich sytuacji to:

  • eksport surowych danych z Google Analytics 360 (tzw. BigQuery Export) – surowe dane z GA360 są eksportowane bezpośrednio do BQ

  • eksport surowych danych z DoubleClick Campaign Managera (tzw. DoubleClick Data Transfer) – surowe dane z DCM są wystawiane w postaci plików CSV w przestrzeni Google Cloud Storage, skąd można zaimportować je do BQ

  • eksport surowych danych z AdWords lub YouTube (AdWords/YouTube Data Transfer) – surowe dane z AW/YT są eksportowane bezpośrednio do BQ

  • integracja danych udostępnionych w BQ (dane z GA, DoubleClicka, AdWords, YouTube) z innymi danymi, niejako “zewnętrznymi” – np. danymi z CRM/sprzedażowymi

  • wykorzystanie BQ jako bazodanowego zaplecza dla narzędzia BI (Tableau, Qlik, Data Studio), w którym przygotowywane są raporty/dashboardy oparte o dane zgromadzone w BQ

Zaczynamy! Krok 1 – rejestracja

Zanim zaczniemy pracować w BigQuery, konieczne będzie przejście procesu bezpłatnej rejestracji na platformie Google Cloud Platform:

  • potrzebne będzie zalogowanie z kontem Google

  • wymagane jest podanie numeru karty kredytowej w celu weryfikacji tożsamości, choć żadne opłaty nie zostaną pobrane, dopóki świadomie (ręcznie) nie zdecydujemy się na przejście na płatne konto

  • na osłodę dostaniemy 300 USD do wykorzystania na całej platformie GCP przez najbliższe 12 miesięcy

A zatem – do dzieła!
Na stronie produktu BigQuery klikamy niebieski przycisk “Try it free”:


Następnie zostaniemy poproszeni o zalogowanie się z kontem Google, po czym trafimy na pierwszy krok rejestracji:


Zaznaczamy odpowiednie zgody i trafiamy na ostatni krok procesu – tworzymy tutaj tzw. profil płatności, czyli podajemy dane adresowe oraz karty kredytowej (która nie zostanie obciążona, dopóki sami nie zdecydujemy o zmianie konta na płatne):


Jeżeli jedynym możliwym do wybrania typem konta jest Firma (nie da się przełączyć na Osoba), nie należy się tym przejmować, tylko podać swoje dane adresowe i dane karty – żadne specyficzne “dane firmowe” nie są wymagane.
Po zatwierdzeniu podanych danych trafiamy na ekran powitalny w konsoli Google Cloud Platform (której BigQuery jest częścią):


Możemy odbyć krótki “tour po konsoli” albo od razu przejść do rzeczy, zamykając warstwę powitalną.

Krok 2 – tworzymy nowy projekt w Cloud Platform

Dlaczego w ogóle lądujemy w konsoli GCP, a nie od razu w BigQuery? Wynika to z faktu, że BQ jest częścią całej chmury obliczeniowej Google (czyli Google Cloud Platform). Zasoby BigQuery, z którymi będziemy pracować, nie lewitują w próżni – są przyporządkowane do poszczególnych projektów Google Cloud Platform.
Projekt jest podstawowym poziomem organizacji zasobów w Google Cloud Platform:

  • na poziomie projektu przypisujemy narzędzia GCP, z których będziemy w tym projekcie korzystać (np. BigQuery, Compute Engine, Machine Learning Engine)

  • na poziomie projektu dokonywana jest wycena wykorzystania zasobów GCP i generowana ewentualna płatność

Krótko mówiąc – żeby pracować w BQ, musimy stworzyć nowy projekt GCP. BigQuery zostanie automatycznie aktywowane we wszystkich nowych projektach GCP
W celu stworzenia nowego projektu, na ekranie powitalnym konsoli GCP znajdujemy kafelek “Utwórz pusty projekt” i klikamy odpowiedni link. A jeżeli takiego kafelka tam nie ma albo wyszliśmy już z ekranu powitalnego konsoli – na górnym pasku klikamy “Wybierz projekt”, a następnie na wyświetlonej warstwie klikamy znak “+” po prawej stronie:


Trafiamy na ekran tworzenia nowego projektu – podajemy nazwę projektu (nie możemy używać polskich znaków – do wykorzystania są litery, cyfry, cudzysłowy, łączniki, spacje i znaki wykrzyknika), możemy też wyedytować identyfikator projektu (musi mieć od 6 do 30 znaków i być unikalny w skali całej platformy GCP), a na koniec klikamy przycisk Utwórz:


Gotowe! Mamy już swój projekt GCP i możemy rozpocząć pracę z BigQuery!
Żeby wreszcie dostać się do BigQuery, na ekranie konsoli GCP rozwijamy lewe menu i na liście narzędzi klikamy BigQuery. Otworzy się nowe okno z ekranem powitalnym BQ:

Pierwsze kroki w BigQuery

Dostęp do BigQuery z poziomu przeglądarki internetowej jest najprostszym sposobem korzystania z usługi i to jemu poświęcimy dalszą część tego przewodnika. Bardziej zaawansowane możliwości daje praca z wykorzystaniem komendy “bq” w linii poleceń Cloud Platform – dzięki temu mamy możliwość tworzenia skryptów automatyzujących operacje na danych.
Okno BigQuery w przeglądarce dzieli się na 2 części – lewa pełni rolę nawigacyjną, w prawej tworzymy i wykonujemy zapytania i wyświetlamy ich wyniki.
Nadrzędnym poziomem organizacji w BigQuery jest nadal projekt GCP – aktualnie wybrany projekt jest widoczny w lewej części okna BQ. Natomiast samym BigQuery dane zorganizowane są w tzw. zbiory danych (ang. datasets). Zbiór danych (dataset) zawiera różne tabele danych.
Nowo stworzony projekt nie zawiera w BigQuery żadnych własnych datasetów, ale już od pierwszej chwili mamy dostęp do datasetów udostępnionych publicznie – Google utrzymuje te dane na swój koszt, a użytkownik BQ ponosi jedynie koszt zapytań wykonywanych na tych danych (przy czym pierwszy TB danych przetworzonych w miesiącu jest darmowy).
Publiczne datasety możemy przeglądać w lewej części okna, w sekcji “Public datasets”. Po kliknięciu w nazwę datasetu, w prawej części okna wyświetlą się informacje o tym zbiorze danych – w przypadku własnych datasetów, można w tym miejscu dodać np. swój opis datasetu.
Po kliknięciu w nazwę datasetu w lewej części okna, rozwija się lista tabel, które ten dataset zawiera. Z kolei kliknięcie na nazwę tabeli powoduje załadowanie szczegółowych informacji o tej tabeli:


Kolejne zakładki przekazują nam następujące informacje o tabeli:

  • Schema – struktura tabeli, czyli informacja o kolumnach tabeli: nazwach kolumn, typie danych w kolumnach, ewentualnie także opcjonalny opis każdej z kolumn

  • Details – opcjonalny opis tabeli, a także informacje o rozmiarze tabeli, liczbie wierszy, lokalizacji danych itp.

  • Preview – podgląd danych w tabeli

A skoro już jesteśmy przy tabelach danych – pora na nasze pierwsze zapytanie SQL w BigQuery!

Pierwsze zapytanie SQL w BigQuery

Żeby wykonać zapytanie SQL w BigQuery, należy najpierw wcisnąć czerwony przycisk “Compose Query” w lewej części okna – zostanie otwarte puste okno tworzenia zapytania.
Drugi sposób to przycisk “Query Table” na ekranie ze szczegółami konkretnej tabeli – również po jego kliknięciu otworzy się okno tworzenia zapytania SQL, ale będzie w nim wprowadzony szkielet zapytania odpytującego tę konkretną tabelę:


Osoby znające SQL zauważą, że w proponowanym szkielecie zapytania brakuje nazw kolumn w klauzuli SELECT – tutaj musimy wykazać się własną inwencją i wpisać interesujące nas nazwy kolumn.
Wykonajmy więc przykładowe, poniższe zapytanie SQL:


W tym celu należy wpisać zapytanie w polu New Query (albo uzupełnić proponowany szkielet zapytania o brakujące elementy: nazwy kolumn w klauzuli SELECT, a także klauzule WHERE, GROUP BY i ORDER BY), a następnie wcisnąć czerwony przycisk “Run Query”. Po krótkiej chwili, wyniki zapytania zostaną wyświetlone poniżej:


Zwróćmy uwagę na nazwę tabeli w klauzuli FROM – nie jest to po prostu nazwa tabeli, którą odpytujemy, ale za każdym razem powinna być ona podana w odpowiednim formacie:
nazwa-projektu-gcp:nazwa_datasetu.nazwa_tabeli
Dlatego też najszybszą drogą do stworzenia poprawnego zapytania SQL jest kliknięcie w nazwę tabeli w lewej części okna, a następnie kliknięcie przycisku “Query Table” – dzięki temu w przygotowanym już szkielecie zapytania SQL znajdzie się poprawna nazwa tabeli.
Wyniki zapytania w zakładce Results oprócz samej tabeli z danymi dają możliwość:

  • pobrania danych wynikowych w formie CSV albo JSON

  • zapisania danych wynikowych do arkusza Google Sheets (czyli na Dysk Google)

  • zapisania danych wynikowych jako nowej tabeli w BigQuery, w wybranym projekcie, datasecie i tabeli o podanej nazwie:


Ponadto, oprócz zakładki Results, mamy jeszcze 2 zakładki:

  • Explanation – znajdziemy tu tzw. plan zapytania dla wykonanego zapytania SQL, pomagający w optymalizacji wydajności i kosztu zapytań

  • Job Information – szczegółowe informacje o wykonanym zapytaniu, m.in. o ilości danych przeprocesowanych, wliczonych do naszego rachunku za korzystanie z BigQuery

Historia zapytań

BigQuery przechowuje historię wykonanych zapytań – jeżeli jakieś zapytanie wykonujemy po raz kolejny, jego wyniki są ładowane z cache, a my nie ponosimy kosztów wykonania tego zapytania.
Historię zapytań można przeglądać, klikając pozycję “Query History” w lewej części okna. Spowoduje to załadowanie listy wykonywanych wcześniej zapytań wraz z informacją o dacie i czasie wykonania i przyciskiem “Open Query”, pozwalającym na ponowne wykonanie zapytania z listy.
W BQ mamy także możliwość zapisania i współdzielenia konkretnego zapytania – służy do tego przycisk “Save Query” na ekranie tworzenia zapytania. Jego kliknięcie wyświetli okienko, w którym możemy podać nazwę zapisywanego zapytania, a także ustawić opcje widoczności: prywatne, na poziomie projektu, publiczne:



Zapisane zapytania są widoczne w historii zapytań, w zakładkach “Saved Queries” i “Project Queries”.

A ile to będzie kosztować?

W BigQuery opłatom podlegają:

  • zapytania – płaci się za liczbę bajtów przeprocesowanych przez zapytanie

    • pierwszy 1 TB danych przeprocesowanych w miesiącu jest bezpłatny

    • za następne płaci się po 5 USD za 1 TB przeprocesowanych danych

    • zapytania, których wykonanie zostało przerwane, są nadal rozliczane na takich zasadach, jak pozostałe zapytania

    • w projektach o dużym wolumenie danych i zapytań możliwe jest rozliczanie w oparciu o płaską stawkę

  • przechowywanie danych – płaci się z dokładnością do 1 MB przechowywanego przez 1 sekundę

    • pierwsze 10 GB danych przechowywanych w miesiącu jest bezpłatne

    • za kolejne dane przechowywane w chmurze płaci się 0,02 USD za 1 GB za miesiąc

    • jeżeli tabela nie jest edytowana przez 90 dni, zaczyna być traktowana jako “long term storage” i opłata za nią spada do 0,01 USD za 1 GB za miesiąc

    • nie podlegają opłatom operacje: ładowania danych do BQ, kopiowania danych, eksportowania danych z BQ

Więcej informacji o szczegółach opłat w BigQuery.

Co dalej?

Kiedy masz już za sobą pierwsze kroki w BigQuery, rodzi się naturalne pytanie “Co dalej”
Na pewno warto nauczyć się SQL-a, bo bez niego trudno będzie wykorzystać wszystkie możliwości, jakie daje BigQuery. W tym miejscu istotna uwaga – BigQuery używa 2 dialektów SQL-a:

  • tzw. “legacy SQL” – własnego, starszego dialektu, który może w niektórych miejscach różnić się od standardowego SQL

  • standard SQL, zgodnego z SQL 2011

Warto też zapoznać się z bogatą dokumentacją BigQuery, a także z sekcją “Concepts”.
Pomocny w poznaniu możliwości zarówno BigQuery, jak i szerzej – platformy Google Cloud Platform – może okazać się kurs on-line: “From Data to Insights with Google Cloud Platform.
A w dalszym rozszerzaniu znajomości GCP mogą pomóc:

To chyba tyle, jeśli chodzi o wprowadzenie dla tych, którzy jeszcze nie znają BigQuery
W kolejnych artykułach tego cyklu będziemy przybliżać konkretne przykłady wykorzystania przede wszystkich BigQuery (ale też innych narzędzi z Google Cloud Platform) w pracy analityka digitalowego.
Tymczasem zapraszamy do komentowania! Jeśli macie pytania, wątpliwości, propozycje albo zwyczajnie nie zgadzacie się (na gruncie merytorycznym) z tym artykułem – piszcie!


Do you have any questions?

Do you want to deepen this topic? Write!

hello@salestube.tech
You liked the article, share it with:

Let's change the world of e‑commerce together!

We're always happy when we can answer your questions. Feel free to contact us!