Utiliser des connexions

Présentation

L'API BigQuery Connection permet aux utilisateurs de configurer une connexion entre BigQuery et une source de données externe. Vous pouvez utiliser la connexion pour envoyer des requêtes en fonction de la source de données externe depuis BigQuery sans déplacer ni copier de données dans BigQuery.

Vous devez effectuer une configuration initiale unique pour créer une ressource de connexion dans BigQuery. Vous pouvez ensuite effectuer les tâches suivantes :

Avant de commencer

Activer le service de connexion BigQuery

  1. Ouvrez la page API de connexion BigQuery dans la bibliothèque d'API.
  2. Dans le menu déroulant, sélectionnez le projet contenant votre source de données externe.
  3. Cliquez sur le bouton ACTIVER.

    API de connexion BigQuery

Compte de service

BigQuery utilise un compte de service pour se connecter à votre source de données externe. Lorsque vous activez l'API BigQuery Connection, un compte de service Cloud IAM (Cloud Identity and Access Management) géré par Google Cloud est automatiquement créé en votre nom.

Autorisations

  • Pour créer et gérer une ressource de connexion, l'utilisateur doit disposer du rôle IAM prédéfini bigquery.admin.

  • Le rôle bigquery.admin inclut les autorisations suivantes sur le service de connexion BigQuery :

    • bigquery.connections.create
    • bigquery.connections.get
    • bigquery.connections.list
    • bigquery.connections.update
    • bigquery.connections.use
    • bigquery.connections.delete

Pour accorder des autorisations à un autre utilisateur et lui permettre d'utiliser la ressource de connexion, consultez la section Partager une ressource de connexion.

Accorder un accès bigquery.admin

Pour accorder le rôle bigquery.admin, procédez comme suit :

Console

  1. Ouvrez la page "IAM" dans Cloud Console.

    Ouvrir la page IAM

  2. Cliquez sur Sélectionner un projet.

  3. Sélectionnez un projet et cliquez sur Ouvrir.

  4. Cliquez sur Ajouter pour ajouter de nouveaux membres au projet et définir leurs autorisations.

  5. Dans la boîte de dialogue Ajouter des membres :

    • Dans le champ Membres, entrez l'adresse e-mail de l'utilisateur ou du groupe.
    • Dans la liste déroulante Sélectionner un rôle, cliquez sur BigQuery > Administrateur BigQuery.
    • Cliquez sur Ajouter.

      Accorder des droits d'administrateur

gcloud

Vous pouvez accorder le rôle bigquery.admin à un utilisateur ou à un groupe à l'aide de l'outil de ligne de commande gcloud.

Pour ajouter une liaison unique à la stratégie IAM de votre projet, saisissez la commande suivante. Pour ajouter un utilisateur, indiquez l'option --member au format user:user@example.com. Pour ajouter un groupe, indiquez l'option --member au format group:group@example.com.

gcloud projects add-iam-policy-binding project_id \
--member group/user:address \
--role roles/bigquery.admin

Où :

  • project_id est l'ID de votre projet.
  • group/user correspond à group ou user.
  • address est l'adresse e-mail de l'utilisateur ou du groupe.

Exemple :

gcloud projects add-iam-policy-binding myproject \
--member group:group@example.com \
--role roles/bigquery.admin

La commande génère la règle mise à jour :

    bindings:
    - members:
      - group:group@example.com
        role: roles/bigquery.admin
    

Pour en savoir plus sur les rôles IAM dans BigQuery, consultez la page Rôles prédéfinis et autorisations.

Créer une ressource de connexion

Pour éviter de faire apparaître les identifiants d'accès à la base de données sous forme de texte clair dans une requête fédérée, vous devez d'abord créer dans BigQuery une ressource de connexion pour chaque base de données, puis référencer la ressource de connexion dans votre requête fédérée.

