1. Przegląd
W tym laboratorium dowiesz się, jak analizować strumień danych o transakcjach kartą kredytową zapisywanych w Bigtable. Dowiesz się, jak używać szablonu strumieni zmian Bigtable do BigQuery do eksportowania danych w czasie rzeczywistym. Następnie dowiesz się, jak wysyłać zapytania do dziennika strumienia zmian i jak przeformatowywać dane, aby utworzyć panel informacyjny za pomocą Lookera.
Te warsztaty programistyczne są przeznaczone dla użytkowników technicznych, którzy znają Bigtable, narzędzia wiersza poleceń i usługi przesyłania strumieniowego zdarzeń.

Z tego laboratorium dowiesz się, jak:
- Utwórz tabelę Bigtable z włączonym strumieniem zmian.
- utworzyć zbiór danych BigQuery,
- Uruchom szablon Dataflow
Bigtable change streams to BigQuery. - Wysyłaj do BigQuery zapytania dotyczące strumienia zdarzeń.
- Wizualizuj strumień zdarzeń za pomocą Lookera.
Ten diagram przedstawia architekturę systemu, który wdrożysz.

2. Konfigurowanie projektu
- W konsoli Google Cloud na stronie selektora projektów wybierz lub utwórz projekt Google Cloud.

- Sprawdź, czy w projekcie Google Cloud włączone są płatności.
- Aby włączyć interfejsy API niezbędne do korzystania z usług Dataflow, Bigtable, BigQuery, Looker i Cloud Storage, otwórz tę wstępnie wypełnioną stronę włączania interfejsów API.
3. Tworzenie zbioru danych BigQuery
W dalszej części tego laboratorium kodu przeanalizujesz dane za pomocą BigQuery. Aby utworzyć zbiór danych na potrzeby danych wyjściowych potoku danych, postępuj zgodnie z tymi instrukcjami.
- W konsoli Google Cloud otwórz stronę BigQuery.
- W panelu Eksplorator znajdź nazwę projektu i kliknij rozszerzone menu (3 kropki w pionie obok identyfikatora projektu).
- Kliknij Utwórz zbiór danych.

- W panelu Utwórz zbiór danych wykonaj te czynności:
- W polu Identyfikator zbioru danych wpisz
bigtable_bigquery_tutorial. - Pozostałe ustawienia domyślne pozostaw bez zmian.
- Kliknij Utwórz zbiór danych.
4. Tworzenie tabeli Bigtable z włączonym strumieniem zmian
Bigtable to usługa baz danych NoSQL o krótkim czasie oczekiwania i skalowalności poziomej. Jednym z typowych przypadków użycia jest udostępnianie danych finansowych. Utworzysz tu tabelę, w której można przechowywać transakcje kartą kredytową. Bigtable może obsługiwać zapisywanie transakcji z całego świata z dużą przepustowością, a nawet wykorzystywać te dane do wykrywania oszustw w czasie rzeczywistym.
- W konsoli Google Cloud otwórz stronę instancji Bigtable.
- Kliknij identyfikator instancji, której używasz w tym samouczku. Jeśli nie masz dostępnej instancji, utwórz instancję o wybranej nazwie w regionie w pobliżu. W przypadku pozostałych ustawień możesz użyć konfiguracji domyślnych.

- W panelu nawigacji po lewej stronie kliknij Tabele.
- Kliknij Utwórz tabelę.

- Nazwij tabelę
retail-database. - Dodaj grupę kolumn o nazwie
transactions. - Kliknij Włącz strumień zmian.
- W przypadku zasady czyszczenia pamięci i okresu przechowywania pozostaw wartości domyślne.
- Kliknij Utwórz.

5. Zainicjuj potok danych, aby przechwytywać strumień zmian.
Bigtable działa optymalnie w przypadku odczytów punktowych i skanowania zakresów wierszy, ale analiza całej tabeli może obciążać pojemność obsługi i zasoby procesora. BigQuery świetnie nadaje się do analizowania danych w całych tabelach, dlatego w tym przypadku zastosujesz zapisywanie podwójne. Oznacza to, że będziesz zapisywać dane w Bigtable i BigQuery, co jest powszechną techniką. Nie będzie to wymagać dodatkowego kodowania, ponieważ użyjesz Bigtable change streams to BigQueryszablonu Dataflow: gdy dane zostaną zapisane w Bigtable, potok zapisze rekord zmiany w BigQuery. Gdy dane znajdą się w BigQuery, możesz wykonywać zoptymalizowane zapytania na całym zbiorze danych, które nie wpłyną na wydajność danych w Bigtable.

