1. Wprowadzenie
Wyobraź sobie, że możesz szybciej i skuteczniej przygotowywać dane do analizy bez konieczności bycia ekspertem w zakresie kodowania. Dzięki BigQuery Data Preparation możesz to zrobić. Ta zaawansowana funkcja upraszcza pozyskiwanie, przekształcanie i oczyszczanie danych, oddając przygotowanie danych w ręce wszystkich specjalistów ds. danych w Twojej organizacji.
Chcesz poznać tajemnice ukryte w danych o produktach?
Wymagania wstępne
- podstawowa znajomość konsoli Google Cloud;
 - podstawowa znajomość języka SQL,
 
Czego się nauczysz
- Jak przygotowanie danych w BigQuery może oczyścić i przekształcić dane nieprzetworzone w przydatne statystyki biznesowe. Przykład z branży mody i urody.
 - Jak uruchomić i zaplanować przygotowanie danych oczyszczonych
 
Czego potrzebujesz
- Konto Google Cloud i projekt Google Cloud
 - przeglądarka internetowa, np. Chrome;
 
2. Podstawowa konfiguracja i wymagania
Konfiguracja środowiska w samodzielnym tempie
- Zaloguj się w konsoli Google Cloud i utwórz nowy projekt lub użyj istniejącego. Jeśli nie masz jeszcze konta Gmail ani Google Workspace, musisz je utworzyć.
 



- Nazwa projektu to wyświetlana nazwa uczestników tego projektu. Jest to ciąg znaków, którego nie używają interfejsy API Google. Zawsze możesz ją zaktualizować.
 - Identyfikator projektu jest niepowtarzalny we wszystkich projektach Google Cloud i nie można go zmienić (po ustawieniu). Konsola Cloud automatycznie generuje unikalny ciąg znaków. Zwykle nie ma znaczenia, jaki to ciąg. W większości laboratoriów z kodem musisz podać identyfikator projektu (zwykle oznaczony jako 
PROJECT_ID). Jeśli nie podoba Ci się wygenerowany identyfikator, możesz wygenerować inny losowy. Możesz też spróbować użyć własnego adresu e-mail, aby sprawdzić, czy jest on dostępny. Po wykonaniu tego kroku nie można go zmienić. Pozostanie on na stałe w ramach projektu. - Informacyjnie: istnieje jeszcze 3 wartość, numer projektu, której używają niektóre interfejsy API. Więcej informacji o wszystkich 3 wartościach znajdziesz w dokumentacji.
 
- Następnie musisz włączyć rozliczenia w konsoli Cloud, aby korzystać z zasobów i interfejsów API Cloud. Przejście przez ten samouczek nie będzie wiązać się z wysokimi kosztami, a być może nawet nie będzie trzeba nic płacić. Aby wyłączyć zasoby i uniknąć obciążenia opłatami po zakończeniu samouczka, możesz usunąć utworzone zasoby lub usunąć projekt. Nowi użytkownicy Google Cloud mogą skorzystać z bezpłatnego okresu próbnego, w którym mają do dyspozycji środki w wysokości 300 USD.
 
3. Zanim zaczniesz
Włącz interfejs API
Aby korzystać z Gemini w BigQuery, musisz włączyć interfejs Gemini for Google Cloud API. Zwykle wykonuje go administrator usługi lub właściciel projektu, który ma uprawnienia serviceusage.services.enable.
- Aby włączyć interfejs Gemini for Google Cloud API, otwórz stronę Gemini for Google Cloud w Google Cloud Marketplace. Otwórz Gemini w Google Cloud
 - W selektorze projektów wybierz projekt.
 - Kliknij Włącz. Strona się aktualizuje i wyświetla stan Włączony. Gemini in BigQuery jest teraz dostępny w wybranym projekcie Google Cloud dla wszystkich użytkowników, którzy mają wymagane uprawnienia IAM.
 
Konfigurowanie ról i uprawnień na potrzeby przygotowywania danych
- Na stronie Administracja i uprawnienia kliknij Uprawnienia.
 