La ressource de connexion dispose d'un ensemble d'autorisations IAM, que vous pouvez accorder à d'autres utilisateurs. La ressource de connexion est chiffrée et stockée de manière sécurisée dans le service de connexion BigQuery et ne peut être utilisée que pour des requêtes fédérées.

Pour en savoir plus sur les rôles et les autorisations IAM dans BigQuery, consultez la page Rôles prédéfinis et autorisations.

Console

  1. Pour créer une ressource de connexion, accédez à la page BigQuery dans Cloud Console.

    Accéder à BigQuery

  2. Dans le menu Ajouter des données, sélectionnez Source de données externe.

    Créer une ressource de connexion

  3. Dans le volet Source de données externes, saisissez les informations suivantes :

    • Dans le champ Type de connexion, sélectionnez le type de source, par exemple MySQL ou Postgres.
    • Dans le champ Connection ID (ID de connexion), saisissez un identifiant pour la ressource de connexion. Les lettres, les chiffres et les traits de soulignement sont autorisés.
    • Pour Emplacement de connexion, sélectionnez un emplacement (ou une région) BigQuery compatible avec votre région de source de données externe.
    • (Facultatif) Dans le champ Nom descriptif, saisissez un nom clair pour identifier la connexion, tel que My connection resource. Le nom descriptif peut être n'importe quelle valeur permettant d'identifier la ressource de connexion si vous devez la modifier par la suite.
    • (Facultatif) : Dans le champ Description, saisissez une description de la ressource de connexion.
    • Si vous avez choisi Cloud SQL MySQL ou Postgres comme type de connexion, pour l'ID de l'instance Cloud SQL, saisissez lenom de l'instance Cloud SQL complet, généralement au formatproject-id:location-id:instance-id. Vous pouvez trouver l'ID d'instance sur la page des détails de l'instance Cloud SQL que vous souhaitez interroger.
    • Dans le champ Nom de la base de données, saisissez le nom de la base de données.
    • Comme Nom d'utilisateur, saisissez le nom d'utilisateur de la base de données.
    • Dans le champ Mot de passe, renseignez le mot de passe d'accès à la base de données.

      • (Facultatif) Cochez la case Show password (Afficher le mot de passe) pour révéler le mot de passe.
      .

      Nouvelle ressource de connexion

  4. Cliquez sur Create connection (Créer une connexion).

bq

Saisissez la commande bq mk, puis indiquez l'option de connexion --connection. Les paramètres suivants sont également requis :

  • --connection_type
  • --properties
  • --connection_credential
  • --project_id
  • --location

Les options suivantes sont facultatives :

  • --display_name : nom descriptif de la connexion.
  • --description : description de la connexion.

L'ID de connexion est un paramètre facultatif qui peut être ajouté en tant que dernier argument de la commande utilisée pour le stockage en interne. Si aucun ID de connexion n'est fourni, un ID unique est généré automatiquement. L'ID de connexion peut contenir des lettres, des chiffres et des traits de soulignement.

    bq mk --connection --display_name='friendly name' --connection_type=TYPE \
      --properties=PROPERTIES --connection_credential=CREDENTIALS \
      --project_id=PROJECT_ID --location=LOCATION \
      CONNECTION_ID

Remplacez l'élément suivant :

  • TYPE: type de la source de données externe.
  • PROPERTIES : les paramètres de la connexion créée au format JSON. Exemple : --properties='{"param":"param_value"}'. Pour créer une ressource de connexion, vous devez fournir les paramètres instanceID, database et type.
  • CREDENTIALS : les paramètres username et password.
  • PROJECT_ID : ID de votre projet.
  • LOCATION : région où se trouve votre instance Cloud SQL.
  • CONNECTION_ID : identifiant de la connexion.

Par exemple, la commande suivante crée une ressource de connexion nommée "my_new_connection" (nom descriptif : "My new connection") dans un projet ayant l'ID federation-test.

bq mk --connection --display_name='friendly name' --connection_type='CLOUD_SQL' \
  --properties='{"instanceId":"federation-test:us-central1:mytestsql","database":"mydatabase","type":"MYSQL"}' \
  --connection_credential='{"username":"myusername", "password":"mypassword"}' \
  --project_id=federation-test --location=us my_connection_id

