Online- und Offline-Datasets mit BigQuery DataFrames synchronisieren
Mit Bigtable und BigQuery können Sie eine Echtzeit-Analysedatenbank erstellen und in ML-Pipelines verwenden. So können Sie Ihre Daten synchronisieren und die Datenmanipulation und Modellentwicklung (Offlinezugriff) sowie die Bereitstellung von Anwendungen mit geringer Latenz (Onlinezugriff) unterstützen.
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.
In diesem Dokument erhalten Sie eine Übersicht darüber, wie Sie mit der bigframes.streaming API
BigQuery-Jobs erstellen, mit denen Datensätze automatisch in BigQuery und Bigtable repliziert und synchronisiert werden. Bevor Sie dieses Dokument lesen, sollten Sie mit den folgenden Dokumenten vertraut sein:
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:
- Datentransformationen in einer Pandas-kompatiblen Benutzeroberfläche (
bigframes.pandas
) direkt auf BigQuery-Daten entwickeln - 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 fortlaufend laufender Job generiert wird, der Daten aus einer bestimmten BigQuery-Tabelle für die Onlinebereitstellung in Bigtable streamt. Dazu werden
kontinuierliche BigQuery-Abfragen generiert.
Mit einem BigFrames StreamingDataFrame
können Sie Folgendes tun:
StreamingDataFrame
aus einer bestimmten BigQuery-Tabelle erstellen- Optional können Sie weitere Pandas-Vorgänge wie Auswahl, Filterung und Vorschau der Inhalte ausführen.
- 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 Ihre erste 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
Nach der Initialisierung wird der Job als fortlaufende Abfrage in BigQuery ausgeführt und alle Datenänderungen werden nach Bigtable gestreamt.
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 im BigQuery-Preisverzeichnis angegebenen Preisen abgerechnet.
Die Nutzung von Bigtable-Diensten, die kontinuierlich Abfrageergebnisse erhalten, wird gemäß den Bigtable-Preisen in Rechnung gestellt.
Beschränkungen
Alle Einschränkungen für Features und Standorte, die mit kontinuierlichen Abfragen verbunden sind, gelten auch für Streaming-DataFrames.
Nächste Schritte
- Einführung in Feast on Google Cloud
- ML-Entwicklung mit Feast optimieren
- Bigtable-Daten abfragen, die in einer externen Tabelle gespeichert sind
- Daten aus BigQuery nach Bigtable exportieren