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

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

426dc59200875a20.png

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

336e940307d0e0a.png

2. Konfigurowanie projektu

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

eb5309715175de69.png

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

  1. W konsoli Google Cloud otwórz stronę BigQuery.
  2. W panelu Eksplorator znajdź nazwę projektu i kliknij 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.
  • 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.

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

a2e8de7b66dc42e.png

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

9c267c00f93747c4.png

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

696cd1399c354816.png

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.

f4cd9d8faf10ce77.png

  1. Na stronie Tables Bigtable znajdź tabelę retail-database.
  2. W kolumnie Zmień strumień kliknij Połącz.
  3. W oknie Połącz z Dataflow wybierz BigQuery.
  4. Kliknij Utwórz zadanie Dataflow.
  5. 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.
  1. Kliknij Uruchom zadanie.
  2. 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.

a04908b37c6fe96b.png

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.

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

f6395329b04ecb64.png

  1. Jeśli pojawi się pytanie o autoryzację Cloud Shell, zaakceptuj je.
  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ć liczbę transakcji kartą kredytową w tabeli retail-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

  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 jest nieobecna, może być konieczne odświeżenie zbioru danych.
  4. Aby wyświetlić dziennik zmian, kliknij Podgląd.

aa97ff01f944832.png

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

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

bb45482e9101b0f.png

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

426dc59200875a20.png

Konfigurowanie strony

  1. Kliknij każdy istniejący wykres i kliknij Usuń, aby go usunąć.
  2. Aby zmodyfikować dane na wykresie, po prawej stronie kliknij Właściwości.

Dodaj wykresy

Kwoty transakcji w czasie

  1. Kliknij Dodaj wykres i utwórz wykres serii czasowej.
  2. Ustaw wartość Wymiaru na transaction_date.
  1. W polu Wskaźnik ustaw wartość 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 na kategorię

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

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

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

  1. W konsoli Google Cloud otwórz stronę Instancje Bigtable.
  2. Kliknij identyfikator instancji, której używasz w tym samouczku.
  3. W panelu nawigacji po lewej stronie kliknij Tables.
  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 została ona utworzona na potrzeby tego samouczka

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 następnie kliknij Usuń, aby potwierdzić.

Co dalej?