1. Omówienie
Dzięki temu ćwiczeniu w Codelabs dowiesz się, jak analizować strumień danych o transakcjach kart kredytowych zapisywany w Bigtable. Dowiedz się, jak używać szablonu Bigtable Change Streams to BigQuery do eksportowania danych w czasie rzeczywistym. Następnie poznasz techniki tworzenia zapytań do logów strumienia zmian oraz sposoby przeformatowania danych w celu utworzenia panelu za pomocą narzędzia Looker.
Ten warsztat jest przeznaczony dla użytkowników technicznych, którzy znają Bigtable, korzystają z narzędzi wiersza poleceń i usług strumieniowania zdarzeń.
Ten samouczek pokazuje, jak:
- Tworzenie tabeli Bigtable z włączonym strumieniem zmian.
- Utwórz zbiór danych BigQuery.
- Wdrażanie szablonu Dataflow
Bigtable change streams to BigQuery.
- Wyślij zapytanie do strumienia zdarzeń w BigQuery.
- Wizualizacja strumienia zdarzeń za pomocą Looker.
Ten diagram przedstawia architekturę systemu, który będziesz wdrażać.
2. Konfigurowanie projektu
- W konsoli Google Cloud na stronie selektora projektu wybierz lub utwórz projekt Google Cloud.
- Sprawdź, czy w projekcie Google Cloud są włączone płatności.
- Otwórz tę wstępnie wypełnioną stronę włączania interfejsu API, aby włączyć interfejsy API niezbędne dla Dataflow, Bigtable, BigQuery, Looker i Cloud Storage.
3. Tworzenie zbioru danych BigQuery
W dalszej części tego ćwiczenia przeanalizujesz dane za pomocą BigQuery. Aby utworzyć zbiór danych na potrzeby danych wyjściowych z przepływu danych, postępuj zgodnie z tymi instrukcjami.
- W konsoli Google Cloud otwórz stronę BigQuery.
- W panelu Eksplorator znajdź nazwę projektu i kliknij 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
. - Pozostaw pozostałe ustawienia domyślne bez zmian.
- Kliknij Utwórz zbiór danych.
4. Tworzenie tabeli Bigtable z włączonym strumieniem zmian
Bigtable to usługa bazy danych NoSQL o niskim opóźnieniu i skalowalności poziomej. Jednym z typowych zastosowań jest obsługa danych finansowych. W tym miejscu utworzysz tabelę, w której możesz zapisać transakcje kartą kredytową. Bigtable może obsługiwać zapisy o dużej przepustowości transakcji na całym świecie, a nawet używać tych danych do wykrywania oszustw w czasie rzeczywistym.
- W konsoli Google Cloud otwórz stronę Instancje Bigtable.
- Kliknij identyfikator instancji, której używasz w tym samouczku. Jeśli nie masz dostępnej instancji, utwórz instancję z wybraną nazwą w pobliskim regionie. W przypadku innych ustawień możesz użyć domyślnych konfiguracji.
- W panelu użytkownika po lewej stronie kliknij Tabele.
- Kliknij Utwórz tabelę.
- Nazwij tabelę
retail-database
. - Dodaj grupę kolumn o nazwie
transactions
. - Wybierz Włącz strumień zmian.
- Pozostaw domyślne wartości zasad usuwania śmieci i okresu przechowywania.
- Kliknij Utwórz.
5. Zainicjuj potok danych, aby przechwycić strumień zmian
Wydajność Bigtable jest optymalna w przypadku odczytu punktu i skanowania zakresu wierszy, ale analiza całej tabeli może obciążać pojemność i zasoby procesora. BigQuery świetnie nadaje się do analizy całej tabeli, więc rozwiązanie, którego użyjesz, to podwójne zapisywanie. Oznacza to, że zapiszesz dane w Bigtable i BigQuery – jest to powszechnie stosowana technika. Nie będzie to wymagało dodatkowego kodowania, ponieważ użyjesz szablonu Dataflow Bigtable change streams to BigQuery
: podczas zapisywania danych w Bigtable potok zapisze rekord zmian w BigQuery. Gdy dane znajdą się w BigQuery, możesz wykonywać w całym zbiorze danych zapytania zoptymalizowane, które nie wpłyną na wydajność danych służących do obsługi w Bigtable.
- Na stronie Tables Bigtable znajdź tabelę
retail-database
. - W kolumnie Zmień strumień kliknij Połącz.
- W oknie Połącz z Dataflow wybierz BigQuery.
- Kliknij Utwórz zadanie Dataflow.
- W podanych 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 Uruchomiono lub Uruchomiono. Gdy zadanie zostanie umieszczone w kolejce, może minąć około 5 minut. Strona zostanie automatycznie zaktualizowana. Ten szablon tworzy zadanie strumieniowe, które może nieprzerwanie przetwarzać nowe dane zapisywane w Bigtable, dopóki nie zostanie ręcznie zatrzymane.
6. Zapisywanie danych w Bigtable
Teraz zapisz w tabeli Bigtable transakcje z karty kredytowej za cały rok. Ten przykładowy zbiór danych zawiera takie informacje jak numer karty kredytowej, nazwa i identyfikator sprzedawcy oraz kwota. W przypadku rzeczywistej aplikacji do przetwarzania kart kredytowych te dane byłyby przesyłane do bazy danych w czasie rzeczywistym w miarę dokonywania poszczególnych transakcji.
- Otwórz Cloud Shell, klikając przycisk w prawym górnym rogu konsoli w chmurze.
- Jeśli pojawi się pytanie o autoryzację Cloud Shell, zaakceptuj je.
- 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ć liczbę transakcji kartą kredytową w tabeliretail-database
.
cbt -instance=$BIGTABLE_INSTANCE_ID -project=$PROJECT_ID import \
retail-database cc-transactions-2023.csv column-family=transactions
W wyniku działania będzie widoczny komunikat
Done importing 10000 rows.
7. Wyświetlanie logó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 jest nieobecna, może być konieczne odświeżenie zbioru danych. - Aby wyświetlić dziennik zmian, kliknij Podgląd.
Wypróbuj kilka zapytań
Możesz teraz wykonać kilka zapytań dotyczących tego zbioru danych, aby uzyskać pewne statystyki. Zapytania SQL są podane tutaj, ale w dokumentacji Wykonywanie zapytań do dziennika zmian Bigtable w BigQuery znajdziesz więcej informacji o składaniu zapytań do danych dziennika zmian.
Wyszukiwanie pojedynczej transakcji
Użyj poniższego zapytania, aby wyszukać dane dotyczące konkretnej transakcji.
SELECT *
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
WHERE row_key="3034-442694-3052#2023-03-03T14:50:46.824Z"
Zobaczysz, że każda zapisana kolumna została przekształcona w pojedynczy wiersz w BigQuery.
Sprawdzanie liczby zakupów w poszczególnych kategoriach
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
Zmień format danych.
Aby zrekonstruować każdą transakcję w jednym wierszu tabeli BigQuery, możesz przestawić dane i zapisać wynik w nowej tabeli. Jest to format łatwiejszy do przetworzenia.
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 Lookera
- Kliknij Przejdź do widoku, aby otworzyć stronę szczegółów nowego widoku.
- Kliknij Eksportuj.
- Wybierz Przeglądaj w Looker Studio.
8. Dodaj wykresy do panelu
Możesz teraz przedstawić te informacje na wykresie, aby ułatwić ich przyswajanie i udostępnianie w formie raportu. Do panelu informacyjnego dodasz 3 wykresy:
- kwoty transakcji na przestrzeni czasu,
- Łączna liczba transakcji każdego sprzedawcy
- Odsetek transakcji według kategorii
Konfigurowanie strony
- Kliknij każdy istniejący wykres i kliknij Usuń, aby go usunąć.
- Aby zmodyfikować dane na wykresie, po prawej stronie kliknij Właściwości.
Dodaj wykresy
Kwoty transakcji w czasie
- Kliknij Dodaj wykres i utwórz wykres serii czasowej.
- Ustaw wartość Wymiaru na
transaction_date
.
- W polu Wskaźnik ustaw wartość
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 na kategorię
- Kliknij Dodaj wykres i utwórz wykres kołowy.
- Ustaw Wymiar na
category
. - Ustaw Dane na
sales_dollars
.
Obserwowanie zmian w czasie rzeczywistym
Poświęć trochę czasu na zapoznanie się z wartościami na wykresach. Możesz kliknąć w tabeli konkretnego sprzedawcę lub konkretne kategorie, co spowoduje, że wszystkie wykresy zostaną przefiltrowane pod kątem tych konkretnych wartości, co pozwoli Ci uzyskać więcej informacji. Następnie możesz zapisać więcej danych i obserwować, 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 Lookera i odśwież dane za pomocą polecenia
Ctrl+Shift+E
lub kliknij Odśwież dane w menu view. Na wykresach powinny się teraz pojawić dane z stycznia 2024 r.
Oprócz tego możesz tworzyć wiele różnych wykresów i rodzajów 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ę Zadania Dataflow.
- Wybierz zadanie strumieniowego przesyłania danych z listy zadań.
- W nawigacji kliknij Zatrzymaj.
- W oknie Zatrzymywanie zadania wybierz Anuluj, a następnie kliknij Zatrzymaj zadanie.
Usuwanie zasobów Bigtable
Jeśli na potrzeby tego samouczka utworzyłeś instancję Bigtable, możesz ją usunąć lub wyczyścić utworzoną tabelę.
- W konsoli Google Cloud otwórz stronę Instancje Bigtable.
- Kliknij identyfikator instancji, której używasz w tym samouczku.
- W panelu nawigacji po lewej stronie kliknij Tables.
- 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 została ona utworzona na potrzeby tego samouczka
Usuwanie zbioru danych BigQuery
- W konsoli Google Cloud otwórz stronę BigQuery.
- W panelu Eksplorator znajdź zbiór danych
bigtable_bigquery_tutorial
i kliknij go. - Kliknij Usuń, wpisz usuń, a następnie kliknij Usuń, aby potwierdzić.