- Na stronie Bigtable Tabele znajdź swoją tabelę
retail-database. - W kolumnie Change stream (Strumień zmian) kliknij Connect (Połącz).
- W oknie Połącz z Dataflow wybierz BigQuery.
- Kliknij Utwórz zadanie Dataflow.
- W polach parametrów wpisz wartości parametrów. Nie musisz podawać żadnych parametrów opcjonalnych.
- Ustaw identyfikator profilu aplikacji Cloud Bigtable na
default. - Ustaw zbiór danych BigQuery na
bigtable_bigquery_tutorial.
- Kliknij Uruchom zadanie.
- Zanim przejdziesz dalej, poczekaj, aż stan zadania zmieni się na Rozpoczynanie lub Trwa. Gdy zadanie zostanie umieszczone w kolejce, może to potrwać około 5 minut. Strona zostanie automatycznie zaktualizowana. Ten szablon tworzy zadanie strumieniowe, dzięki czemu może stale przetwarzać nowe dane zapisywane w Bigtable, dopóki zadanie nie zostanie ręcznie zatrzymane.

6. Zapisywanie danych w Bigtable
Teraz zapiszesz w tabeli Bigtable transakcje dokonane przy użyciu karty kredytowej w ciągu roku. Ten przykładowy zbiór danych zawiera informacje takie jak numer karty kredytowej, nazwa i identyfikator sprzedawcy oraz kwota. W rzeczywistej aplikacji do przetwarzania płatności kartą kredytową te dane byłyby przesyłane strumieniowo do bazy danych w czasie rzeczywistym w miarę przeprowadzania poszczególnych transakcji.
- Otwórz Cloud Shell, klikając przycisk w prawym górnym rogu konsoli w chmurze.

- Jeśli pojawi się prośba o autoryzację Cloud Shell, zaakceptuj ją.
- Pobierz zbiór danych.
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2023.csv .
- Ustawianie zmiennych środowiskowych w wierszu poleceń
PROJECT_ID=your-project-id
BIGTABLE_INSTANCE_ID=your-bigtable-instance-id
- Użyj interfejsu wiersza poleceń
cbt, aby zapisać w tabeliretail-databaseliczbę transakcji kartą kredytową.
cbt -instance=$BIGTABLE_INSTANCE_ID -project=$PROJECT_ID import \
retail-database cc-transactions-2023.csv column-family=transactions
Wynik będzie wyglądać tak:
Done importing 10000 rows.
7. Wyświetlanie dzienników zmian w BigQuery
- W konsoli Google Cloud otwórz stronę BigQuery.
- W panelu Eksplorator rozwiń projekt i zbiór danych
bigtable_bigquery_tutorial. - Kliknij tabelę
retail-database_changelog. Jeśli tabela nie jest widoczna, może być konieczne odświeżenie zbioru danych. - Aby zobaczyć historię zmian, kliknij Podgląd.

Wypróbuj kilka zapytań
Teraz możesz uruchomić kilka zapytań dotyczących tego zbioru danych, aby uzyskać statystyki. Zapytania SQL są podane tutaj, ale więcej informacji o tym, jak pisać zapytania dotyczące danych historii zmian, znajdziesz w dokumentacji Wykonywanie zapytań w BigQuery dotyczących dziennika zmian Bigtable.
Wyszukiwanie pojedynczej transakcji
Aby wyszukać dane dotyczące konkretnej transakcji, użyj tego zapytania:
SELECT *
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
WHERE row_key="3034-442694-3052#2023-03-03T14:50:46.824Z"
Każda zapisana kolumna została przekształcona w osobny wiersz w BigQuery.
Ustalanie liczby zakupów w każdej kategorii
Aby policzyć liczbę zakupów w poszczególnych kategoriach, użyj tego zapytania:
SELECT value as category, count(*) as `number of sales`
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
WHERE column="category"
GROUP BY category
Ponowne formatowanie danych
Aby przekształcić każdą transakcję w jeden wiersz tabeli BigQuery, musisz przekształcić dane i zapisać wynik w nowej tabeli. W tym formacie łatwiej jest wykonywać zapytania.
CREATE VIEW bigtable_bigquery_tutorial.retail_transactions_view AS (
SELECT *, parse_numeric(amount) as sales_dollars FROM (
SELECT row_key, timestamp, column, value
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
)
PIVOT (
MAX(value)
FOR column in ("merchant", "amount", "category", "transaction_date")
)
)
Tworzenie panelu Looker
- Kliknij Otwórz widok, aby otworzyć stronę szczegółów nowego widoku.
- Kliknij Eksportuj.
- Wybierz Przeglądaj w Looker Studio.

