Strona główna

BigQuery dla początkujących. Jakie są sposoby przechowywania danych w BigQuery?

BigQuery dla początkujących. Jakie są sposoby przechowywania danych w BigQuery?

Grafika prezentująca BigQuery
Z Google BigQuery mam szczęście pracować od prawie dekady co pozwoliło mi dość szybko, jak na rynek Polski, zaznajomić się z korzyściami płynącymi z tworzenia nowoczesnego stacku analitycznego przy pomocy chmury Google oraz hurtowni danych leżącej w samym jej sercu.

W tym artykule chciałem przybliżyć wam trochę BigQuery oraz szerzej opisać funkcjonalności narzędzia oraz różne sposoby przechowywania danych.

Spis treści

Zacznijmy od tego co to jest BigQuery oraz wymieńmy niektóre z kluczowych funkcjonalności hurtowni danych BigQuery i zobaczmy czym różni się ona od tradycyjnych baz danych.

Jak na klasyczną hurtownię danych przystało podstawowymi jej zadaniami są przechowywanie danych oraz umożliwianie ich dalszego wykorzystywania w celach biznesowych.
W pierwszej części napiszę więc na temat tego jakie są różne formy przechowywania tych danych oraz czym one różnią się od siebie.
Opiszę więc tabele, widoki, zmaterializowane widoki oraz funkcje i procedury ułatwiające pracę na ogromnych zapytaniach SQL.

Tabele

Tabela w hurtowni danych BigQuery to zbiór wierszy i kolumn, które mogą przechowywać ogromne ilości danych.
Tabele są nieodłączną cechą platformy BigQuery, która zapewnia przewagę nad tradycyjnymi bazami danych.

Jak Stworzyć tabelę w Google BigQuery?

Istnieje wiele różnych sposobów na utworzenie tabeli w BQ a ja przedstawię Ci dzisiaj kilka najprostszych.
Prostym sposobem na stworzenie tabeli w BigQuery jest użycie instrukcji DDL (Data Definition Language) , jak poniżej:
Instrukcja DDL w BigQuery
Innym sposobem na utworzenie tabeli w podobny sposób, ale przy użyciu bardziej GUI niż wyłącznie kodu, jest użycie wyników zapytania. Wystarczy uruchomić instrukcję SELECT, a następnie wykonać SAVE RESULTS → BigQuery Table.
Utworzenie tabeli za pomocą GUI
Tabelę w BiGQuery stworzyć również możesz bezpośrednio przy pomocy Cloud Shell. Po zalogowaniu do Cloud Shell skorzystaj z poniższej komendy edytując swoje parametry projektu i datasetu.
				
					bq mk \
--table \
--expiration integer \
--description description \
--label key_1:value_1 \
--label key_2:value_2 \
project_id:dataset.table \
schema
				
			
Istnieją oczywiście inne sposoby tworzenia tabel w BiGQuery. W praktyce Tabele w surowej warstwie hurtowni danych będą tworzone bezpośrednio przez procesy replikacyjne typu ELT/ETL – o których możesz poczytać więcej tutaj, lub przy pomocy DataForm – narzędzia do budowania i tworzenia tabel w warstwie produkcyjnej hurtowni danych.

Widoki

Widoki w GCP BigQuery to wirtualne tabele zdefiniowane przez zapytanie SQL, które mogą wyświetlać wyniki zapytania lub być używane jako baza dla innych zapytań.
Nie są one fizycznymi tabelami i nie przechowują żadnych danych a co za tym idzie nie generują kosztów.
Zamiast tego odwołują się do danych przechowywanych w innych tabelach. Wspaniałą cechą widoków jest to, że po utworzeniu widoku można nadal wykonywać zapytania do widoku w taki sam sposób, jak do tabeli.
Niektóre z dodatkowych cech widoków to:
W przeciwieństwie do tabel, widoki są często tworzone, aby służyć bardziej konkretnym celom, takim jak ograniczenie dostępu użytkowników do danych lub segmentacja złożonych zapytań. Dobrze zaprojektowana hurtownia danych wykorzystuje widoki we właściwym miejscu i czasie.

Jak stworzyć widok w BigQuery?

Podobnie jak w przypadku tabel najczęstszym sposobem tworzenia widoku w zbiorze danych jest instrukcja DDL – CREATE VIEW
Utworzenie widoku za pomocą instrukcji DDL
Widoki od tabel odróżnisz ich graficzną reprezentacją w interfejsie, dzięki czemu od razu będziesz wiedział czy pracujesz na tabeli czy widoku.

Zmaterializowane widoki

Widok zmaterializowany w GCP BigQuery jest jak połączenie tabeli i widoku.
Przechowuje wyniki zapytania SQL jako strukturę podobną do tabeli w BigQuery, podobnie jak tabela przechowuje dane.
Jednak w przeciwieństwie do zwykłej tabeli, widoki zmaterializowane automatycznie aktualizują przechowywane dane wynikowe po zaktualizowaniu tabel bazowych w czasie rzeczywistym, bez konieczności ponownego uruchamiania zapytania.
Widok zmaterializowany można porównać do migawki wyniku zapytania, zapisywanej jako tabela i aktualizowanej za każdym razem, gdy dane bazowe są aktualizowane.
Może to być bardzo pomocne w przypadku dużych zestawów danych lub zapytań, których uruchomienie zajmuje dużo czasu, ponieważ można je wstępnie obliczyć w widoku zmaterializowanym, aby uzyskać do nich szybki dostęp.
Poniżej znajdziesz kilka podstawowych cech widoków zmaterializowanych w BigQuery:
Zasadniczo, widoki zmaterializowane oferują niskie lub zerowe koszty utrzymania i zwracają świeże dane za każdym razem i przy każdym zapytaniu, niezależnie od tego, jak niedawno zaktualizowano tabele bazowe.
Zmaterializowane widoki są najoptymalniejszym rozwiązaniem do zasilania Twoich narzędzi Business Intelligence jak Looker Studio, o którym więcej możesz przeczytać tutaj.

