1. Übersicht
In diesem Codelab wird gezeigt, wie Sie einen Stream von Kreditkartentransaktionsdaten analysieren, die in Bigtable geschrieben werden. Sie erfahren, wie Sie die Vorlage „Bigtable-Änderungsstreams zu BigQuery“ verwenden, um Daten in Echtzeit zu exportieren. Anschließend sehen Sie Techniken zum Abfragen des Änderungsstream-Logs und zum Umformatieren der Daten, um mit Looker ein Dashboard zu erstellen.
Dieses Codelab richtet sich an technische Nutzer, die mit Bigtable, Befehlszeilentools und Event-Streaming-Diensten vertraut sind.

In diesem Codelab erfahren Sie, wie Sie Folgendes tun:
- Bigtable-Tabelle mit aktiviertem Änderungsstream erstellen
- BigQuery-Dataset erstellen
- Dataflow-Vorlage bereitstellen
Bigtable change streams to BigQuery. - Ereignisstream in BigQuery abfragen
- Ereignisstream mit Looker visualisieren
Dieses Diagramm zeigt die Architektur des Systems, das Sie bereitstellen werden.

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

- Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
- Rufen Sie diese Seite auf, um die erforderlichen APIs für Dataflow, Bigtable, BigQuery, Looker und Cloud Storage zu aktivieren.
3. BigQuery-Dataset erstellen
Später in diesem Codelab analysieren Sie Daten mit BigQuery. Folgen Sie dieser Anleitung, um das Dataset für die Ausgabe Ihrer Datenpipeline zu erstellen.
- Öffnen Sie in der Google Cloud Console die BigQuery-Seite.
- Suchen Sie im Bereich Explorer nach Ihrem Projektnamen und klicken Sie auf das Dreipunkt-Menü (drei vertikale Punkte neben der Projekt-ID).
- Klicken Sie auf Dataset erstellen.

- Führen Sie im Bereich Dataset erstellen die folgenden Schritte aus:
- Geben Sie unter Dataset-ID
bigtable_bigquery_tutorialein. - Übernehmen Sie die anderen Standardeinstellungen.
- Klicken Sie auf Dataset erstellen.
4. Bigtable-Tabelle mit aktiviertem Änderungsstream erstellen
Bigtable ist ein NoSQL-Datenbankdienst mit niedriger Latenz und horizontaler Skalierbarkeit. Ein häufiger Anwendungsfall ist die Bereitstellung von Finanzdaten. Hier erstellen Sie eine Tabelle, in der Kreditkartentransaktionen gespeichert werden können. Bigtable kann den hohen Durchsatz von Schreibvorgängen für Transaktionen auf der ganzen Welt verarbeiten und diese Daten sogar für die Echtzeit-Betrugserkennung verwenden.
- Rufen Sie in der Google Cloud Console die Seite Bigtable-Instanzen auf.
- Klicken Sie auf die ID der Instanz, die Sie für diese Anleitung verwenden. Wenn Sie keine Instanz haben, 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.

- Klicken Sie im linken Navigationsbereich auf Sicherungen.
- Klicken Sie auf Tabelle erstellen.

- Geben Sie der Tabelle den Namen
retail-database. - Fügen Sie eine Spaltenfamilie mit dem Namen
transactionshinzu. - Wählen Sie Änderungsstream aktivieren aus.
- Behalten Sie die Standardwerte für die Richtlinie zur automatischen Speicherbereinigung und den Aufbewahrungszeitraum bei.
- Klicken Sie auf Erstellen.

5. Datenpipeline initialisieren, um den Änderungsstream zu erfassen
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 die tabellenweite Analyse. Daher verwenden Sie hier Dual-Writes. Das bedeutet, dass Sie Ihre Daten in Bigtable und BigQuery schreiben. Das ist eine gängige Methode. Dafür ist kein zusätzlicher Code erforderlich, da Sie die Dataflow-Vorlage Bigtable change streams to BigQuery verwenden: Wenn Daten in Bigtable geschrieben werden, schreibt die Pipeline einen Änderungsdatensatz in BigQuery. Sobald die Daten in BigQuery sind, können Sie optimierte Abfragen für Ihr gesamtes Dataset ausführen, ohne die Leistung Ihrer Serving-Daten in Bigtable zu beeinträchtigen.

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

6. Daten in Bigtable schreiben
Als Nächstes schreiben Sie ein Jahr lang Kreditkartentransaktionen in Ihre Bigtable-Tabelle. Dieses Beispiel-Dataset enthält Informationen wie Kreditkartennummer, Händlername und ‑ID sowie Betrag. In einer tatsächlichen Anwendung zur Kreditkartenverarbeitung würden diese Daten in Echtzeit in Ihre Datenbank gestreamt, sobald eine Transaktion erfolgt.
- Klicken Sie zum Öffnen der Cloud Shell auf die Schaltfläche oben rechts in der Cloud Console.

- Wenn Sie dazu aufgefordert werden, autorisieren Sie die Cloud Shell.
- Laden Sie das Dataset herunter.
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2023.csv .
- Umgebungsvariablen in der Befehlszeile festlegen
PROJECT_ID=your-project-id
BIGTABLE_INSTANCE_ID=your-bigtable-instance-id
- Verwenden Sie die
cbt-Befehlszeile, um eine Reihe von Kreditkartentransaktionen in die Tabelleretail-databasezu schreiben.
cbt -instance=$BIGTABLE_INSTANCE_ID -project=$PROJECT_ID import \
retail-database cc-transactions-2023.csv column-family=transactions
Die Ausgabe lautet
Done importing 10000 rows.
7. Änderungsprotokolle in BigQuery ansehen
- Öffnen Sie in der Google Cloud Console die BigQuery-Seite.
- Maximieren Sie im Bereich Explorer Ihr Projekt und das Dataset
bigtable_bigquery_tutorial. - Klicken Sie auf die Tabelle
retail-database_changelog. Wenn die Tabelle nicht vorhanden ist, müssen Sie das Dataset möglicherweise aktualisieren. - Wenn Sie das Änderungsprotokoll aufrufen möchten, klicken Sie auf Vorschau.

