Présentation des sources de données externes

Cette page explique comment interroger des données stockées en dehors de BigQuery.

Une source de données externe peut être interrogée directement depuis BigQuery, même si les données ne sont pas stockées dans un stockage BigQuery. Par exemple, vous pouvez stocker des données dans une autre base de données Google Cloud, dans des fichiers Cloud Storage ou dans un autre produit cloud que vous souhaitez analyser dans BigQuery mais que vous n'êtes pas prêt à migrer.

Cas d'utilisation des sources de données externes :

  • Pour les charges de travail ELT (extraction, chargement et transformation), charger et nettoyer vos données en une seule fois, puis écrire le résultat nettoyé dans le stockage BigQuery à l'aide d'une requête CREATE TABLE ... AS SELECT.
  • Effectuer une jointure de tables BigQuery avec des données qui changent fréquemment à partir d'une source de données externe En interrogeant directement la source de données externe, vous n'avez pas besoin d'actualiser les données dans l'espace de stockage BigQuery à chaque modification.

BigQuery présente deux mécanismes différents pour interroger des données externes : les tables externes et les requêtes fédérées.

Tables externes

Les tables externes sont semblables aux tables BigQuery standards, dans la mesure où elles stockent leurs métadonnées et leur schéma dans l'espace de stockage BigQuery. Toutefois, leurs données résident dans une source externe.

Les tables externes sont contenues dans un ensemble de données et vous les gérez de la même manière qu'une table BigQuery standard. Par exemple, vous pouvez afficher les propriétés de la table, définir des contrôles d'accès, etc. Vous pouvez interroger ces tables et, dans la plupart des cas, vous pouvez les joindre à d'autres tables.

Il existe trois genres de tables externes :

  • Tables BigLake
  • Tables BigQuery Omni
  • Tables d'objets
  • Tables externes autres que BigLake

Tables BigLake

Les tables BigLake vous permettent d'interroger des données structurées dans des data stores externes avec délégation d'accès. La délégation d'accès dissocie l'accès à la table BigLake de l'accès au data store sous-jacent. Une connexion externe associée à un compte de service permet de se connecter au data store. Étant donné que le compte de service gère la récupération des données du data store, il vous suffit d'accorder aux utilisateurs l'accès à la table BigLake. Cela vous permet d'appliquer une sécurité précise au niveau de la table, y compris au niveau des lignes et des colonnes. Pour les tables BigLake basées sur Cloud Storage, vous pouvez également utiliser le masquage des données dynamiques. Pour en savoir plus sur les solutions analytiques multicloud utilisant des tables BigLake avec des données Amazon S3 ou Blob Storage, consultez la page BigQuery Omni.

Pour plus d'informations, consultez la page Présentation des tables BigLake.

Tables d'objets

Les tables d'objets vous permettent d'analyser des données non structurées dans Cloud Storage. Vous pouvez effectuer une analyse avec des fonctions à distance ou réaliser des inférences à l'aide de BigQuery ML, puis joindre les résultats de ces opérations aux autres données structurées dans BigQuery.

Tout comme les tables BigLake, les tables d'objets utilisent la délégation d'accès, qui dissocie l'accès à la table d'objets de l'accès aux objets Cloud Storage. Une connexion externe associée à un compte de service permet de se connecter à Cloud Storage. Il vous suffit donc d'accorder aux utilisateurs l'accès à la table d'objets. Cela vous permet d'appliquer des règles de sécurité au niveau des lignes et de gérer les objets auxquels les utilisateurs ont accès.

Pour plus d'informations, consultez la page Présentation des tables d'objets.

Tables externes autres que BigLake

Les tables externes non BigLake vous permettent d'interroger des données structurées dans des data stores externes. Pour interroger une table externe non BigLake, vous devez disposer d'autorisations sur la table externe et la source de données externe. Par exemple, pour interroger une table externe autre que BigLake qui utilise une source de données dans Cloud Storage, vous devez disposer des autorisations suivantes :

  • bigquery.tables.getData
  • bigquery.jobs.create
  • storage.buckets.get
  • storage.objects.get

Pour en savoir plus, consultez la page Présentation des tables externes.

Requêtes fédérées

Les requêtes fédérées vous permettent d'envoyer une instruction de requête aux bases de données AlloyDB, Spanner ou Cloud SQL et d'obtenir le résultat en tant que table temporaire. Les requêtes fédérées utilisent l'API BigQuery Connection pour établir une connexion avec AlloyDB, Spanner ou Cloud SQL. Dans votre requête, vous utilisez la fonction EXTERNAL_QUERY pour envoyer une instruction de requête à la base de données externe, à l'aide du dialecte SQL de cette base de données. Les résultats sont convertis en types de données GoogleSQL.

Pour en savoir plus, consultez la Présentation des requêtes fédérées.

Comparaison des fonctionnalités des sources de données externe

Le tableau suivant compare le comportement des sources de données externes :

Tables BigLake Tables d'objets Tables externes autres que BigLake Requêtes fédérées
Utilise la délégation d'accès Oui, via un compte de service Oui, via un compte de service Non Oui, via un compte utilisateur de base de données (Cloud SQL uniquement)
Peut être basée sur plusieurs URI sources Oui Oui Oui (Cloud Storage seulement) Non applicable
Mappage des lignes Les lignes représentent le contenu des fichiers. Les lignes représentent les métadonnées des fichiers. Les lignes représentent le contenu des fichiers. Non applicable
Accessible par d'autres outils de traitement de données à l'aide de connecteurs Oui (Cloud Storage seulement) Non Oui Non applicable
Peut être jointe à d'autres tables BigQuery Oui (Cloud Storage seulement) Yes Oui Yes
Accessible en tant que table temporaire Oui (Cloud Storage seulement) Non Oui Yes
Fonctionne avec Amazon S3 Yes Non Non Non
Fonctionne avec Azure Storage Yes Non Non Non
Fonctionne avec Bigtable Non Non Oui Non
Compatible avec Spanner Non Non Non Yes
Compatible avec Cloud SQL Non Non Non Yes
Fonctionne avec Google Drive Non Non Oui Non
Compatible avec Cloud Storage Yes Oui Oui Non

Étapes suivantes