Analizuj i wizualizuj dane transakcji kartą kredytową w Bigtable za pomocą BigQuery i Lookera

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ń.

426dc59200875a20.png

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.

336e940307d0e0a.png

2. Konfigurowanie projektu

  1. W konsoli Google Cloud na stronie selektora projektów wybierz lub utwórz projekt Google Cloud.

eb5309715175de69.png

  1. Sprawdź, czy w projekcie Google Cloud włączone są płatności.
  2. 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.

  1. W konsoli Google Cloud otwórz stronę BigQuery.
  2. W panelu Eksplorator znajdź nazwę projektu i kliknij rozszerzone menu (3 kropki w pionie obok identyfikatora projektu).
  3. Kliknij Utwórz zbiór danych.

122bc1a411b8dc63.png

  1. 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.

  1. W konsoli Google Cloud otwórz stronę instancji Bigtable.
  2. 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.

a2e8de7b66dc42e.png

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

9c267c00f93747c4.png

  • 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.

696cd1399c354816.png

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.

f4cd9d8faf10ce77.png

  1. Na stronie Bigtable Tabele znajdź swoją tabelę retail-database.
  2. W kolumnie Change stream (Strumień zmian) kliknij Connect (Połącz).
  3. W oknie Połącz z Dataflow wybierz BigQuery.
  4. Kliknij Utwórz zadanie Dataflow.
  5. 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.
  1. Kliknij Uruchom zadanie.
  2. 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.

a04908b37c6fe96b.png

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.

  1. Otwórz Cloud Shell, klikając przycisk w prawym górnym rogu konsoli w chmurze.

f6395329b04ecb64.png

  1. Jeśli pojawi się prośba o autoryzację Cloud Shell, zaakceptuj ją.
  2. Pobierz zbiór danych.
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2023.csv .
  1. Ustawianie zmiennych środowiskowych w wierszu poleceń
PROJECT_ID=your-project-id
BIGTABLE_INSTANCE_ID=your-bigtable-instance-id
  1. Użyj interfejsu wiersza poleceń cbt, aby zapisać w tabeli retail-database liczbę 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

  1. W konsoli Google Cloud otwórz stronę BigQuery.
  2. W panelu Eksplorator rozwiń projekt i zbiór danych bigtable_bigquery_tutorial.
  3. Kliknij tabelę retail-database_changelog. Jeśli tabela nie jest widoczna, może być konieczne odświeżenie zbioru danych.
  4. Aby zobaczyć historię zmian, kliknij Podgląd.

aa97ff01f944832.png

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

  1. Kliknij Otwórz widok, aby otworzyć stronę szczegółów nowego widoku.
  2. Kliknij Eksportuj.
  3. Wybierz Przeglądaj w Looker Studio.

bb45482e9101b0f.png

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

426dc59200875a20.png

Konfigurowanie strony

  1. Kliknij każdy istniejący wykres i naciśnij Usuń, aby go usunąć.
  2. Po prawej stronie strony kliknij Właściwości, aby móc modyfikować dane na wykresie.

Dodawanie wykresów

Kwoty transakcji w czasie

  1. Kliknij Dodaj wykres i utwórz wykres ciągu czasowego.
  2. W polu Wymiar ustaw transaction_date.
  1. W polu Wskaźnik ustaw sales_dollars.

372bdf2a2bcdb817.png

Łączna liczba transakcji dla każdego sprzedawcy

  1. Kliknij Dodaj wykres i utwórz tabelę.
  2. Ustaw Wymiar na merchant.
  3. Ustaw Dane na sales_dollars.

Odsetek transakcji według kategorii

  1. Kliknij Dodaj wykres i utwórz wykres kołowy.
  2. Ustaw Wymiar na category.
  3. 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.

  1. Wróć do Cloud Shell.
  2. 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
  1. Wróć do panelu Looker i odśwież dane za pomocą polecenia Ctrl+Shift+E lub 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

  1. W konsoli Google Cloud otwórz stronę zadań Dataflow.
  2. Wybierz zadanie przesyłania strumieniowego z listy zadań.
  3. W menu nawigacyjnym kliknij Zatrzymaj.
  4. 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.

  1. W konsoli Google Cloud otwórz stronę instancji Bigtable.
  2. Kliknij identyfikator instancji, której używasz w tym samouczku.
  3. W panelu nawigacji po lewej stronie kliknij Tabele.
  4. Znajdź tabelę retail-database.
  5. Kliknij Edytuj.
  6. Odznacz pole Włącz strumień zmian.
  7. Kliknij Zapisz.
  8. Otwórz rozszerzone menu tabeli.
  9. Kliknij Usuń i wpisz nazwę tabeli, aby potwierdzić.
  10. Opcjonalnie: usuń instancję, jeśli na potrzeby tego samouczka została przez Ciebie utworzona nowa

Usuwanie zbioru danych BigQuery

  1. W konsoli Google Cloud otwórz stronę BigQuery.
  2. W panelu Eksplorator znajdź zbiór danych bigtable_bigquery_tutorial i kliknij go.
  3. Kliknij Usuń, wpisz „usuń”, a potem kliknij Usuń, aby potwierdzić.

Co dalej?