API

Au sein de l'API BigQuery Connection, vous pouvez appeler CreateConnection dans ConnectionService pour instancier une connexion. Pour en savoir plus, consultez la page sur les bibliothèques clientes.

Vous pouvez également créer une connexion à l'aide des bibliothèques clientes spécifiques au langage de programmation. Consultez les rubriques sur les types de connexions pour obtenir des exemples spécifiques aux langages de programmation.

Interroger une ressource de connexion

Une fois la connexion établie, vous pouvez utiliser la fonction EXTERNAL_QUERY() pour exécuter une requête fédérée. Reportez-vous à la section Syntaxe des requêtes fédérées pour en savoir plus et consulter des exemples de requêtes.

Interroger une autre base de données via la même ressource de connexion

Lorsque vous créez une connexion à une source de données externe, vous spécifiez des identifiants pour cette source. Si les mêmes identifiants utilisateur sont valides pour d'autres données de la source, vous pouvez utiliser la même ressource de connexion.

Obtenir des informations sur une ressource de connexion

Une fois que vous avez créé une ressource de connexion, vous pouvez obtenir des informations sur sa configuration. Celle-ci inclut les valeurs que vous avez fournies lors de la création du transfert.

Autorisations requises

Pour obtenir des informations sur une ressource de connexion, l'autorisation bigquery.connections.get est requise. Les rôles de gestion de l'authentification et des accès (IAM) prédéfinis suivants incluent déjà l'autorisation bigquery.connections.get :

  • bigquery.admin
  • bigquery.connection.admin
  • bigquery.connection.user

Pour en savoir plus sur les rôles et les autorisations IAM dans BigQuery, consultez la page Rôles prédéfinis et autorisations.

Afficher une ressource de connexion

Console

  1. Pour afficher l'état de vos ressources de connexion, accédez à la page BigQuery dans Cloud Console.

    Accéder à BigQuery

  2. Les ressources de connexion sont répertoriées au niveau supérieur de votre projet, sous un regroupement intitulé External connections (Connexions externes). Cliquez sur une connexion pour afficher des informations sur cette ressource de connexion, telles que connection ID et Cloud SQL instance ID.

    Afficher les ressources de connexion

bq

Saisissez la commande bq show, puis indiquez l'option de connexion --connection. Le nom connection_id sous forme complète est obligatoire.

    bq show --connection project.location.connection_id

Par exemple, la commande suivante récupère des informations sur une ressource de connexion nommée my_new_connection dans un projet avec l'ID federation-test situé dans la région us.

    bq show --connection federation-test.us.my_new_connection

API

Utilisez la méthode projects.locations.connections.get dans la documentation de référence de l'API REST.

Java

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Java décrite dans le 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 Java.

import com.google.cloud.bigquery.connection.v1.Connection;
import com.google.cloud.bigquery.connection.v1.ConnectionName;
import com.google.cloud.bigquery.connection.v1.GetConnectionRequest;
import com.google.cloud.bigqueryconnection.v1.ConnectionServiceClient;
import java.io.IOException;

// Sample to get connection
public class GetConnection {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "MY_PROJECT_ID";
    String location = "MY_LOCATION";
    String connectionId = "MY_CONNECTION_ID";
    getConnection(projectId, location, connectionId);
  }

  public static void getConnection(String projectId, String location, String connectionId)
      throws IOException {
    try (ConnectionServiceClient client = ConnectionServiceClient.create()) {
      ConnectionName name = ConnectionName.of(projectId, location, connectionId);
      GetConnectionRequest request =
          GetConnectionRequest.newBuilder().setName(name.toString()).build();
      Connection response = client.getConnection(request);
      System.out.println("Connection info retrieved successfully :" + response.getName());
    }
  }
}

Répertorier toutes les ressources de connexion