- Wybierz użytkownika i kliknij ikonę ołówka, aby „zmienić osobę główną”.
 

Aby korzystać z BigQuery Data Preparation, musisz mieć te role i uprawnienia:
- Edytujący dane BigQuery (roles/bigquery.dataEditor)
 - Konsument korzystający z usługi (roles/serviceusage.serviceUsageConsumer)
 
4. Znajdowanie i subskrybowanie listy „bq data preparation demo” w BigQuery Analytics Hub
W tym samouczku użyjemy zbioru danych bq data preparation demo. Jest to połączony zbiór danych w BigQuery Analytics Hub, z którego będziemy odczytywać dane.
Przygotowanie danych nigdy nie zapisuje danych w źródle. Poprosimy Cię o zdefiniowanie tabeli docelowej, w której mają być zapisywane dane. Tabela, z którą będziemy pracować w ramach tego ćwiczenia, ma tylko 1000 wierszy, aby koszty były jak najmniejsze, ale przygotowanie danych działa w BigQuery i będzie się skalować.
Aby znaleźć połączony zbiór danych i się do niego zasubskrybować:
- Uzyskaj dostęp do Analytics Hub: w konsoli Google Cloud otwórz BigQuery.
 - W menu nawigacyjnym BigQuery w sekcji „Zarządzanie” kliknij „Analytics Hub”.
 

- Wyszukaj informacje: w interfejsie Analytics Hub kliknij Wyszukaj informacje.
 - Wpisz 
bq data preparation demona pasku wyszukiwania i naciśnij Enter. 

- Subskrypcja informacji o firmie: wybierz informacje o firmie 
bq data preparation demoz wyników wyszukiwania. - Na stronie z informacjami o ofercie kliknij przycisk Subskrybuj.
 - Sprawdź okna dialogowe z potwierdzeniem i w razie potrzeby zaktualizuj projekt lub zbiór danych. Domyślne wartości powinny być prawidłowe.
 

- Uzyskaj dostęp do zbioru danych w BigQuery: po wykupieniu subskrypcji zbiory danych w karcie zostaną połączone z Twoim projektem BigQuery.
 
Wróć do BigQuery Studio.
5. Przeglądanie danych i uruchamianie przygotowania danych
- Znajdź zbiór danych i tabelę: w panelu Eksplorator wybierz projekt, a potem znajdź zbiór danych, który był uwzględniony w wykazie 
bq data preparation demo. Wybierz tabelęstg_product. - Otwórz w Preparowaniu danych: kliknij 3 pionowe kropki obok nazwy tabeli i wybierz 
Open in Data Preparation. 
Otworzy się tabela w interfejsie Data Preparation, w której możesz rozpocząć przekształcanie danych.

Jak widać na podglądzie danych poniżej, mamy kilka problemów z danymi, które chcemy rozwiązać:
- Kolumna „Cena” zawiera zarówno kwotę, jak i walutę, co utrudnia analizę.
 - W kolumnie „Produkt” jest podawana nazwa produktu i kategoria (oddzielone znakiem kreski pionowej |).
 

Gemini od razu analizuje Twoje dane i podpowiada kilka przekształceń. W tym przykładzie widzimy liczbę rekomendacji. W kolejnych krokach zastosujemy te, których potrzebujemy.

6. Obsługa kolumny z ceną
Przyjrzyjmy się kolumnie Cena. Jak już wiemy, zawiera ona zarówno walutę, jak i kwotę. Naszym celem jest rozdzielenie tych danych na 2 kolumny: „Waluta” i „Kwota”.
Gemini znalazł kilka rekomendacji dotyczących kolumny Cena.
- Znajdź rekomendację, która brzmi podobnie do tej:
 
Opis: „To wyrażenie usuwa z wybranego pola znak „USD”
REGEXP_REPLACE(Price,` `r'^USD\s',` `r'')
- Wybierz Podgląd.
 

- Kliknij Zastosuj.
 
Następnie w kolumnie Cena przekształcimy typ danych z Ciąg znaków na Liczbowy.
- Znajdź rekomendację, która brzmi podobnie do tej:
 
