Kreditkartentransaktionsdaten mit BigQuery und Looker in Bigtable analysieren und visualisieren

1. Übersicht

Dieses Codelab führt Sie durch die Analyse eines Stroms von Kreditkartentransaktionsdaten, die in Bigtable geschrieben werden. Sie erfahren, wie Sie mit der Vorlage „Bigtable-Änderungsstreams zu BigQuery“ Daten in Echtzeit exportieren. Anschließend erfahren Sie, wie Sie das Änderungsprotokoll abfragen und die Daten so umformatieren, dass Sie mit Looker ein Dashboard erstellen können.

Dieses Codelab richtet sich an technisch versierte Nutzer, die mit Bigtable, Befehlszeilentools und Ereignis-Streamingdiensten vertraut sind.

426dc59200875a20.png

In diesem Codelab erfahren Sie, wie Sie Folgendes tun:

  • Erstellen Sie eine Bigtable-Tabelle mit aktiviertem Änderungsstream.
  • BigQuery-Dataset erstellen
  • Dataflow-Vorlage bereitstellen Bigtable change streams to BigQuery.
  • Abfrage des Ereignisstreams in BigQuery
  • Visualisieren Sie den Ereignisstream mit Looker.

Dieses Diagramm zeigt die Architektur des Systems, das Sie bereitstellen werden.

336e940307d0e0a.png

2. Projekt einrichten

  1. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

eb5309715175de69.png

  1. Die Abrechnung für Ihr Google Cloud-Projekt muss aktiviert sein.
  2. Auf dieser vordefinierten Seite zum Aktivieren von APIs können Sie die erforderlichen APIs für Dataflow, Bigtable, BigQuery, Looker und Cloud Storage aktivieren.

3. BigQuery-Dataset erstellen

Später im Codelab analysieren Sie Daten mit BigQuery. Folgen Sie dieser Anleitung, um den Datensatz für die Ausgabe Ihrer Datenpipeline zu erstellen.

  1. Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
  2. Suchen Sie im Bereich Explorer nach dem Projektnamen und klicken Sie auf das Dreipunkt-Menü (drei vertikale Punkte neben der Projekt-ID).
  3. Klicken Sie auf Dataset erstellen.

122bc1a411b8dc63.png

  1. Führen Sie im Bereich Dataset erstellen die folgenden Schritte aus:
  • Geben Sie unter Dataset-ID bigtable_bigquery_tutorial ein.
  • Übernehmen Sie für alle anderen Felder die Standardeinstellungen.
  • Klicken Sie auf Dataset erstellen.

4. Bigtable-Tabelle mit aktiviertem Änderungsstream erstellen

Bigtable ist ein horizontal skalierbarer NoSQL-Datenbankdienst mit niedriger Latenz. Ein gängiger Anwendungsfall ist die Bereitstellung von Finanzdaten. Hier erstellen Sie eine Tabelle, in der Kreditkartentransaktionen gespeichert werden können. Bigtable kann die Schreibvorgänge mit hohem Durchsatz von Transaktionen auf der ganzen Welt verarbeiten und diese Daten sogar für die Echtzeiterkennung von Betrug verwenden.

  1. Rufen Sie in der Google Cloud Console die Seite Bigtable-Instanzen auf.
  2. Klicken Sie auf die ID der Instanz, die Sie für diese Anleitung verwenden. Wenn keine Instanz verfügbar ist, erstellen Sie eine Instanz mit einem Namen Ihrer Wahl in einer Region in Ihrer Nähe. Für alles andere können Sie die Standardkonfigurationen verwenden.

a2e8de7b66dc42e.png

  1. Klicken Sie im linken Navigationsbereich auf Sicherungen.
  2. Klicken Sie auf Tabelle erstellen.

9c267c00f93747c4.png

  • Geben Sie der Tabelle den Namen retail-database.
  • Fügen Sie eine Spaltenfamilie mit dem Namen transactions hinzu.
  • Wählen Sie Änderungsstream aktivieren aus.
  • Lassen Sie die Standardwerte für die Richtlinie zur Garbage Collection und die Aufbewahrungsdauer unverändert.
  • Klicken Sie auf Erstellen.

696cd1399c354816.png

5. Datenpipeline zum Erfassen des Änderungsstreams initialisieren

Die Leistung von Bigtable ist für Punktlesevorgänge und Zeilenbereichsscans optimal. Tabellenweite Analysen können jedoch die Bereitstellungskapazität und die CPU-Ressourcen belasten. BigQuery eignet sich hervorragend für tabellenweite Analysen. Daher verwenden Sie hier die Lösung mit doppeltem Schreiben. Das bedeutet, dass Sie Ihre Daten in Bigtable und BigQuery schreiben, was eine gängige Methode ist. Hierfür ist keine zusätzliche Codierung erforderlich, da Sie die Dataflow-Vorlage Bigtable change streams to BigQuery verwenden: Wenn Daten in Bigtable geschrieben werden, schreibt die Pipeline einen Änderungseintrag in BigQuery. Sobald die Daten in BigQuery sind, können Sie optimierte Abfragen für den gesamten Datensatz ausführen, die sich nicht auf die Leistung der bereitgestellten Daten in Bigtable auswirken.

