Nie Wiesz, Jak Zacząć z Google Cloud Platform? Zacznij z BigQuery!
Czy słyszeliście o bazie danych, której silnik napędza wewnętrzne systemy Google i która odpowiada za sporą część analityki internetowej? Poznajcie BigQuery – zarządzaną usługę analityczną, która pozwala na przetwarzanie terabajtów danych bez konieczności instalacji i utrzymywania skomplikowanej infrastruktury.
Chcecie zacząć z niej korzystać? Nic prostszego! Zapraszamy do lektury (a po niej na kompleksowe szkolenie z GCP). Dowiecie się wszystkiego, co będzie Wam potrzebne, aby rozpocząć pracę z tym narzędziem. Na początek trochę historii…
Skąd się wzięło BigQuery?
Początki BigQuery sięgają roku 2006, kiedy to w Google’u powstała pierwsza wersja silnika Dremel – kolumnowego, rozproszonego mechanizmu przetwarzania zapytań na ustrukturalizowanych danych.
Jako publiczna usługa BigQuery zadebiutowała w 2011. Od tego czasu jest ciągle rozwijana przez inżynierów Google.
Przy okazji, dla osób powiązanych ze środowiskiem Microsoft ciekawym odkryciem będzie, że istotną rolę w rozwoju silnika Dremel i samego BigQuery odegrał nikt inny jak Mosha Pasumansky – główny projektant silnika Analysis Services i twórca języka MDX.
Dlaczego BigQuery? 3 Zalety totalne
BigQuery z pozoru nie wydaje się rewolucyjnym rozwiązaniem. Ot, zwykła skalowalna baza danych umożliwiająca ich szybką analizę.
Poznajcie trzy zalety BigQuery, które wyróżniają ją na tle innych produktów i usług PaaS tego typu:
- Całkowita bezobsługowość. Definiując model danych, nie musicie nawet ustawiać kluczy czy indeksów na tabelach – jedyne, co wymaga konfiguracji w celu optymalizacji kosztów, to ustawienie właściwego partycjonowania. Partycjonowanie i koszty? Tak, ponieważ kolejną unikalną cechą BigQuery jest jej model kosztowy.
- Model rozliczeń oparty przede wszystkim na płatnościach za wykonane zapytania. Ściślej rzecz biorąc, za wielkość danych, które zostały przetworzone. Dlatego też partycjonowanie np. po wielu dniach jest konieczne, aby uniknąć kosztownych skanów całej tabeli. Do BigQuery możecie załadować potężny zbiór danych, którego samo przechowanie w klasycznej bazie danych lub nawet klastrze Hadoop mogłoby być problematyczne. Dopóki nie wykonujecie zapytań do tego zbioru, płacicie tylko za storage (20 USD / TB). Koszt zapytania to 5 USD za terabajt przetworzonych (odczytanych) danych.
- Ultraszybkie działanie. 1,09 Petabajta w 3,5 minuty mówią same za siebie. Najwięksi klienci BigQuery przechowują w usłudze setki petabajtów danych, których analiza zajmuje usłudze dosłownie chwilę. Nie wierzycie? Zobaczcie sami, jak wygląda zapytanie przetwarzające petabajt danych w 3,5 minuty.
No dobrze, dosyć teorii. Czas na praktykę!
Co jest potrzebne do pracy z BigQuery?
Aby rozpocząć korzystanie z BigQuery, nie trzeba niczego więcej oprócz podstawowej znajomości SQL oraz chęci eksperymentowania i poznawania kilku elementów specyficznych dla usługi.
Przygotujcie też kartę kredytową, która potrzebna Wam będzie do aktywacji konta testowego Google Cloud Platform (bez obawy, karta nie zostanie obciążona żadnymi kosztami).
Jeżeli macie już konto na Google Cloud, przeskoczcie do Pierwszy projekt BigQuery.
Aktywacja Google Cloud Platform
Aby uruchomić dostęp do usługi BigQuery, najpierw należy założyć bezpłatne konto testowe chmury Google Cloud. Pod adresem https://cloud.google.com/free/ znajdziecie odpowiednie formularze do wypełnienia. Tutaj potrzebna Wam będzie również karta kredytowa, o której wspomniałem wcześniej.
W ramach wersji próbnej Google Cloud dostaniecie kredyt 300 USD do wydania w ciągu 12 miesięcy. Porównując tę kwotę z cennikiem BigQuery, widzimy, że w przypadku zastosowań niekomercyjnych nie musimy się specjalnie obawiać o przekroczenie limitu.
Zresztą dopóki jawnie nie skonwertujemy testowego konta na płatne, żadne opłaty za korzystanie z chmury Google nie zostaną naliczone – co dodatkowo potwierdza komunikat pojawiający się po poprawnej aktywacji konta.
Przejdźcie przez wszystkie kroki aktywacji konta. Na koniec powinniście ujrzeć następujący komunikat:
Oznacza on, że konto zostało założone.
Teraz możecie zalogować się na konsolę Google Cloud Platform pod adresem http://console.cloud.google.com. Z górnego menu wybierzcie domyślnie utworzony projekt o nazwie My First Project.
W nomenklaturze Google Cloud Platform projekt jest podstawową jednostką, w ramach której naliczane są opłaty oraz nadawane uprawnienia. W projekcie odbywa się też zarządzanie utworzonymi zasobami.
Pierwszy projekt BigQuery
Lista usług dostępnych w ramach platformy znajduje się po lewej stronie. Pierwsza pozycja w grupie Big Data to właśnie BigQuery.
Klikając na nazwę usługi, przenosicie się do prostego, ale funkcjonalnego interfejsu graficznego BigQuery. W zastosowaniach produkcyjnych skorzystacie raczej z innych dostępnych interfejsów – narzędzia linii poleceń bq będącego częścią Google Cloud SDK (https://cloud.google.com/sdk/) lub bezpośrednio REST API.
Ponieważ w ramach naszego projektu nie założyliście żadnych tabeli, w dalszych krokach wykorzystamy jeden z publicznie dostępnych w BigQuery zbiorów danych, tj. historię 173 milionów przejazdów nowojorskimi taksówkami.
Przejdziemy do niego bezpośrednio używając linku https://bigquery.cloud.google.com/table/imjasonh-storage:nyctaxi.trip_data.
Klikając na tabelę, np. trip_data , macie możliwość wyświetlenia jej schematu, metadanych (w tym liczby wierszy) oraz podglądu zawartości. Z podglądu powinniście zresztą korzystać jak najczęściej – jest to najszybszy i darmowy sposób na zapoznanie się z danymi w danej tabeli. Kiedy już wiecie, po jakie dane chcecie sięgnąć, kliknijcie na Query table, żeby przejść do edytora zapytań SQL.
Tworzenie zapytań w BigQuery – kilka ćwiczeń na rozgrzewkę
Domyślnie BigQuery korzysta z dialektu SQL Legacy SQL, szczegółowo udokumentowanego pod adresem https://cloud.google.com/bigquery/docs/reference/legacy-sql.
Jeśli piszecie kod od początku, warto rozważyć skorzystanie ze zgodnego ze standardem ANSI SQL 2011 dialektu Standard SQL. Przełącznik, który Wam to umożliwi, znajduje się w opcjach [Show Options].
Abyście mogli przećwiczyć sobie wersję SQL wykorzystywaną w BigQuery, przygotowałem dla Was kilka prostych zapytań. Pozwolą Wam one lepiej poznać zawartość odpytywanego zbioru danych.
-- Liczba pasażerów podczas przejazdu SELECT INTEGER(passenger_count) AS passengers, count(*) AS trips FROM [imjasonh-storage:nyctaxi.trip_data] GROUP BY passengers ORDER BY passengers ASC;
-- Średni napiwek SELECT INTEGER(AVG(tip_amount)*100)/100 avg_tip, REGEXP_EXTRACT(pickup_datetime, "2013-([0-9]*)") month FROM [imjasonh-storage:nyctaxi.trip_fare] WHERE payment_type='CRD' AND FLOAT(fare_amount) > 0.00 GROUP BY 2 ORDER BY 2
-- Średnia prędkość w milach wg godzin SELECT HOUR(TIMESTAMP(pickup_datetime)) AS hour, ROUND(AVG(FLOAT(trip_distance)/FLOAT(trip_time_in_secs)*60*60)) AS speed FROM [imjasonh-storage:nyctaxi.trip_data] WHERE INTEGER(trip_time_in_secs) > 10 AND FLOAT(trip_distance) < 90 GROUP BY hour ORDER BY hour;
Zapytania BigQuery – o czym warto pamiętać
Jak widzicie, samo tworzenie zapytań nie powinno sprawiać żadnej trudności. Istnieje jednak kilka kwestii specyficznych dla usługi BigQuery, które warto mieć na uwadze:
- Zapytania SQL w stylu SELECT* nigdy nie są najlepszą praktyką – w BigQuery taka praktyka jest dodatkowo najbardziej kosztowna. Zawsze powinniśmy wybierać tylko te kolumny, których rzeczywiście potrzebujemy – zmniejszy to rozmiar przetwarzanych przez silnik danych, a w konsekwencji – ich koszt.
- Oprócz standardowych konstrukcji macie dostęp do całkiem rozbudowanych wyrażeń regularnych za pomocą funkcji REGEXP_MATCH i REGEXP_EXTRACT. Korzystają one z biblioteki Google re2 (https://github.com/google/re2/wiki/Syntax). Taka możliwość bardzo się przydaje w typowych zastosowaniach Big Data – filtrowaniu i analizowaniu dużych zasobów tekstu – logów, ale też języka naturalnego.
- Czas wykonania zapytań może za każdym razem nieco się różnić. Dzieje się takie z uwagi na współdzieloną infrastrukturę i działania optymalizatora, który rozkłada obciążenie pomiędzy poszczególnymi węzłami. Z drugiej strony, BigQuery wyposażone jest oczywiście w sprawny mechanizm pamięci podręcznej, który minimalizuje konieczność powtórnego odpytywania tych samych danych w kolejnych zapytaniach.
- Wynik zapytania możemy zapisać do kolejnej tabeli lub utworzyć z niego widok. Ilustruje to przykład poniżej (zbiór danych my_saved_results został założony wcześniej). To właśnie widoki są zalecanym sposobem dzielenia się wynikami i bardziej skomplikowanymi zapytaniami – mechanizm ich działania w BigQuery pozwala na udzielanie dostępu do widoku uprawnionym użytkownikom bez konieczności nadawania praw odczytu do tabel źródłowych.
- Po wykonaniu zapytania warto sprawdzić ile danych zostało rzeczywiście sprocesowanych. W poniższym przykładzie jest to bez znaczenia (pierwszy terabajt jest przetwarzany za darmo, koszt kolejnego to raptem 5 USD), jednak w przypadku naprawdę sporych tabeli ilość przetworzonych danych staje się bardzo istotna. Tak bardzo, że tematowi optymalizacji i partycjonowania tabeli w BigQuery postanowiliśmy poświęcić oddzielny artykuł, którego spodziewajcie się już wkrótce?.
Zobacz to sam, czyli wizualizacja wyników
BigQuery sprawdza się doskonale do zwracania wyników zapytań ad-hoc. Jeśli jednak chcemy przedstawić ich wynik w bardziej atrakcyjnej i czytelnej formie, warto skorzystać z jednego z wielu narzędzi raportowych.
Google Data Studio
W przypadku platformy Google bezpłatnym produktem, któremu warto się przyjrzeć w pierwszej kolejności, jest Data Studio: https://datastudio.google.com.
- Aby stworzyć przykładowy raport, po akceptacji warunków świadczenia usługi i przejściu przez kilka początkowych ekranów, klikamy na znak plusa w prawym dolnym rogu, żeby zdefiniować nowe połączenie do źródła danych – w naszym przypadku będzie to BigQuery.
Już patrząc na listę innych dostępnych konektorów, widzimy, do jakiego rodzaju analiz Data Studio przyda nam się najbardziej – przede wszystkim do raportowania wyników z innych produktów Google, koncentrujących się wokół reklamy internetowej, analizy kampanii i atrybucji. Z tego względu z Data Studio szczególnie chętnie korzystają marketerzy i agencje interaktywne pracujące na co dzień z Google Analytics, AdWords lub Doubleclick.
- Na kolejnym ekranie wybieramy istniejącą tabelę lub wprowadzamy kod własnego zapytania. W naszym przykładzie użyję właśnie CUSTOM QUERY, aby stworzyć proste zapytanie grupujące liczby przejazdów oraz ich wartości według dni:
SELECT DATE(pickup_datetime), INTEGER(SUM(FLOAT(fare_amount))) AS total_fares, COUNT(*) trips FROM [imjasonh-storage:nyctaxi.trip_fare] WHERE payment_type='CRD' AND FLOAT(fare_amount)>0.00 GROUP BY 1 ORDER BY 1
- Na ekranie Edit Connection potwierdzamy lub modyfikujemy typowanie kolumn. Możemy tu np. zmienić typ wartości numerycznej na tekst oraz wybrać agregacje inne niż standardowa suma.
- W naszym zapytaniu brakuje jeszcze jednej miary, średniej wartości przejazdu. Stworzę ją jako miarę wyliczaną bezpośrednio w Data Studio, wybierając w prawym dolnym rogu opcję CREATE NEW FIELD.
- Nasz model danych jest gotowy. Pozostaje już tylko stworzenie raportu – wykresu szeregu czasowego, oraz dwóch kart wyników (ang. scorecard) prezentujących wartości wybranych metryk. Jeśli skorzystamy z górnego menu z predefiniowanymi typami raportów, zajmuje nam to tylko kilka chwil. Gdybyśmy mieli ochotę na dokładniejsze sformatowanie kontrolek, mamy do dyspozycji zakładkę STYLE z odpowiednimi opcjami.
- Po podejrzeniu podglądu (VIEW), czas opublikować nasz raport – klikamy [Share the Report] i wybieramy odpowiednie opcje. Nasz przykładowy raport jest dostępny pod linkiem https://datastudio.google.com/reporting/1ByNwraA8v-xl3V0Ew_6P8tzhVijWe-Zj.
BigQuery i co dalej…? Zapraszamy na szkolenie z GCP!
W dzisiejszym wpisie omówiliśmy podstawowe działania związane z BigQuery. Ale to oczywiście nie wszystko! W drugiej części artykułu przyjrzymy się różnym sposobom ładowania danych do usługi, partycjonowaniu oraz automatyzacji zapytań.
A jeżeli chcielibyście wiedzieć JESZCZE więcej na temat BigQuery, to…. czeka na Was niespodzianka! Zapraszamy Was na majowe szkolenie z Google Cloud Platform w Chmurowisku, podczas którego poruszymy ten i wiele innych tematów. Nie tylko nauczycie się, jak mistrzowsko operować na potężnych zbiorach danych, ale poznacie wszystkie KLUCZOWE usługi platformy Google i dowiecie się, jak je wykorzystać, aby przyspieszyć realizację Waszych projektów. Liczba miejsc ograniczona!
Już 21 czerwca dowiesz się, jak możesz wykorzystać AI w Twojej firmie. Damian Mazurek i Piotr Kalinowski wprowadzą Cię w świat sztucznej inteligencji i LLM.
Przed nami nowy rozdział! Chmurowisko dokonało połączenia z polskim Software Mind – firmą, która od 20 lat tworzy rozwiązania przyczyniające się do sukcesu organizacji z całego świata…
Grupa Dynamic Precision podjęła decyzję o unowocześnieniu swojej infrastruktury. Razem z Oracle Polska prowadzimy migrację aplikacji firmy do chmury OCI.
Już 21 czerwca dowiesz się, jak możesz wykorzystać AI w Twojej firmie. Damian Mazurek i Piotr Kalinowski wprowadzą Cię w świat sztucznej inteligencji i LLM.
Zapisz się do naszego newslettera i
bądź z chmurami na bieżąco!
z chmur Azure, AWS i GCP, z krótkimi opisami i linkami.