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