Online- und Offlinedatasets mit BigQuery DataFrames synchronisieren
Wenn Sie Bigtable mit BigQuery verwenden, können Sie eine Echtzeit-Analysedatenbank erstellen und in Pipelines für maschinelles Lernen (ML) verwenden. So können Sie Ihre Daten synchronisieren, Datenbearbeitung und Modellentwicklung (Offlinezugriff) unterstützen und Anwendungen mit geringer Latenz bereitstellen (Onlinezugriff).
Für die Erstellung Ihrer Echtzeitanalysedatenbank können Sie BigQuery DataFrames verwenden, eine Reihe von Open-Source-Python-Bibliotheken für die BigQuery-Datenverarbeitung. Mit BigQuery DataFrames können Sie Modelle in BigQuery entwickeln und trainieren und automatisch eine Kopie der neuesten Datenwerte, die für Ihre ML-Modelle verwendet werden, in Bigtable für die Onlinebereitstellung replizieren.
Dieses Dokument bietet einen Überblick über die Verwendung von bigframes.streaming API
zum Erstellen von BigQuery-Jobs, mit denen Datasets automatisch in BigQuery und Bigtable repliziert und synchronisiert werden. Bevor Sie dieses Dokument lesen, sollten Sie sich mit den folgenden Dokumenten vertraut machen:
BigQuery DataFrames
Mit BigQuery DataFrames können Sie Modelle in BigQuery entwickeln und trainieren und automatisch eine Kopie der neuesten Datenwerte, die für Ihre ML-Modelle verwendet werden, in Bigtable für die Onlinebereitstellung replizieren. Sie können damit Folgendes tun:
- Daten direkt in BigQuery über eine Pandas-kompatible Schnittstelle (
bigframes.pandas
) umwandeln - Modelle mit einer scikit-learn-ähnlichen API (
bigframes.ML
) trainieren - Synchronisieren Sie die für die Inferenz mit niedriger Latenz erforderlichen Daten mit Bigtable (
bigframes.streaming
), um nutzerorientierte Anwendungen zu unterstützen.
BigFrames StreamingDataFrame
bigframes.streaming.StreamingDataFrame
ist ein DataFrame-Typ im BigQuery DataFrames-Paket. Damit können Sie ein StreamingDataFrame
-Objekt erstellen, mit dem ein kontinuierlich ausgeführter Job generiert werden kann, der Daten aus einer bestimmten BigQuery-Tabelle in Bigtable für die Onlinebereitstellung streamt. Dazu werden
kontinuierliche BigQuery-Abfragen generiert.
Ein BigFrames StreamingDataFrame
kann Folgendes tun:
StreamingDataFrame
aus einer bestimmten BigQuery-Tabelle erstellen- Optional können Sie zusätzliche Pandas-Vorgänge wie „select“ (auswählen) und „filter“ (filtern) ausführen und eine Vorschau des Inhalts anzeigen lassen.
- Streamingjobs für Bigtable erstellen und verwalten
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zur Verwendung von BigQuery DataFrames in einem BigQuery-Notebook benötigen:
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Schreiben von Daten in eine Bigtable-Tabelle benötigen:
Jetzt starten
BigQuery DataFrames ist ein Open-Source-Paket. Führen Sie pip install --upgrade bigframes
aus, um die neueste Version zu installieren.
Führen Sie das folgende Code-Snippet aus, um Ihr erstes BigFrames StreamingDataFrame
zu erstellen und Daten zwischen BigQuery und Bigtable zu synchronisieren.
Das vollständige Codebeispiel finden Sie im GitHub-Notebook BigFrames StreamingDataFrame.
import bigframes.streaming as bst
bigframes.options._bigquery_options.project = "PROJECT"
sdf = bst.read_gbq_table("birds.penguins_bigtable_streaming")
job = sdf.to_bigtable(instance="BIGTABLE_INSTANCE",
table="TABLE",
app_profile=None,
truncate=True,
overwrite=True,`
auto_create_column_families=True,
bigtable_options={},
job_id=None,
job_id_prefix= "test_streaming_",)
print(job.running())
print(job.error_result)
Ersetzen Sie Folgendes:
- PROJECT: die ID Ihres Google Cloud Projekts
- BIGTABLE_INSTANCE: die ID der Bigtable-Instanz, die die Tabelle enthält, in die Sie schreiben
- TABLE: die ID der Bigtable-Tabelle, in die Sie schreiben
Sobald der Job initialisiert ist, wird er als kontinuierliche Abfrage in BigQuery ausgeführt und streamt alle Datenänderungen an Bigtable.
Kosten
Für die Verwendung der BigQuery BigFrames API fallen keine zusätzlichen Gebühren an. Ihnen werden jedoch die zugrunde liegenden Ressourcen in Rechnung gestellt, die für kontinuierliche Abfragen, Bigtable und BigQuery verwendet werden.
Für kontinuierliche Abfragen gelten die BigQuery-Kapazitätsrechenpreise, die in Slots gemessen werden. Zum Ausführen kontinuierlicher Abfragen benötigen Sie eine Reservierung mit dem Enterprise oder Enterprise Plus und eine Reservierungszuweisung mit dem CONTINUOUS
-Jobtyp.
Die Nutzung anderer BigQuery-Ressourcen wie Datenaufnahme und ‑speicherung wird zu den in den BigQuery-Preisen angegebenen Preisen berechnet.
Die Nutzung von Bigtable-Diensten, die kontinuierliche Abfrageergebnisse erhalten, wird zu den Bigtable-Preisen abgerechnet.
Beschränkungen
Alle Funktions- und Standortbeschränkungen, die mit kontinuierlichen Abfragen verbunden sind, gelten auch für Streaming-DataFrames.
Nächste Schritte
- Erste Schritte mit Feast auf Google Cloud
- ML-Entwicklung mit Feast optimieren
- Bigtable-Daten abfragen, die in einer externen Tabelle gespeichert sind
- Daten aus BigQuery nach Bigtable exportieren