Suchanfragen ausprobieren
Sie können nun einige Abfragen für dieses Dataset ausführen, um Einblicke zu erhalten. Die SQL-Abfragen werden hier bereitgestellt. In der Dokumentation Bigtable-Änderungslog in BigQuery abfragen finden Sie weitere Informationen zum Schreiben von Abfragen für die Änderungslogdaten.
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"
Jede geschriebene Spalte wurde in BigQuery in eine separate Zeile umgewandelt.
Anzahl der Käufe in jeder Kategorie ermitteln
Verwenden Sie die folgende Abfrage, um die Anzahl der Käufe pro Kategorie zu 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 zu rekonstruieren, müssen Sie die Daten pivotieren und das Ergebnis in einer neuen Tabelle speichern. Dieses Format ist einfacher abzufragen.
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
- Klicken Sie auf Zur Ansicht, um die Detailseite der neuen Ansicht aufzurufen.
- Klicken Sie auf Exportieren.
- Wählen Sie Mit Looker Studio auswerten aus.

8. Diagramme zum Dashboard hinzufügen
Sie können die Informationen jetzt grafisch darstellen, um sie leichter zu erfassen und als Bericht zu teilen. Sie fügen Ihrem Dashboard drei Diagramme hinzu:
- Transaktionsbeträge im Zeitverlauf
- Gesamtzahl der Transaktionen für jeden Händler
- Prozentsatz der Transaktionen pro Kategorie

Seite einrichten
- Klicken Sie auf jedes vorhandene Diagramm und drücken Sie die Entf-Taste, um es zu entfernen.
- Wählen Sie rechts auf der Seite Properties (Eigenschaften) aus, um die Diagrammdaten zu ändern.
Diagramme hinzufügen
Transaktionsbeträge im Zeitverlauf
- Klicken Sie auf Diagramm hinzufügen und erstellen Sie ein Zeitreihendiagramm.
- Legen Sie die Dimension auf
transaction_datefest.
- Legen Sie den Messwert auf
sales_dollarsfest.

Gesamtzahl der Transaktionen für jeden Händler
- Klicken Sie auf Diagramm hinzufügen und erstellen Sie eine Tabelle.
- Legen Sie für Dimension den Wert
merchantfest. - Setzen Sie Messwert auf
sales_dollars.
Prozentsatz der Transaktionen pro Kategorie
- Klicken Sie auf Diagramm hinzufügen und erstellen Sie ein Kreisdiagramm.
- Legen Sie für Dimension den Wert
categoryfest. - Setzen Sie Messwert auf
sales_dollars.
Änderungen in Echtzeit sehen
Nehmen Sie sich etwas Zeit, um die Werte in den Grafiken zu untersuchen. Sie können in der Tabelle auf bestimmte Händler oder Kategorien klicken. Dadurch werden alle Diagramme nach diesen Werten gefiltert und Sie erhalten weitere Informationen. Als Nächstes können Sie weitere Daten eingeben und sehen, wie sich das Diagramm in Echtzeit aktualisiert.
- Kehren Sie zu Cloud Shell zurück.
- 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
- Kehren Sie zu Ihrem Looker-Dashboard zurück und aktualisieren Sie die Daten mit dem Befehl
Ctrl+Shift+Eoder klicken Sie im Menü Ansicht auf Daten aktualisieren. Sie sollten jetzt die Daten für Januar 2024 in den Diagrammen sehen.
Darüber hinaus gibt es viele weitere Diagramme und Messwerte, 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.
Pipeline für Änderungsstream beenden
- Rufen Sie in der Google Cloud Console die Seite Dataflow-Jobs auf.
- Wählen Sie den Streaming-Job aus der Jobliste aus.
- Klicken Sie im Navigationsbereich auf Beenden.
- Wählen Sie im Dialogfeld „Job beenden“ die Option Abbrechen aus und klicken Sie dann auf Job beenden.
Bigtable-Ressourcen löschen
Wenn Sie eine Bigtable-Instanz für diese Anleitung erstellt haben, können Sie sie löschen oder die von Ihnen erstellte Tabelle bereinigen.
- Rufen Sie in der Google Cloud Console die Seite Bigtable-Instanzen auf.
- Klicken Sie auf die ID der Instanz, die Sie für diese Anleitung verwenden.
- Klicken Sie im linken Navigationsbereich auf Sicherungen.
- Suchen Sie die Tabelle
retail-database. - Klicken Sie auf Bearbeiten.
- Deaktivieren Sie Änderungsstream aktivieren.
- Klicken Sie auf Speichern.
- Öffnen Sie das Dreipunkt-Menü für die Tabelle.
- Klicken Sie auf Löschen und geben Sie den Tabellennamen zur Bestätigung ein.
- Optional: Instanz löschen, wenn Sie für diese Anleitung eine neue Instanz erstellt haben
BigQuery-Dataset löschen
- Öffnen Sie in der Google Cloud Console die BigQuery-Seite.
- Suchen Sie im Bereich Explorer nach dem Dataset
bigtable_bigquery_tutorialund klicken Sie darauf. - Klicken Sie auf Löschen, geben Sie „delete“ ein und klicken Sie dann auf Löschen, um den Löschvorgang zu bestätigen.