f4cd9d8faf10ce77.png

  1. Suchen Sie auf der Seite Bigtable-Tabellen nach Ihrer Tabelle retail-database.
  2. Klicken Sie in der Spalte Änderungsstream auf Verbinden.
  3. Wählen Sie im Dialogfeld Mit Dataflow verbinden die Option BigQuery aus.
  4. Klicken Sie auf Dataflow-Job erstellen.
  5. Geben Sie Ihre Parameterwerte in die Parameterfelder ein. Sie müssen keine optionalen Parameter angeben.
  • Legen Sie die Cloud Bigtable-Anwendungsprofil-ID auf default fest.
  • Legen Sie das BigQuery-Dataset auf bigtable_bigquery_tutorial fest.
  1. Klicken Sie auf Job ausführen.
  2. Warten Sie, bis der Jobstatus Startet oder Wird ausgeführt lautet, bevor Sie fortfahren. Nachdem der Job in die Warteschlange gestellt wurde, kann es etwa fünf Minuten dauern. Die Seite wird automatisch aktualisiert. Mit dieser Vorlage wird ein Streamingjob erstellt, der kontinuierlich neue Daten verarbeitet, die in Bigtable geschrieben werden, bis der Job manuell beendet wird.

a04908b37c6fe96b.png

6. Daten in Bigtable schreiben

Jetzt schreiben Sie ein Jahr lang Kreditkartentransaktionen in Ihre Bigtable-Tabelle. Dieser Beispieldatensatz enthält Informationen wie Kreditkartennummer, Händlername und ‑ID sowie den Betrag. Bei einer tatsächlichen Kreditkartenverarbeitungsanwendung würden diese Daten bei jeder Transaktion in Echtzeit in Ihre Datenbank gestreamt.

  1. Klicken Sie zum Öffnen von Cloud Shell auf die Schaltfläche oben rechts in der Cloud Console.

f6395329b04ecb64.png

  1. Autorisieren Sie Cloud Shell, wenn Sie dazu aufgefordert werden.
  2. Laden Sie das Dataset herunter.
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2023.csv .
  1. Umgebungsvariablen in der Befehlszeile festlegen
PROJECT_ID=your-project-id
BIGTABLE_INSTANCE_ID=your-bigtable-instance-id
  1. Verwenden Sie die cbt CLI, um eine Reihe von Kreditkartentransaktionen in die Tabelle retail-database zu schreiben.
cbt -instance=$BIGTABLE_INSTANCE_ID -project=$PROJECT_ID import \
retail-database cc-transactions-2023.csv  column-family=transactions

Die Ausgabe sieht so aus:

Done importing 10000 rows.

7. Änderungsprotokolle in BigQuery ansehen

  1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.
  2. Maximieren Sie im Bereich Explorer Ihr Projekt und das Dataset bigtable_bigquery_tutorial.
  3. Klicken Sie auf die Tabelle retail-database_changelog. Möglicherweise müssen Sie den Datensatz aktualisieren, wenn die Tabelle nicht vorhanden ist.
  4. Klicken Sie auf Vorschau, um das Änderungsprotokoll aufzurufen.

aa97ff01f944832.png

Suchanfragen ausprobieren

Jetzt können Sie einige Abfragen über dieses Dataset ausführen, um Einblicke zu erhalten. Die SQL-Abfragen finden Sie hier. In der Dokumentation Bigtable-Änderungsprotokoll in BigQuery abfragen finden Sie weitere Informationen zum Schreiben von Abfragen für die Änderungsprotokolldaten.

Einzelne Transaktion suchen

Mit der folgenden Abfrage können Sie die Daten für eine bestimmte Transaktion abrufen.

SELECT *
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
WHERE row_key="3034-442694-3052#2023-03-03T14:50:46.824Z"

Sie werden feststellen, dass jede geschriebene Spalte in BigQuery in eine einzelne Zeile umgewandelt wurde.

Anzahl der Käufe in jeder Kategorie ermitteln

Mit der folgenden Abfrage können Sie die Anzahl der Käufe pro Kategorie zählen.

SELECT value as category, count(*) as `number of sales`
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
WHERE column="category"
GROUP BY category

Daten neu formatieren

Um jede Transaktion in einer einzelnen BigQuery-Tabellenzeile neu zu erstellen, führen Sie eine Pivot-Analyse durch und speichern Sie das Ergebnis in einer neuen Tabelle. Dieses Format ist für Abfragen besser geeignet.

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