8. Dodawanie wykresów do panelu
Teraz możesz przedstawić informacje na wykresie, aby ułatwić ich zrozumienie i udostępnianie w formie raportu. Do panelu dodasz 3 wykresy:
- Kwoty transakcji w czasie
- Łączna liczba transakcji dla każdego sprzedawcy
- Odsetek transakcji według kategorii

Konfigurowanie strony
- Kliknij każdy istniejący wykres i naciśnij Usuń, aby go usunąć.
- Po prawej stronie strony kliknij Właściwości, aby móc modyfikować dane na wykresie.
Dodawanie wykresów
Kwoty transakcji w czasie
- Kliknij Dodaj wykres i utwórz wykres ciągu czasowego.
- W polu Wymiar ustaw
transaction_date.
- W polu Wskaźnik ustaw
sales_dollars.

Łączna liczba transakcji dla każdego sprzedawcy
- Kliknij Dodaj wykres i utwórz tabelę.
- Ustaw Wymiar na
merchant. - Ustaw Dane na
sales_dollars.
Odsetek transakcji według kategorii
- Kliknij Dodaj wykres i utwórz wykres kołowy.
- Ustaw Wymiar na
category. - Ustaw Dane na
sales_dollars.
Zmiany widoczne w czasie rzeczywistym
Poświęć trochę czasu na zapoznanie się z wartościami na wykresach. Możesz kliknąć konkretnych sprzedawców lub kategorie w tabeli, aby odfiltrować wszystkie wykresy według tych wartości i uzyskać więcej informacji. Następnie możesz zapisać więcej danych i sprawdzić, jak wykres będzie się aktualizować w czasie rzeczywistym.
- Wróć do Cloud Shell.
- Pobierz i zapisz drugi zbiór danych.
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2024-jan.csv .
cbt -instance=$BIGTABLE_INSTANCE_ID -project=$PROJECT_ID import \
retail-database cc-transactions-2024-jan.csv column-family=transactions
- Wróć do panelu Looker i odśwież dane za pomocą polecenia
Ctrl+Shift+Elub kliknij Odśwież dane w menu widoku. Teraz na wykresach powinny być widoczne dane za styczeń 2024 r.
Możesz tworzyć wiele innych rodzajów wykresów i danych. Więcej informacji znajdziesz w dokumentacji Lookera.
9. Czyszczenie danych
Aby uniknąć obciążenia konta Google Cloud opłatami za zasoby zużyte w tym samouczku, możesz usunąć projekt zawierający te zasoby lub zachować projekt i usunąć poszczególne zasoby.
Zatrzymywanie potoku strumienia zmian
- W konsoli Google Cloud otwórz stronę zadań Dataflow.
- Wybierz zadanie przesyłania strumieniowego z listy zadań.
- W menu nawigacyjnym kliknij Zatrzymaj.
- W oknie dialogowym Zatrzymaj zadanie kliknij Anuluj, a następnie Zatrzymaj zadanie.
Usuwanie zasobów Bigtable
Jeśli na potrzeby tego samouczka utworzono instancję Bigtable, możesz ją usunąć lub zwolnić miejsce w utworzonej tabeli.
- W konsoli Google Cloud otwórz stronę instancji Bigtable.
- Kliknij identyfikator instancji, której używasz w tym samouczku.
- W panelu nawigacji po lewej stronie kliknij Tabele.
- Znajdź tabelę
retail-database. - Kliknij Edytuj.
- Odznacz pole Włącz strumień zmian.
- Kliknij Zapisz.
- Otwórz rozszerzone menu tabeli.
- Kliknij Usuń i wpisz nazwę tabeli, aby potwierdzić.
- Opcjonalnie: usuń instancję, jeśli na potrzeby tego samouczka została przez Ciebie utworzona nowa
Usuwanie zbioru danych BigQuery
- W konsoli Google Cloud otwórz stronę BigQuery.
- W panelu Eksplorator znajdź zbiór danych
bigtable_bigquery_tutoriali kliknij go. - Kliknij Usuń, wpisz „usuń”, a potem kliknij Usuń, aby potwierdzić.