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:
- Présentation de Bigtable
- Présentation de BigQuery
- Créer une base de données d'analyse en temps réel avec Bigtable et BigQuery
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
- Premiers pas avec Feast on Google Cloud
- Simplifier le développement du ML avec Feast
- Interrogez des données Bigtable stockées dans une table externe.
- Exporter des données de BigQuery vers Bigtable