Looker-Dashboard erstellen

  1. Klicken Sie auf Zur Ansicht, um die Detailseite der neuen Ansicht aufzurufen.
  2. Klicken Sie auf Exportieren.
  3. Wählen Sie Mit Looker Studio auswerten aus.

bb45482e9101b0f.png

8. Diagramme in das Dashboard einfügen

Sie können die Informationen jetzt in Diagrammen darstellen, um sie leichter zu überblicken und als Bericht zu teilen. Sie fügen Ihrem Dashboard drei Diagramme hinzu:

  • Transaktionsbeträge im Zeitverlauf
  • Transaktionen insgesamt für jeden Händler
  • Prozentsatz der Transaktionen pro Kategorie

426dc59200875a20.png

Seite einrichten

  1. Klicken Sie auf jedes vorhandene Diagramm und drücken Sie die Taste „Löschen“, um es zu entfernen.
  2. Wählen Sie rechts auf der Seite Properties (Properties) aus, um die Diagrammdaten zu ändern.

Diagramme hinzufügen

Transaktionsbeträge im Zeitverlauf

  1. Klicken Sie auf Diagramm hinzufügen und erstellen Sie ein Zeitreihendiagramm.
  2. Legen Sie die Dimension auf transaction_date fest.
  1. Legen Sie den Messwert auf sales_dollars fest.

372bdf2a2bcdb817.png

Transaktionen insgesamt für jeden Händler

  1. Klicken Sie auf Diagramm hinzufügen und erstellen Sie eine Tabelle.
  2. Legen Sie für Dimension den Wert merchant fest.
  3. Legen Sie Messwert auf sales_dollars fest.

Prozentsatz der Transaktionen pro Kategorie

  1. Klicken Sie auf Diagramm hinzufügen und erstellen Sie ein Kreisdiagramm.
  2. Legen Sie Dimension auf category fest.
  3. Legen Sie Messwert auf sales_dollars fest.

Änderungen in Echtzeit ansehen

Nehmen Sie sich Zeit, um die Werte in den Diagrammen zu untersuchen. Sie können in der Tabelle auf bestimmte Händler oder Kategorien klicken. Dadurch werden alle Diagramme nach diesen Werten gefiltert, was Ihnen mehr Informationen liefert. Als Nächstes können Sie weitere Daten schreiben und sehen, wie sich dieses Diagramm in Echtzeit aktualisiert.

  1. Kehren Sie zu Cloud Shell zurück.
  2. Laden Sie das zweite Dataset herunter und schreiben Sie es.
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. Kehren Sie zum Looker-Dashboard zurück und aktualisieren Sie die Daten mit dem Befehl Ctrl+Shift+E oder klicken Sie im Menü Ansicht auf Daten aktualisieren. Jetzt sollten die Daten für Januar 2024 in den Diagrammen angezeigt werden.

Darüber hinaus gibt es viele weitere Diagramm- und Messwerttypen, die Sie erstellen können. Weitere Informationen finden Sie in der Looker-Dokumentation.

9. Bereinigen

Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, können Sie entweder das Projekt löschen, das die Ressourcen enthält, oder das Projekt beibehalten und die einzelnen Ressourcen löschen.

Änderungsstream-Pipeline anhalten

  1. Rufen Sie in der Google Cloud Console die Seite Dataflow-Jobs auf.
  2. Wählen Sie den Streaming-Job aus der Jobliste aus.
  3. Klicken Sie im Navigationsbereich auf Beenden.
  4. Wählen Sie im Dialogfeld „Job beenden“ die Option Abbrechen und dann Job beenden aus.

Bigtable-Ressourcen löschen

Wenn Sie für diese Anleitung eine Bigtable-Instanz erstellt haben, können Sie sie löschen oder die von Ihnen erstellte Tabelle bereinigen.

  1. Rufen Sie in der Google Cloud Console die Seite Bigtable-Instanzen auf.
  2. Klicken Sie auf die ID der Instanz, die Sie für diese Anleitung verwenden.
  3. Klicken Sie im linken Navigationsbereich auf Sicherungen.
  4. Suchen Sie die Tabelle retail-database.
  5. Klicken Sie auf Bearbeiten.
  6. Deaktivieren Sie Änderungsstream aktivieren.
  7. Klicken Sie auf Speichern.
  8. Öffnen Sie das Dreipunkt-Menü für die Tabelle.
  9. Klicken Sie auf Löschen und geben Sie den Namen der Tabelle ein, um den Vorgang zu bestätigen.
  10. Optional: Löschen Sie die Instanz, falls Sie eine neue für diese Anleitung erstellt haben.

BigQuery-Dataset löschen

  1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.
  2. Suchen Sie im Bereich Explorer nach dem Datensatz bigtable_bigquery_tutorial und klicken Sie darauf.
  3. Klicken Sie auf Löschen, geben Sie „löschen“ ein und klicken Sie dann auf Löschen, um den Löschvorgang zu bestätigen.

Nächste Schritte