Créer et configurer une connexion de ressource Cloud
En tant qu'administrateur BigQuery, vous pouvez créer une connexion de ressource Cloud qui permet aux analystes de données d'effectuer les tâches suivantes :
- Interroger des données Cloud Storage structurées à l'aide de tables BigLake. Les tables BigLake vous permettent d'interroger des données externes avec la délégation d'accès.
- Interroger des données non structurées dans Cloud Storage à l'aide de tables d'objets.
- Mettez en œuvre des fonctions distantes avec tous les langages acceptés dans Cloud Functions ou Cloud Run.
Pour en savoir plus sur les connexions, consultez la section Présentation des connexions.
Avant de commencer
Activez l'API BigQuery Connection.
-
Pour obtenir les autorisations nécessaires à la création d'une connexion à une ressource cloud, demandez à votre administrateur de vous accorder les rôles IAM suivants :
-
Administrateur de connexion BigQuery (
roles/bigquery.connectionAdmin
) sur le projet -
Lecteur des objets Storage (
roles/storage.objectViewer
) sur le bucket
Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Si vous souhaitez interroger des données structurées à l'aide de tables BigLake basées sur Cloud Storage ou des données non structurées à l'aide de tables d'objets, le compte de service associé à la connexion doit également disposer du rôle Lecteur de l'espace de stockage (roles/storage.viewer
) sur le bucket contenant les données externes.
-
Administrateur de connexion BigQuery (
- Assurez-vous que votre version du Google Cloud SDK est la v366.0.0 ou ultérieure :
gcloud version
Si nécessaire, mettez à jour le SDK Google Cloud.
- Facultatif : Pour Terraform, utilisez Terraform version 4.25.0 ou ultérieure. Vous pouvez télécharger la dernière version sur la page de téléchargements de HashiCorp Terraform.
Considérations au sujet des emplacements
Lorsque vous utilisez Cloud Storage pour stocker des fichiers de données, nous vous recommandons d'utiliser Cloud Storage comme zone régionale unique ou zone birégionale pour des performances optimales, et non pour les buckets multirégionaux.
Créer des connexions à des ressources Cloud
BigLake utilise une connexion pour accéder à Cloud Storage. Vous pouvez utiliser cette connexion avec une seule table ou un groupe de tables.
Sélectionnez l'une des options suivantes :
Console
Accédez à la page BigQuery.
Pour créer une connexion, cliquez sur
Ajouter, puis sur Connexions aux sources de données externes.Dans la liste Type de connexion, sélectionnez Modèles distants Vertex AI, fonctions distantes et BigLake (ressource Cloud).
Dans le champ ID de connexion, saisissez un nom pour votre connexion.
Cliquez sur Créer une connexion.
Cliquez sur Accéder à la connexion.
Dans le volet Informations de connexion, copiez l'ID du compte de service à utiliser à l'étape suivante.
bq
Dans un environnement de ligne de commande, créez une connexion :
bq mk --connection --location=REGION --project_id=PROJECT_ID \ --connection_type=CLOUD_RESOURCE CONNECTION_ID
Le paramètre
--project_id
remplace le projet par défaut.Remplacez les éléments suivants :
REGION
: votre région de connexionPROJECT_ID
: ID de votre projet Google CloudCONNECTION_ID
: ID de votre connexion
Lorsque vous créez une ressource de connexion, BigQuery crée un compte de service système unique et l'associe à la connexion.
Dépannage : Si vous obtenez l'erreur de connexion suivante, mettez à jour le Google Cloud SDK :
Flags parsing error: flag --connection_type=CLOUD_RESOURCE: value should be one of...
Récupérez et copiez l'ID du compte de service pour l'utiliser lors d'une prochaine étape :
bq show --connection PROJECT_ID.REGION.CONNECTION_ID
Le résultat ressemble à ce qui suit :
name properties 1234.REGION.CONNECTION_ID {"serviceAccountId": "connection-1234-9u56h9@gcp-sa-bigquery-condel.iam.gserviceaccount.com"}
Terraform
Ajoutez la section suivante à votre fichier main.tf
.
## This creates a cloud resource connection. ## Note: The cloud resource nested object has only one output only field - serviceAccountId. resource "google_bigquery_connection" "connection" { connection_id = "CONNECTION_ID" project = "PROJECT_ID" location = "REGION" cloud_resource {} }Remplacez les éléments suivants :
CONNECTION_ID
: ID de votre connexionPROJECT_ID
: ID de votre projet Google CloudREGION
: votre région de connexion
Accorder l'accès au compte de service
Si vous souhaitez créer des fonctions distantes, vous devez attribuer les rôles requis à Cloud Functions ou à Cloud Run.
Si vous souhaitez vous connecter à Cloud Storage, vous devez accorder à la nouvelle connexion un accès en lecture seule à Cloud Storage afin que BigQuery puisse accéder aux fichiers pour le compte des utilisateurs.
Sélectionnez l'une des options suivantes :
Console
Nous vous recommandons d'attribuer au compte de service de ressource de connexion le rôle IAM Lecteur des objets de l'espace de stockage (roles/storage.objectViewer
), qui permet au compte de service d'accéder aux buckets Cloud Storage.
Accédez à la page IAM et administration.
Cliquez sur
Ajouter.La boîte de dialogue Ajouter des comptes principaux s'ouvre.
Dans le champ Nouveaux comptes principaux, saisissez l'ID du compte de service que vous avez copié précédemment.
Dans le champ Sélectionner un rôle, sélectionnez Cloud Storage, puis Lecteur des objets Storage.
Cliquez sur Enregistrer.
gsutil
Exécutez la commande gsutil iam ch
:
gsutil iam ch serviceAccount:MEMBER:objectViewer gs://example-bucket
Remplacez MEMBER
par l'ID du compte de service que vous avez copié précédemment.
Pour plus d'informations, consultez la section Ajouter un compte principal à une stratégie au niveau du bucket.
Terraform
Ajoutez la section suivante à votre fichier main.tf
.
## This grants permissions to the service account of the connection created in the last step. resource "google_project_iam_member" "connectionPermissionGrant" { project = "PROJECT_ID" role = "roles/storage.objectViewer" member = format("serviceAccount:%s", google_bigquery_connection.connection.cloud_resource[0].service_account_id) }
Partager des connexions avec les utilisateurs
Vous pouvez attribuer les rôles suivants pour permettre aux utilisateurs d'interroger des données et de gérer les connexions :
roles/bigquery.connectionUser
permet aux utilisateurs de se connecter à des sources de données externes et d'y exécuter des requêtes.roles/bigquery.connectionAdmin
permet aux utilisateurs de gérer les connexions.
Pour en savoir plus sur les rôles et les autorisations IAM dans BigQuery, consultez la page Rôles prédéfinis et autorisations.
Sélectionnez l'une des options suivantes :
Console
Accédez à la page BigQuery.
Les connexions sont répertoriées dans votre projet, dans un groupe appelé Connexions externes.
Dans le volet Explorateur, cliquez sur votre nom de projet > Connexions externes > connexion.
Dans le volet Détails, cliquez sur Partager pour partager une connexion. Ensuite, procédez comme suit :
Dans la boîte de dialogue Autorisations de connexion, partagez la connexion avec d'autres comptes principaux en ajoutant ou en modifiant des comptes principaux.
Cliquez sur Enregistrer.
bq
Vous ne pouvez pas partager de connexion avec l'outil de ligne de commande bq. Pour partager une connexion, utilisez la console Google Cloud ou la méthode de l'API BigQuery Connections permettant le partage de connexion.
API
Utilisez la méthode projects.locations.connections.setIAM
dans la section de référence de l'API REST BigQuery Connections et fournissez une instance de la ressource policy
.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java du guide de démarrage rapide de BigQuery : Utiliser les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API BigQuery pour Java.
Pour vous authentifier auprès de BigQuery, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez la page Configurer l'authentification pour les bibliothèques clientes.
Étapes suivantes
- Découvrez les différents types de connexions.
- Découvrez comment gérer les connexions.
- Découvrez les tables BigLake.
- Découvrez comment créer des tables BigLake.
- Découvrez comment mettre à niveau des tables externes vers des tables BigLake.
- Apprenez-en plus sur les tables d'objets et sur la création de ces tables.
- Découvrez comment mettre en œuvre des fonctions distantes.