Autorisations requises

Pour répertorier toutes les ressources de connexion d'un projet, les autorisations bigquery.connections.list sont requises. Les rôles IAM prédéfinis suivants disposent déjà de l'autorisation bigquery.connections.list :

  • bigquery.admin
  • bigquery.connection.admin
  • bigquery.connection.user

Pour en savoir plus sur les rôles et les autorisations IAM dans BigQuery, consultez la page Rôles prédéfinis et autorisations.

Répertorier les ressources de connexion

Pour répertorier toutes les ressources de connexion d'un projet, procédez comme suit :

Console

  1. Pour afficher l'état d'une ressource de connexion, accédez à la page BigQuery dans Cloud Console.

    Accéder à BigQuery

  2. Les ressources de connexion sont répertoriées au niveau supérieur de votre projet, sous un regroupement intitulé External connections (Connexions externes).

    Afficher les ressources de connexion

bq

Saisissez la commande bq show, puis indiquez l'option de connexion --connection. L'ID connection_id complet est requis.

    bq ls --connection --project_id=[project_id] --location=[location]

Par exemple, la commande suivante répertorie les ressources de connexion d'un projet dont l'ID federation-test est situé dans la région us.

    bq ls --connection --project_id=bigquery-federation-test --location=us

API

Utilisez la méthode projects.locations.connections.list dans la documentation de référence de l'API REST.

Java

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Java décrite dans le 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 Java.

import com.google.cloud.bigquery.connection.v1.ListConnectionsRequest;
import com.google.cloud.bigquery.connection.v1.LocationName;
import com.google.cloud.bigqueryconnection.v1.ConnectionServiceClient;
import java.io.IOException;

// Sample to get list of connections
public class ListConnections {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "MY_PROJECT_ID";
    String location = "MY_LOCATION";
    listConnections(projectId, location);
  }

  public static void listConnections(String projectId, String location) throws IOException {
    try (ConnectionServiceClient client = ConnectionServiceClient.create()) {
      LocationName parent = LocationName.of(projectId, location);
      int pageSize = 10;
      ListConnectionsRequest request =
          ListConnectionsRequest.newBuilder()
              .setParent(parent.toString())
              .setPageSize(pageSize)
              .build();
      client
          .listConnections(request)
          .iterateAll()
          .forEach(con -> System.out.println("Connection Id :" + con.getName()));
    }
  }
}

Partager une ressource de connexion

Autorisations requises

Pour permettre à un autre utilisateur d'utiliser une ressource de connexion pour les requêtes fédérées Cloud SQL, l'utilisateur bigquery.admin peut accorder les deux rôles dans IAM.

Utilisateur de connexion BigQuery

Le rôle bigquery.connection.user est destiné aux utilisateurs qui doivent exécuter des requêtes avec la ressource de connexion.

Ce rôle IAM inclut les autorisations suivantes :

  • bigquery.connections.get
  • bigquery.connections.list
  • bigquery.connections.use
  • bigquery.connections.getIamPolicy

Administrateur de connexion BigQuery

Le rôle bigquery.connection.admin est destiné aux utilisateurs qui ont besoin de gérer les ressources de connexion.

Outre les autorisations du rôle bigquery.connection.user, ce rôle IAM dispose d'autorisations supplémentaires pour créer, mettre à jour et supprimer des ressources de connexion existantes, ainsi que pour définir une stratégie IAM sur les ressources de connexion.

  • bigquery.connections.create
  • bigquery.connections.update
  • bigquery.connections.setIamPolicy
  • bigquery.connections.delete

Pour en savoir plus sur les rôles et les autorisations IAM dans BigQuery, consultez la page Rôles prédéfinis et autorisations.

Partager une ressource de connexion