Użytkownikom końcowym zapewniają dostęp do najświeższych danych w narzędziu BI a z punktu widzenia hurtowni danych gwarantują minimalizację kosztów związanych z ich obsługą.

Jak stworzyć zmaterializowany widok w BigQuery?

Zmaterializowany widok tworzymy tak samo jak widok przy pomocy operacji DDL dodając słowo materialized przed słowem view.
Tworzenie zmaterializowanego widoku

Funkcje i Procedury

Funkcje i procedury (z ang. Users Defined Functions czyli UDF) to sposób na przechowywanie i wykonywanie instrukcji SQL lub JavaScript w GCP BigQuery.
Umożliwiają one napisanie fragmentu kodu wielokrotnego użytku, który można wywołać z dowolnego miejsca w zapytaniu.
Procedur składowanych można używać do obsługi złożonych procesów ETL, wykonywania wywołań API i przeprowadzania walidacji danych.

Osobiście procedury składowane są moją ulubioną funkcją BigQuery, dzięki której można automatyzować wiele codziennych zadań.

Jeśli korzystasz z Pythona lub znasz dowolny język programowania, możesz myśleć o nich jako o funkcjach zdefiniowanych przez użytkownika, w których możesz podać niestandardowe parametry, aby zwrócić żądane dane wyjściowe.
W podobny sposób procedury składowane mają następujące cechy:
Jak zapewne sobie wyobrażacie przypadki ich zastosowania są niezliczone.
Poniżej napiszę kilka z nich tak aby rozjaśnić Ci w jakich sytuacjach warto po nie sięgnąć.

Jak stworzyć funkcję w BigQuery?

Z pomocą znowu przyjdzie nam komenda DDL : Create or replace. W tym przypadku wpisujemy Create or replace function a następnie w nawiasie podajemy jej parametry. Po fragmencie tekstu AS w nawiasie opisujemy co funkcja ma robić.
Poniżej przykład, w którym raz napisany CASE może być później łatwo stosowany we wszystkich naszych zapytaniach co oszczędza nam sporo czasu podczas codziennej pracy.
Tworzenie funkcji w BigQuery

W tym artykule omówiliśmy niektóre z kluczowych zalet BigQuery i kilka powszechnie używanych metod przechowywania danych.

Wiele z tych pojęć może być ci już znanych, jednak mogło to być również dobre podsumowanie tego, jaki różne obiekty danych są dostępne w BigQuery i kiedy z nich korzystać.

W kolejnej części opiszę pozostałe kluczowe funkcjonalności BigQuery

Dokładne zapoznanie się z jej podstawami pomoże Ci zbudować optymalną kosztowo, bezpieczną i w pełni skalowalną hurtownię danych gotową by wspierać najważniejsze zadania analityczne Twojego biznesu.

Zapraszam Cię również do obejrzenia naszej serii filmów szkoleniowych na YouTube gdzie od podstaw wyjaśniam hurtownię danych BigQuery.

 

Ikona plików cookies

Ustawienia plików cookies

Używamy plików cookies, aby zapewnić Ci najlepsze wrażenia z korzystania z naszej strony. Możesz wybrać, które pliki cookies chcesz zaakceptować.
Ikona plików cookies

Informacje o plikach cookies

Szanujemy Twoją prywatność

Używamy plików cookies lub podobnych technologii w celu zapewnienia Ci dostępu do serwisu, usprawniania jego działania, profilowania i wyświetlania treści dopasowanych do Twoich potrzeb. W każdej chwili możesz zmienić ustawienia plików cookies lub podobnych technologii poprzez zmianę ustawień prywatności w przeglądarce bądź aplikacji lub zmianę swoich preferencji w zakładce Ustawienia cookies w stopce strony. Pamiętaj, że zmiana ta może spowodować brak dostępu do niektórych funkcji serwisu.
Dane osobowe dotyczące korzystania z serwisu, w tym zapisywane i odczytywane z plików cookies lub podobnych technologii będą przetwarzane w celu zapewnienia dostępu do serwisu, w celach marketingowych, w tym profilowania, w celach wewnętrznych związanych ze świadczeniem usług oraz prowadzeniem działalności gospodarczej, w tym dowodowych, analitycznych i statystycznych, wykrywania i eliminowania nadużyć oraz w celu wykonywania obowiązków wynikających z przepisów prawa.
Przysługuje Ci prawo do dostępu do danych, ich usunięcia, ograniczenia przetwarzania, przenoszenia, sprzeciwu, sprostowania oraz cofnięcia zgód w każdym czasie. Szczegółowe informacje dotyczące przetwarzania danych oraz przysługujących Ci uprawnień, informacje dotyczące plików cookies lub podobnych technologii, w tym dotyczące możliwości zarządzania ustawieniami prywatności, znajdują się w Polityce Prywatności.