Google BigQuery to potężne narzędzie, które pomóc Ci uzyskać cenne informacje z Twoich danych. Należysz jednak pamiętać, że BigQuery może być również kosztowne, jeśli nie będziesz go używać w sposób zoptymalizowany.
W Bigglo zetknęliśmy się z wieloma projektami, które były inicjacyjnie tworzone przez agencje marketnigowe lub firmy oferujące usługi analityki internetowej. Niestety większośc z tych firm nie ma certyfikowanycchh inżynierów rozumiejących jak dobrze zoptymalizować koszty BigQuery co naraziło ich klientów na olbrzymie i zbędne wydatki.
Optymalizacja kosztów BigQuery polega na stosowaniu różnych strategii, które pomogą Ci zmniejszyć koszt bez utraty funkcjonalności i wydajności. Dzięki optymalizacji możesz zaoszczędzić znaczną ilość pieniędzy, które możesz przeznaczyć na inne cele biznesowe.
Gotowy na obniżenie kosztów BigQuery? Skorzystaj z naszych praktycznych porad!
Koszt BigQuery składa się z trzech głównych elementów:
Wraz ze wzrostem ilości oraz rodzajów danych jakie twoja firma ładuje oraz przechowuje oraz przetwarza w hurtowni danych pojawią się też większe koszty ich magazynowania.
Szczęśliwie, są pewne techniki, które pomogą je zoptymalizować. Poniżej znajdziesz te, które uważam za najistotniejsze z punktu widzenia finalnego wpływu na koszt:
Tutaj chodzi głównie o to aby nie magazynować danych bez sensu. Upewnij się, że koszty za aktywne przetrzymywanie danych są zredukowane do minimum regularnie usuwając niepotrzebne dane bądź archiwizując je do przechowywania długoterminowego.
Jeśli wiesz, że tworzysz tymczasowe tabele do analitycznego zadania ad-hoc, zawsze zdefiniuj odpowiednią długość życia danej tabeli.
→ Wpływ na koszt przechowywania danych.
Jednym z najpotężniejszych narzędzi optymalizacji kosztów Google BigQuery jest partycjonowanie tabel. Partycjonowanie polega na podziale tabel na mniejsze zgodnie z wartościami przybranymi w wierszach konkretnej kolumny daty bądź czasu.
Dzięki takiemu podejściu BigQuery będzie skanować tylko dane, które spełniają wymogi w filtrach dat naszego zapytania co może drastycznie obniżyć koszt jego egzekucji.
→ Wpływ na koszt procesowania danych.
Choć teoretycznie w BigQuery możemy partycjonować tylko po polach daty i czasu, są też pewne triki aby partycjonować po wymiarach przybierających inne typy danych i nie jest to klastrowanie 😉
Mechanizm klastrowania tabeli jest bardzo podobny do partycjonowania ale możesz go zastosować na kolumnie o dowolnym typie. Sens klastrowania ma wtedy jeśli często segmentujesz swoje dane i filtrujesz według pewnych wymiarów (np. Nazwa kraju, kontynentu, nazwa produktu czy segment użytkownika). Segmenty też powinny być na tyle duże aby był sens po nich klastrować dane.
→ Wpływ na koszt procesowania danych.
Przetwarzanie wsadowe ma jedną ogromna zaletę nad strumieniowaniem- jest zupełnie darmowe. Co do zasady w sytuacji, w której dla biznesu nie jest krytycznym posiadanie dostępu do danych w trybie rzeczywistym powinieneś korzystać z przetwarzania wsadowego.
→ Wpływ na koszt strumieniowania danych.
Dzięki wykorzystaniu takich narzędzi jak Dataform czy Dbt możesz zaoszczędzić wiele kosztów związanych z dodawaniem, i nadpisywaniem Twoich rekordów zgodnie ze strategią inkrementacji danych w Twoich tabelach. W swoich procesach transformacyjnych staraj się używać metody insert_overwrighth lub merge.
Podobną strategię możesz stosować używając natywnej opcji zaplanowanych zapytań.
→ Wpływ na koszt procesowania danych.
Jeśli zapytanie jest duże i składa się z wielu podzapytań, zapisanie każdego etapu do tabeli docelowej skutecznie buforuje wyniki każdego etapu, zmniejszając ilość odczytywanych danych. Dodatkowe koszty przechowywania wyników pośrednich będą prawie zawsze znacznie niższe niż koszty wielokrotnego uruchamiania całego zapytania.
→ Wpływ na koszt procesowania danych.
Dla przykładu widok nie będzie generował kosztów za przetrzymywanie danych gdyż nie zajmuje on fizycznych bajtów na dysku. Zbyt częste jednak wykorzystywanie go w zapytaniu lub za pomocą narzędzia BI wygeneruje znacznie większy koszt procesowania danych aniżeli wykorzystanie Tabeli lub zmaterializowanego widoku.
→ Wpływ na koszt przechowywania i procesowania danych.
Jest wiele technik, których uważają eksperci manipulacji danych SQL mających na celu optymalizację działania zapytania pod kątem jego szybkości egzekucji oraz liczby przeprocesowanych bajtów w celu osiągnięcia konkretnego rezultatu biznesowego.
Poniżej zebrałem te, które powinny być stosowane przez Was w celu optymalizacji czasu oraz kosztów procesowania danych przez BigQuery.
→ Wpływ na koszt procesowania danych.
W zasadzie to jedno z głównych konceptów nie tylko optymalizacji kosztów ale też lepszego zarządzania nimi. Dzięki rozdzieleniu zadań replikacyjnych, transformacyjnych oraz analitycznych możesz zaoszczędzić ogrom pieniędzy związanych z nieoptymalnym wykorzystaniem Twoich tabel przez analityków oraz Twoje narzędzia Business Intelligence.
Taka architektura pomoże Ci też lepiej analizować koszty w podziale na Data Sciencie, Data Engineering oraz Business Intelligence i zapewnia większą kontrolę nad dostępem do Twoich danych oraz ich finalnym bezpieczeństwem.
W Bigglo mamy doświadczenie z tworzeniem wielowarstwowej architektury platformy analitycznej wraz z możliwością rozbudowy do architektury i filozofii Data Mesh.
Ciężko będzie Ci zoptymalizować koszt BigQuery jeśli go nie mierzysz. Dlatego istotne jest aby w pierwszej kolejności zaimplementować narzędzia umożliwiające Ci monitorowanie oraz alertowanie w momencie pojawienia się sytuacji nadzwyczajnych z użyciem Twojej hurtowni danych.
Jest wiele możliwości implementacji takiego narzędzia. Możesz wykorzystać Billing API, ustawiając eksport danych dotyczących kosztów związanych z BigQuery i za pomocą języka SQL tworzyć tabelę, która przetrzyma całą historię dziennych kosztów związanych z BigQUery, a jej rezultat pokazać w Looker Studio.
Jeśli jesteś jednak zainteresowany analizą na poziomie zapytań, jobów i użytkowników możesz skorzystać z eksportu logów do “zlewu” i zapisanie bezpośrednio ich w BigQuery lub odpytania tabeli INFORMATION_SCHEMA.JOBS.
Optymalizacja kosztów BigQuery to niełatwe i wielopoziomowe zadanie. Sprowadza się do współpracy inżynierów danych oraz analityków na co dzień pracujących z danymi. W grę wchodzi stworzenie idealnego balansu pomiędzy częstotliwością odświeżania danych ze źródła a faktyczną potrzebą biznesową i analityczną.
Dodatkowo bardzo istotnym elementem są umiejętności pisania zapytań SQL, które nie tylko generują oczekiwany rezultat, ale także robią to w najtańszy i najszybszy sposób. Do tego potrzebne są lata praktyki pisania zapytań SQL oraz dokładne zrozumienie działania BigQuery.
Kuszące może być zlecenie takiego projektu agencji marketingowej lub takiej, która specjalizuje się w analityce internetowej. W rzeczywistości może to firmie przynieść nie tylko ogromne koszty BigQuery ale również błędne rezultaty wykonywanych przez nich modeli i zapytań.
W Bigglo zatrudniamy certyfikowanych inżynierów Google Cloud, którzy na bieżąco śledzą wszystkie nowinki i zmiany w BigQuery, dzięki czemu gwarantują wysokie kompetencje tworzenia architektury hurtowni danych, jej bezpieczeństwa oraz optymalizacji kosztów związanych z jej utrzymaniem.