Console

  1. Pour partager une ressource de connexion, accédez à la page BigQuery dans Cloud Console.

    Accéder à BigQuery

  2. Les ressources de connexion sont répertoriées au niveau supérieur de votre projet, sous un regroupement intitulé External connections (Connexions externes). Cliquez sur une connexion pour afficher des informations sur cette ressource.

    Afficher les ressources de connexion

  3. Cliquez sur le bouton SHARE CONNECTION (Partager la connexion) pour afficher le volet des autorisations de cette ressource de connexion.

    Bouton Share connection (Partager la connexion)

  4. Dans le volet Connection permissions (Autorisations de connexion), les utilisateurs dotés du rôle BigQuery Admin (Administrateur BigQuery) ou BigQuery Connection Admin (Administrateur de connexion BigQuery) peuvent partager la ressource de connexion avec d'autres utilisateurs en ajoutant ou en modifiant leurs autorisations.

    Partager des ressources de connexion

  5. Cliquez sur OK.

bq

Pour le moment, vous ne pouvez pas partager de ressource avec l'outil de ligne de commande bq. Pour partager une ressource de connexion, utilisez Cloud Console ou la méthode de l'API BigQuery Connections permettant le partage de connexion.

API

Consultez 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 l'exemple ci-dessous, suivez la procédure de configuration pour Java décrite dans le 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 Java.

import com.google.api.resourcenames.ResourceName;
import com.google.cloud.bigquery.connection.v1.ConnectionName;
import com.google.cloud.bigqueryconnection.v1.ConnectionServiceClient;
import com.google.iam.v1.Binding;
import com.google.iam.v1.Policy;
import com.google.iam.v1.SetIamPolicyRequest;
import java.io.IOException;

// Sample to share connections
public class ShareConnection {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "MY_PROJECT_ID";
    String location = "MY_LOCATION";
    String connectionId = "MY_CONNECTION_ID";
    shareConnection(projectId, location, connectionId);
  }

  public static void shareConnection(String projectId, String location, String connectionId)
      throws IOException {
    try (ConnectionServiceClient client = ConnectionServiceClient.create()) {
      ResourceName resource = ConnectionName.of(projectId, location, connectionId);
      Binding binding =
          Binding.newBuilder()
              .addMembers("group:example-analyst-group@google.com")
              .setRole("roles/bigquery.connectionUser")
              .build();
      Policy policy = Policy.newBuilder().addBindings(binding).build();
      SetIamPolicyRequest request =
          SetIamPolicyRequest.newBuilder()
              .setResource(resource.toString())
              .setPolicy(policy)
              .build();
      client.setIamPolicy(request);
      System.out.println("Connection shared successfully");
    }
  }
}

Modifier ou mettre à jour une ressource de connexion

Une fois la ressource de connexion ajoutée, vous pouvez la modifier. Vous pouvez modifier la plupart des champs renseignés lors de la création de la ressource de connexion, y compris les identifiants du nom d'utilisateur.

Une connexion emploie les identifiants de l'utilisateur qui l'a créée. Si vous devez modifier l'utilisateur associé à une ressource de connexion, vous pouvez mettre à jour ses identifiants. C'est utile si l'utilisateur qui a créé la connexion ne fait plus partie de votre organisation.

Vous ne pouvez pas modifier les éléments suivants d'une ressource de connexion :

  • Type de connexion
  • ID de connexion
  • Emplacement

Autorisations requises

L'autorisation bigquery.connections.update est requise pour mettre à jour une ressource de connexion.

Les rôles IAM prédéfinis suivants disposent déjà de l'autorisation bigquery.connections.update :

  • bigquery.admin
  • bigquery.connection.admin

Pour en savoir plus sur les rôles et les autorisations IAM dans BigQuery, consultez la page Rôles prédéfinis et autorisations.

Modifier une ressource de connexion

Pour modifier une connexion, procédez comme suit :

