Choisir comment accéder aux données BigQuery depuis AlloyDB

Pour accéder aux données BigQuery à partir d'AlloyDB pour PostgreSQL, vous pouvez utiliser les extensions bigquery_fdw (wrapper de données externes) et alloydb_sync. Ensemble, ces extensions fournissent des méthodes pour intégrer vos données analytiques et opérationnelles : accès aux données en temps réel (fédération de lakehouse), opérations de données ponctuelles et synchronisation périodique. Ce document décrit les options permettant d'accéder aux données BigQuery à partir d'AlloyDB.

Fédération de lakehouse

La fédération de lakehouse fournit un accès en temps réel à vos données BigQuery directement depuis AlloyDB pour PostgreSQL, sans avoir à les déplacer ni à les dupliquer. Pour relier les deux systèmes, cette méthode utilise l'extension bigquery_fdw, qui vous permet d'interroger des ensembles de données actifs sur place. Comme vous interrogez directement les données sources, vous obtenez des insights à partir des données les plus récentes disponibles, en contournant la latence et les frais de maintenance des pipelines de données ou des intervalles de synchronisation.

Pour optimiser les performances, AlloyDB transfère les filtres et les agrégations standards à BigQuery, en ne diffusant que les résultats pertinents et préfiltrés vers votre instance. Pour en savoir plus, consultez la présentation de l'accès d'AlloyDB aux données en temps réel dans BigQuery.

Cas d'utilisation

La fédération de lakehouse est compatible avec les cas d'utilisation suivants :

  • Analyse opérationnelle en temps réel : vous avez besoin d'accéder aux données analytiques les plus récentes disponibles dans BigQuery pour prendre des décisions commerciales instantanées, sans attendre le traitement par lot.
  • Traitement analytique transactionnel hybride (HTAP) : vous devez exécuter des analyses qui associent des données opérationnelles "chaudes" en temps réel résidant dans AlloyDB à des volumes massifs de données "froides" historiques stockées dans BigQuery.
  • Analyse de données ad hoc et exploratoire : vous souhaitez exécuter des requêtes immédiates sur les données BigQuery sans créer, gérer ni attendre des pipelines ETL (extraction, transformation et chargement) complexes.
  • Architecture sans copie : vous souhaitez réduire les coûts de stockage et les frais généraux de gouvernance des données en conservant vos données d'analyse au même endroit tout en conservant l'accès via la sémantique PostgreSQL.

Synchronisation ponctuelle des tables

Une opération ponctuelle déplace ou accède aux données de BigQuery une seule fois, plutôt que selon une planification continue. Vous pouvez effectuer une opération ponctuelle à l'aide de tables de synchronisation ou en important des tables externes.

Synchroniser les tables

Vous pouvez effectuer une synchronisation ponctuelle à l'aide de la alloydb_sync.import_bq_table() fonction dans l'alloydb_sync extension. Cette fonction diffuse des données de BigQuery vers le stockage AlloyDB local.

Le résultat est une table PostgreSQL entièrement indépendante et accessible en écriture dans votre cluster AlloyDB. Comme la table synchronisée est accessible en écriture, vous pouvez exécuter librement des opérations INSERT, UPDATE et DELETE sur les données locales. Pour en savoir plus, consultez Synchroniser les données BigQuery avec AlloyDB.

Importer des tables

Vous pouvez effectuer une importation ponctuelle à l'aide de l'extension bigquery_fdw. Cette méthode utilise IMPORT FOREIGN SCHEMA ou CREATE FOREIGN TABLE pour mapper l'ensemble de données BigQuery dans AlloyDB.

Les tables externes créées avec bigquery_fdw sont des références en lecture seule aux données BigQuery à distance. Pour créer une copie locale des données, vous pouvez exécuter une requête CREATE TABLE local_table AS (SELECT * FROM foreign_table). Pour en savoir plus, consultez Importer des données BigQuery dans AlloyDB.

Cas d'utilisation

Les opérations de données ponctuelles sont compatibles avec les cas d'utilisation suivants :

  • Enrichissement des données : extrayez des résultats analytiques précalculés (tels que des buckets de segmentation client ou des prédictions de machine learning) de BigQuery vers AlloyDB pour enrichir votre base de données opérationnelle.
  • Diffusion d'applications à faible latence : fournissez un accès immédiat à un sous-ensemble de données historiques lorsque la latence ou les frais liés à l'interrogation à distance de BigQuery sont inacceptables.
  • Modification isolée des données : obtenez une copie locale des données analytiques à traiter, à modifier ou à indexer indépendamment de l'ensemble de données source (par exemple, en générant des embeddings vectoriels avec AlloyDB AI).

Synchronisation périodique des tables

Les opérations périodiques actualisent les données selon une planification récurrente, par exemple toutes les heures ou tous les jours. Vous pouvez configurer des opérations périodiques à l'aide de tables de synchronisation ou en planifiant des requêtes sur des tables importées.

Synchroniser les tables

Vous pouvez établir une planification d'actualisation automatisée à l'aide de la alloydb_sync.create_bq_sync_table() fonction dans l'alloydb_sync extension. Cette fonction configure des workers en arrière-plan pour extraire périodiquement les données mises à jour de BigQuery et actualiser votre table AlloyDB locale afin de refléter la source.

Les tables de synchronisation périodique créées avec alloydb_sync sont des tables gérées en lecture seule. Cela garantit l'intégrité des données tout en permettant aux applications d'interroger les données localement avec des performances élevées et de s'adapter horizontalement sur les pools de lecture. Pour en savoir plus, consultez Synchroniser les données BigQuery avec AlloyDB et Présentation de la synchronisation des données.

Importer des tables

Vous pouvez configurer des importations périodiques en combinant l'extension bigquery_fdw avec l'extension PostgreSQL pg_cron. Dans cette approche, bigquery_fdw fournit la définition de table externe en lecture seule, et pg_cron exécute périodiquement des requêtes SQL (telles que TRUNCATE et INSERT INTO ... SELECT ou la recréation de la table) pour actualiser une table locale.

Contrairement aux tables de synchronisation, cette approche nécessite que vous gériez et entreteniez manuellement les planifications pg_cron et les scripts d'actualisation SQL. Pour en savoir plus, consultez Configurer une planification pour importer périodiquement des données.

Cas d'utilisation

Les opérations périodiques sont compatibles avec les cas d'utilisation suivants :

  • Diffusion à haute simultanéité : diffusez des insights analytiques à des milliers d'utilisateurs simultanés. En conservant les données locales dans AlloyDB et en effectuant un scaling horizontal avec des pools de lecture, vous pouvez contourner les limites de connexion simultanée inhérentes à BigQuery.
  • Accélération des performances : traitez les données à l'aide du moteur de données en colonnes AlloyDB et du cache de mémoire tampon local pour optimiser les performances des requêtes, lorsque votre application peut tolérer des données mises à jour selon une planification.
  • Mise en miroir automatisée des données : fournissez à vos applications opérationnelles des données récentes provenant de votre entrepôt de données selon une planification que vous n'avez pas à gérer.

Étape suivante