Opis: „Konwertuje kolumnę Cena z typu string na float64”
SAFE_CAST(Price AS float64)
- Kliknij Zastosuj.
 
W liście kroków powinny teraz być widoczne 3 zastosowane kroki.

7. Obsługa kolumny z produktem
Kolumna Product zawiera nazwę produktu i kategorię rozdzielone znakiem pionowym (|).
Możemy znów użyć języka naturalnego, ale najpierw przyjrzyjmy się innej przydatnej funkcji Gemini.
Popraw nazwę produktu
- Wybierz część kategorii w pliku danych o produkcie, która zawiera znak 
|, i usuń ją. 

Gemini inteligentnie rozpozna ten wzorzec i zaproponuje zastosowanie do całej kolumny odpowiedniej transformacji.
- Kliknij „Edytuj”.
 

Gemini ma świetną rekomendację: usuwa wszystko po znaku „|”, skutecznie izolując nazwę produktu.
Tym razem nie chcemy jednak zastąpić oryginalnych danych.
- W menu kolumny docelowej kliknij „Utwórz nową kolumnę”.
 - Jako nazwę wpisz ProductName.
 

- Wyświetl podgląd zmian, aby sprawdzić, czy wszystko wygląda dobrze.
 - Zastosuj przekształcenie.
 
Wyodrębnianie kategorii produktów
Korzystając z języka naturalnego, polecimy Gemini wyodrębnić słowo po pionowej kresce (|) w kolumnie Produkt. Ta wyodrębniona wartość zostanie zastąpiona w istniejącej kolumnie o nazwie Product.
- Aby dodać nowy krok przekształcenia, kliknij 
Add Step. 

- W menu kliknij 
Transformation. - W polu prompta w języku naturalnym wpisz „wyodrębnij słowo po znaku pionowym (|) w kolumnie Produkt”, a potem naciśnij klawisz Return, aby wygenerować kod SQL.
 

- W kolumnie Docelowa kolumna pozostaw wartość „Produkt”.
 - Kliknij Zastosuj.
 
Transformacja powinna dać takie wyniki.

8. Łączenie danych w celu ich wzbogacenia
Często warto wzbogacać dane informacjami z innych źródeł. W naszym przykładzie złączamy dane produktów z rozszerzonymi atrybutami produktów stg_extended_product z tabeli zewnętrznej. Ta tabela zawiera informacje takie jak marka i data wprowadzenia.
- Kliknij 
Add Step. - Zaznacz 
Join - Przejdź do tabeli 
stg_extended_product. 

Gemini in BigQuery automatycznie wybrał klucz złączenia productid i sklasyfikował lewą i prawą stronę, ponieważ nazwa klucza jest identyczna.
Uwaga: sprawdź, czy pole opisu zawiera tekst „Join by productid”. Jeśli zawiera dodatkowe klucze łączenia, zastąp pole opisu na „Join by productid” i kliknij przycisk wygeneruj w polu opisu, aby ponownie wygenerować wyrażenie złączenia z tym warunkiem: L.
productid
= R.
productid. 
- Opcjonalnie kliknij Podgląd, aby wyświetlić podgląd wyników.
 - Kliknij 
Apply. 
Usuwanie atrybutów rozszerzonych
Mimo że złączenie się udało, dane rozszerzonych atrybutów wymagają oczyszczenia. Kolumna LaunchDate ma niespójne formaty dat, a kolumna Brand zawiera brakujące wartości.
Najpierw zajmiemy się kolumną LaunchDate.

Przed utworzeniem jakichkolwiek przekształceń zapoznaj się z zaleceniami Gemini.
- Kliknij nazwę kolumny 
LaunchDate. Powinny pojawić się rekomendacje podobne do tych na obrazku poniżej. 

- Jeśli zobaczysz rekomendację z tym kodem SQL, zaaplikuj ją i pomiń kolejne kroki.
 