Console

  1. Dans Cloud Console, accédez à la page BigQuery.

    Accéder à BigQuery

  2. Les ressources de connexion sont répertoriées au niveau supérieur de votre projet, sous un regroupement intitulé External connections (Connexions externes). Cliquez sur une connexion pour afficher des informations sur cette ressource.

    Afficher les ressources de connexion

  3. Cliquez sur le bouton EDIT CONNECTION (Modifier la connexion) pour afficher le volet de modification de cette ressource de connexion.

    Bouton Edit connection (Modifier la connexion)

  4. Modifiez les champs affichés, y compris les identifiants de l'utilisateur.

    Modifier une ressource de connexion

  5. Cliquez sur Save (Enregistrer).

bq

Saisissez la commande bq update, puis indiquez l'option de connexion --connection. L'ID connection_id complet est requis.

    bq update --connection --connection_type='CLOUD_SQL'
   --properties='{"instanceId" : "instance",
   "database" : "db", "type" : "MYSQL" }'
   --connection_credential='{"username":"u", "password":"p"}'
   project.location.connection_id

Par exemple, la commande suivante met à jour les ressources de connexion d'un projet avec l'ID federation-test et l'ID de connexion test-mysql.

    bq update --connection --connection_type='CLOUD_SQL'
   --properties='{"instanceId" : "federation-test:us-central1:new-mysql",
   "database" : "imdb2", "type" : "MYSQL" }'
   --connection_credential='{"username":"my_username",
   "password":"my_password"}' federation-test.us.test-mysql

API

Reportez-vous à la méthode projects.locations.connections.patch de la section de référence de l'API REST et fournissez une instance de la ressource connection.

Java

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Java décrite dans le 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 Java.

import com.google.cloud.bigquery.connection.v1.Connection;
import com.google.cloud.bigquery.connection.v1.ConnectionName;
import com.google.cloud.bigquery.connection.v1.UpdateConnectionRequest;
import com.google.cloud.bigqueryconnection.v1.ConnectionServiceClient;
import com.google.protobuf.FieldMask;
import com.google.protobuf.util.FieldMaskUtil;
import java.io.IOException;

// Sample to update connection
public class UpdateConnection {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "MY_PROJECT_ID";
    String location = "MY_LOCATION";
    String connectionId = "MY_CONNECTION_ID";
    String description = "MY_DESCRIPTION";
    Connection connection = Connection.newBuilder().setDescription(description).build();
    updateConnection(projectId, location, connectionId, connection);
  }

  public static void updateConnection(
      String projectId, String location, String connectionId, Connection connection)
      throws IOException {
    try (ConnectionServiceClient client = ConnectionServiceClient.create()) {
      ConnectionName name = ConnectionName.of(projectId, location, connectionId);
      FieldMask updateMask = FieldMaskUtil.fromString("description");
      UpdateConnectionRequest request =
          UpdateConnectionRequest.newBuilder()
              .setName(name.toString())
              .setConnection(connection)
              .setUpdateMask(updateMask)
              .build();
      Connection response = client.updateConnection(request);
      System.out.println("Connection updated successfully :" + response.getDescription());
    }
  }
}

Supprimer une ressource de connexion

Vous pouvez supprimer une ressource de connexion si vous disposez des autorisations appropriées.

Autorisations requises

L'autorisation bigquery.connections.delete est requise pour supprimer une ressource de connexion.

Les rôles IAM prédéfinis suivants disposent déjà de l'autorisation bigquery.connections.delete :

  • bigquery.admin
  • bigquery.connection.admin

Pour en savoir plus sur les rôles et les autorisations IAM dans BigQuery, consultez la page Rôles prédéfinis et autorisations.

Supprimer une ressource de connexion

Pour supprimer une connexion, procédez comme suit :

Console

  1. Dans Google Cloud Console, accédez à la page "BigQuery".

    Accéder à BigQuery

  2. Les ressources de connexion sont répertoriées au niveau supérieur de votre projet, sous un regroupement intitulé External connections (Connexions externes). Cliquez sur une connexion pour afficher des informations sur cette ressource.

    Afficher les ressources de connexion

  3. Cliquez sur le bouton DELETE CONNECTION (Supprimer la connexion) pour afficher le volet de suppression de cette ressource de connexion.

    Bouton Delete connection (Supprimer la connexion)

  4. Dans la boîte de dialogue Delete connection? (Supprimer la connexion ?), saisissez delete pour confirmer votre souhait.

    Supprimer la ressource de connexion

  5. Cliquez sur DELETE (SUPPRIMER).

