Synchroniser des ensembles de données en ligne et hors connexion avec BigQuery DataFrames

En utilisant Bigtable avec BigQuery, vous pouvez créer une base de données d'analyse en temps réel et l'utiliser dans des pipelines de machine learning (ML). Cela vous permet de synchroniser vos données, ce qui permet de manipuler les données et de développer des modèles (accès hors connexion) et de diffuser des applications à faible latence (accès en ligne).

Pour créer votre base de données d'analyse en temps réel, vous pouvez utiliser BigQuery DataFrames, un ensemble de bibliothèques Python Open Source pour le traitement des données BigQuery. Les DataFrames BigQuery vous permettent de développer et d'entraîner des modèles dans BigQuery, et de répliquer automatiquement une copie des dernières valeurs de données utilisées pour vos modèles de ML dans Bigtable pour la diffusion en ligne.

Ce document présente l'utilisation de bigframes.streaming API pour créer des tâches BigQuery qui répliquent et synchronisent automatiquement des ensembles de données dans BigQuery et Bigtable. Avant de lire ce document, assurez-vous de bien comprendre les documents suivants:

BigQuery DataFrames

BigQuery DataFrames vous aide à développer et à entraîner des modèles dans BigQuery, et à répliquer automatiquement une copie des dernières valeurs de données utilisées pour vos modèles de ML dans Bigtable pour la diffusion en ligne. Il vous permet d'effectuer les opérations suivantes :

  • Développer des transformations de données dans une interface compatible avec Pandas (bigframes.pandas) directement sur les données BigQuery
  • Entraîner des modèles à l'aide d'une API semblable à scikit-learn (bigframes.ML)
  • Synchronisez les données nécessaires à l'inférence à faible latence avec Bigtable (bigframes.streaming) pour prendre en charge les applications destinées aux utilisateurs.

BigFrames StreamingDataFrame

bigframes.streaming.StreamingDataFrame est un type DataFrame dans le package BigQuery DataFrames. Il vous permet de créer un objet StreamingDataFrame qui peut être utilisé pour générer une tâche en cours d'exécution en continu qui lit en streaming les données d'une table BigQuery désignée dans Bigtable pour la diffusion en ligne. Pour ce faire, vous devez générer des requêtes continues BigQuery.

Un BigFrames StreamingDataFrame peut effectuer les opérations suivantes:

  • Créer un StreamingDataFrame à partir d'une table BigQuery désignée
  • Vous pouvez également effectuer d'autres opérations Pandas, comme sélectionner, filtrer et prévisualiser le contenu.
  • Créer et gérer des jobs de streaming vers Bigtable

Rôles requis

Pour obtenir les autorisations nécessaires pour utiliser BigQuery DataFrames dans un notebook BigQuery, demandez à votre administrateur de vous accorder les rôles IAM suivants:

Pour obtenir les autorisations nécessaires pour écrire des données dans une table Bigtable, demandez à votre administrateur de vous accorder les rôles IAM suivants:

Premiers pas

BigQuery DataFrames est un package Open Source. Pour installer la dernière version, exécutez pip install --upgrade bigframes.

Pour créer votre premier BigFrames StreamingDataFrame et synchroniser les données entre BigQuery et Bigtable, exécutez l'extrait de code suivant. Pour obtenir l'exemple de code complet, consultez le notebook GitHub 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)

Remplacez les éléments suivants :

  • PROJECT: ID de votre Google Cloud projet
  • BIGTABLE_INSTANCE: ID de l'instance Bigtable qui contient la table dans laquelle vous écrivez
  • TABLE: ID de la table Bigtable dans laquelle vous écrivez

Une fois la tâche initialisée, elle s'exécute en tant que requête continue dans BigQuery et diffuse toutes les modifications de données vers Bigtable.

Coûts

L'utilisation de l'API BigFrames de BigQuery n'entraîne aucuns frais supplémentaires, mais les ressources sous-jacentes utilisées pour les requêtes continues, Bigtable et BigQuery sont facturées.

Les requêtes continues utilisent les tarifs des calculs de capacité BigQuery, exprimés en emplacements. Pour exécuter des requêtes continues, vous devez disposer d'une réservation qui utilise l'édition Enterprise ou Enterprise Plus et d'une attribution de réservation qui utilise le type de job CONTINUOUS.

L'utilisation d'autres ressources BigQuery, comme l'ingestion et le stockage de données, est facturée selon les tarifs indiqués sur la page Tarifs de BigQuery.

L'utilisation des services Bigtable qui reçoivent des résultats de requêtes continues est facturée selon les tarifs Bigtable.

Limites

Toutes les limites liées aux fonctionnalités et aux emplacements associées aux requêtes continues s'appliquent également aux DataFrames en streaming.

Étape suivante