COALESCE(SAFE.PARSE_DATE('%Y-%m-%d',
LaunchDate),SAFE.PARSE_DATE('%Y/%m/%d', LaunchDate))
- Jeśli nie widzisz rekomendacji pasującej do zapytania SQL powyżej, kliknij 
Add Step. - Kliknij 
Transformation. - W polu SQL wpisz:
 
COALESCE(SAFE.PARSE_DATE('%Y-%m-%d',
LaunchDate),SAFE.PARSE_DATE('%Y/%m/%d', LaunchDate))
- Ustaw wartość 
Target ColumnsnaLaunchDate. - Kliknij 
Apply. 
Kolumna LaunchDate ma teraz spójny format daty.

9. Dodawanie tabeli docelowej
Nasz zbiór danych jest już oczyszczony i gotowy do załadowania do tabeli wymiarów w naszym magazynie danych.
- Kliknij 
ADD STEP. - Kliknij 
Destination. - Wypełnij wymagane parametry: Zbiór danych: 
bq_data_preparation_demoTabela:DimProduct - Kliknij 
Save. 

Teraz zajmujemy się kartami „Dane” i „Schemat”. Oprócz tego narzędzie BigQuery Data Preparation udostępnia widok „Grafik”, który wizualizuje kolejność kroków przekształcenia w Twoim strumieniu danych.

10. Bonus A: obsługa kolumny Manufacturer i tworzenie tabeli błędów
Zidentyfikowaliśmy też puste wartości w kolumnie Manufacturer. Chcemy wdrożyć w przypadku tych rekordów sprawdzanie jakości danych i przenieść je do tabeli błędów w celu dalszej weryfikacji.
Tworzenie tabeli błędów
- Obok tytułu 
stg_product data preparationkliknij przyciskMore. - W sekcji 
SettingkliknijError Table. - Zaznacz pole 
Enable error tablei skonfiguruj ustawienia w ten sposób: 
- Zbiór danych: wybierz 
bq_data_preparation_demo - Tabela: wpisz 
err_dataprep - W sekcji 
Define duration for keeping errorswybierz30 days (default). 
- Kliknij 
Save. 

Konfigurowanie weryfikacji w kolumnie Producent
- Wybierz kolumnę Producent.
 - Gemini prawdopodobnie zidentyfikuje odpowiednie przekształcenie. Znajdź rekomendację, która zachowuje tylko wiersze, w których pole Manufacturer nie jest puste. Będzie ona zawierać zapytanie SQL podobne do tego:
 
Manufacturer IS NOT NULL
2.Aby sprawdzić rekomendację, kliknij przycisk „Edytuj”.

- Zaznacz opcję „Wiersze, których weryfikacja się nie udała, trafiają do tabeli błędów”, jeśli nie jest zaznaczona.
 - Kliknij 
Apply. 
W dowolnym momencie możesz sprawdzić, zmodyfikować lub usunąć zastosowane przekształcenia, klikając przycisk „Zastosowano kroki”.

Usuń zbędącą kolumnę ProductID_1
Kolumnę ProductID_1, która zawiera zduplikowany identyfikator ProductID z naszej połączonej tabeli, można teraz usunąć.
- Otwórz kartę 
Schema. - Kliknij 3 kropki obok kolumny 
ProductID_1. - Kliknij 
Drop. 
Możemy teraz uruchomić zadanie przygotowania danych i sprawdzać cały potok. Gdy uzyskamy zadowalające wyniki, możemy zaplanować automatyczne wykonywanie zadania.
- Zapisz swoje przygotowania, zanim przełączysz się z widoku przygotowania danych. Obok tytułu 
stg_product data preparationpowinien wyświetlać się przyciskSave. Kliknij przycisk, aby zapisać. 
11. Czyszczenie środowiska
- Usuń 
stg_product data preparation - Usuń zbiór danych 
bq data preparation demo 
12. Gratulacje
Gratulujemy ukończenia ćwiczenia.
Omówione zagadnienia
- Konfiguracja przygotowania danych
 - Otwieranie tabel i przechodzenie do przygotowania danych
 - Dzielenie kolumn z danymi opisowymi i liczbowymi
 - Ujednolicenie formatów dat
 - Uruchamianie przygotowania danych