bq

Saisissez la commande bq rm, puis indiquez l'option de connexion --connection. L'ID connection_id complet est requis.

    bq rm --connection project.location.connection_id

Par exemple, la commande suivante met à jour les ressources de connexion d'un projet avec l'ID federation-test et l'ID de connexion test-mysql.

    bq rm --connection federation-test.us.test-mysql

API

Reportez-vous à la méthode projects.locations.connections.delete dans la documentation de référence de l'API REST.

Java

Avant d'essayer l'exemple ci-dessous, suivez la procédure de configuration pour Java décrite dans le 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 Java.

import com.google.cloud.bigquery.connection.v1.ConnectionName;
import com.google.cloud.bigquery.connection.v1.DeleteConnectionRequest;
import com.google.cloud.bigqueryconnection.v1.ConnectionServiceClient;
import java.io.IOException;

// Sample to delete a connection
public class DeleteConnection {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "MY_PROJECT_ID";
    String location = "MY_LOCATION";
    String connectionName = "MY_CONNECTION_NAME";
    deleteConnection(projectId, location, connectionName);
  }

  public static void deleteConnection(String projectId, String location, String connectionName)
      throws IOException {
    try (ConnectionServiceClient client = ConnectionServiceClient.create()) {
      ConnectionName name = ConnectionName.of(projectId, location, connectionName);
      DeleteConnectionRequest request =
          DeleteConnectionRequest.newBuilder().setName(name.toString()).build();
      client.deleteConnection(request);
      System.out.println("Connection deleted successfully");
    }
  }
}

Journaux d'audit

Pour la journalisation d'audit des ressources de connexion, consultez la section Présentation des journaux d'audit BigQuery.

Dépannage

Cette section vous aide à résoudre les problèmes que vous pouvez rencontrer lors de la configuration d'une nouvelle connexion. Elle n'inclut pas tous les messages d'erreur ou problèmes possibles.

Lors du diagnostic des problèmes de connexion généraux, vérifiez les points suivants :

  • Vous avez terminé toutes les étapes de la section Avant de commencer.
  • Les propriétés de configuration de la connexion sont correctes.
  • Vous disposez des autorisations appropriées pour créer une connexion.

Si vos propriétés de connexion sont correctes et que les autorisations appropriées sont accordées, reportez-vous à la section suivante pour obtenir des solutions aux problèmes courants.

Problème : BigQuery et la source de données externe ne sont pas hébergés en colocation.
Solution : Les requêtes fédérées ne sont possibles que dans les régions compatibles avec BigQuery et la source de données externe. L'ensemble de données BigQuery et l'instance de source de données doivent se trouver dans la même région, ou l'ensemble de données BigQuery doit être situé dans un emplacement multirégional tel que US et EU dans la même zone géographique compatible avec la région de la source de données. Consultez la section Régions compatibles pour plus d'informations sur les régions et la compatibilité des régions.
Problème : les performances sont plus lentes que prévu.
Solution : Les requêtes fédérées ne sont pas aussi performantes que les requêtes sur des données stockées dans BigQuery, car elles doivent interroger les données sources en externe, renvoyer les données dans une table BigQuery temporaire, mapper les données avec le type de données BigQuery, puis exécuter la requête dans BigQuery. Bien que les performances de la requête ne soient pas aussi élevées, les données n'ont pas besoin d'être copiées, déplacées ou stockées à nouveau.
Problème : quel format utiliser pour le nom de la connexion ?
Solution : Le nom de la connexion doit inclure le projet, l'emplacement et le code de connexion. Le code de connexion doit suivre ce modèle : project_id.location_id.connection_idExemple : federation-test.us.my_new_connection