Trabaja con conexiones a fuentes de datos externas

Descripción general

La API de conexión de BigQuery permite a los usuarios configurar una conexión desde BigQuery a una fuente de datos externa. Puedes usar la conexión para enviar consultas en la fuente de datos externa desde BigQuery sin mover ni copiar datos a BigQuery.

Debes completar una configuración inicial única a fin de crear un recurso de conexión en BigQuery. Luego, puedes realizar las siguientes tareas:

Antes de comenzar

Habilita el servicio de conexión de BigQuery

  1. Abre la página API de conexión de BigQuery en la biblioteca de API.
  2. En el menú desplegable, selecciona el proyecto que contenga la fuente de datos externa.
  3. Haz clic en el botón HABILITAR.

    API de conexión de BigQuery

Cuenta de servicio

BigQuery usa una cuenta de servicio para conectarse a tu fuente de datos externa. Cuando habilitas la API de conexión de BigQuery, se crea de forma automática una cuenta de servicio administrada por la administración de identidades y accesos (IAM) de Google Cloud en tu nombre.

Permisos

  • Para crear y mantener un recurso de conexión, el usuario de tener la función de IAM predefinida bigquery.admin.

  • La función bigquery.admin incluye los siguientes permisos del servicio de conexión de BigQuery:

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

Para otorgar permisos a otro usuario a fin de que pueda usar el recurso de conexión, consulta Comparte un recurso de conexión.

Otorga acceso de bigquery.admin

Para otorgar la función bigquery.admin, haz lo siguiente:

Console

  1. Abre la página de IAM en Cloud Console.

    Abrir la página IAM

  2. Haz clic en Seleccionar un proyecto.

  3. Selecciona un proyecto y haz clic en Abrir.

  4. Haz clic en Agregar para agregar miembros nuevos al proyecto y configura sus permisos.

  5. En el cuadro de diálogo Agregar miembros (Add members), haz lo siguiente:

    • En Miembros (Members), ingresa la dirección de correo electrónico del usuario o grupo.
    • En el menú desplegable Seleccionar una función, haz clic en BigQuery > Administrador de BigQuery (BigQuery > BigQuery Admin).
    • Haz clic en Agregar (Add).

      Otorgar función de administrador

gcloud

Puedes usar la herramienta de línea de comandos de gcloud para otorgar la función bigquery.admin a un usuario o grupo.

Para agregar una vinculación única a la política de IAM del proyecto, escribe el siguiente comando. Para agregar un usuario, proporciona la marca --member con el formato user:user@example.com. Para agregar un grupo, proporciona la marca --member con el formato group:group@example.com.

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

En el ejemplo anterior, se ilustra lo siguiente:

  • project_id es el ID del proyecto.
  • group/user es group o user.
  • address es la dirección de correo electrónico del usuario o del grupo.

Por ejemplo:

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

El comando genera la política actualizada:

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

Para obtener más información sobre las funciones de Cloud IAM en BigQuery, consulta Funciones y permisos predefinidos.

Crea un recurso de conexión

Para evitar escribir las credenciales de la base de datos como texto sin formato en una consulta federada, primero debes crear un recurso de conexión de base de datos por cada base de datos en BigQuery y, luego, hacer referencia al recurso de conexión en tu consulta federada.

El recurso de conexión tiene un conjunto de permisos de IAM que puedes otorgar a otros usuarios. El recurso de conexión está encriptado y almacenado de forma segura en el servicio de conexión de BigQuery y solo puede usarse para consultas federadas.

Para obtener más información sobre las funciones y los permisos de IAM en BigQuery, consulta Funciones y permisos predefinidos.

Console

  1. Para crear un recurso de conexión, ve a la página de BigQuery en Cloud Console.

    Ir a la página de BigQuery

  2. En el menú Agregar datos (Add data), selecciona Fuentes de datos externa (External data source).

    Crea un recurso de conexión.

  3. En el panel Fuente de datos externa, ingresa la siguiente información:

    • En Tipo de conexión, selecciona el tipo de fuente, por ejemplo, MySQL o Postgres.
    • En ID de conexión, ingresa un identificador para el recurso de conexión. Se permiten letras, números y guiones bajos.
    • En Ubicación de la conexión, selecciona una ubicación (o región) de BigQuery que sea compatible con la región de la fuente de datos externa.
    • En Nombre descriptivo (Friendly name), ingresa un nombre fácil de usar para la conexión, como My connection resource (opcional). El nombre descriptivo puede ser cualquier valor que te ayude a identificar el recurso de conexión si necesitas modificarlo más adelante.
    • En Descripción (Description), ingresa una descripción para este recurso de conexión (opcional).
    • Si eliges MySQL o Postgres de Cloud SQL para el tipo de conexión, haz lo siguiente:ID de la instancia de Cloud SQL, ingresa el nombre completo de la instancia de Cloud SQL, por lo general, en el formatoproject-id:location-id:instance-id. Puedes encontrar el ID de la instancia en la página de detalles de la instancia de Cloud SQL que deseas consultar.
    • En Nombre de la base de datos (Database name), ingresa el nombre de la base de datos.
    • En Nombre de usuario (Username), ingresa el nombre de usuario para la base de datos.
    • En Contraseña (Password), ingresa la contraseña para la base de datos.

      • Marca Mostrar contraseña (Show password) para revelar la contraseña (opcional).

      Recurso de conexión nuevo

  4. Haz clic en Crear conexión (Create connection).

bq

Ingresa el comando bq mk y proporciona la marca de conexión --connection. También se requieren las siguientes marcas:

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

Las siguientes marcas son opcionales:

  • --display_name El nombre descriptivo de la conexión.
  • --description Es una descripción de la conexión.

El connection_id es un parámetro opcional que se puede agregar como el último argumento del comando que se usa para el almacenamiento de forma interna. Si no se proporciona un ID de conexión, se genera un ID único de forma automática. El connection_id pueden contener letras, números y guiones bajos.

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

Reemplaza lo siguiente:

  • TYPE: Es el tipo de la fuente de datos externa.
  • PROPERTIES: Son los parámetros para la conexión creada en formato JSON. Por ejemplo: --properties='{"param":"param_value"}'. Para crear un recurso de conexión, debes proporcionar los parámetros instanceID, database y type.
  • CREDENTIALS: Son los parámetros username y password.
  • PROJECT_ID: Es el ID de tu proyecto.
  • LOCATION: Es la región en la que se encuentra tu instancia de Cloud SQL.
  • CONNECTION_ID: Es el identificador de conexión.

Por ejemplo, con el siguiente comando, se crea un recurso de conexión nuevo llamado my_new_connection (nombre descriptivo: “Mi conexión nueva”) en un proyecto con el 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

Dentro de la API de conexión de BigQuery, puedes invocar CreateConnection dentro de ConnectionService para crear una instancia de conexión. Consulta la página de la biblioteca cliente para obtener más detalles.

También puedes crear una conexión con las bibliotecas cliente específicas del lenguaje de programación. Consulta los temas de tipo de conexión para ver ejemplos específicos de lenguajes.

Consulta un recurso de conexión

Una vez que se establece una conexión, puedes usar la función EXTERNAL_QUERY() para ejecutar una consulta federada. Visita Sintaxis de consultas federadas para obtener más información y consultas de muestra.

Consulta otra base de datos a través del mismo recurso de conexión

Cuando creas una conexión a una fuente de datos externa, debes especificar las credenciales para esa fuente de datos. Si las mismas credenciales de usuario son válidas para otros datos en el origen, se puede usar el mismo recurso de conexión.

Obtén información sobre un recurso de conexión

Luego de crear un recurso de conexión, puedes obtener información sobre su configuración. La configuración incluye los valores que proporcionaste cuando creaste la transferencia.

Permisos necesarios

Para obtener información sobre un recurso de conexión, se requiere el permiso bigquery.connections.get. Las siguientes funciones predefinidas de la administración de identidades y accesos (IAM) ya incluyen el permiso bigquery.connections.get:

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

Para obtener más información sobre las funciones de IAM y los permisos en BigQuery, consulta Funciones y permisos predefinidos.

Visualiza un recurso de conexión

Console

  1. Para ver el estado de los recursos de la conexión, ve a la página de BigQuery en Cloud Console.

    Ir a BigQuery

  2. Los recursos de conexión se enumerarán en el nivel superior de tu proyecto, en un grupo llamado External connections (Conexiones externas). Haz clic en una conexión para ver información sobre ese recurso de conexión, como connection ID y Cloud SQL instance ID.

    Ver recursos de conexión

bq

Ingresa el comando bq show y proporciona la marca de conexión --connection. Se requiere el connection_id completamente calificado.

    bq show --connection project.location.connection_id

Por ejemplo, mediante el siguiente comando, se obtiene información sobre un recurso de conexión llamado my_new_connection en un proyecto que tiene el ID federation-test y se ubica en la región us.

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

API

Usa el método projects.locations.connections.get en la sección de referencia de la API de REST.

Java

Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para 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());
    }
  }
}

Enumera todos los recursos de conexión

Permisos necesarios

Para enumerar todos los recursos de conexión en un proyecto, se requieren los permisos bigquery.connections.list. Las siguientes funciones predefinidas de IAM ya incluyen el permiso bigquery.connections.list:

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

Para obtener más información sobre las funciones de IAM y los permisos en BigQuery, consulta Funciones y permisos predefinidos.

Enumera los recursos de conexión

Para enumerar todos los recursos de conexión de un proyecto, sigue estos pasos:

Console

  1. Para ver el estado de un recurso de la conexión, ve a la página de BigQuery en Cloud Console.

    Ir a BigQuery

  2. Los recursos de conexión se enumerarán en el nivel superior de tu proyecto, en un grupo llamado External connections (Conexiones externas).

    Ver recursos de conexión

bq

Ingresa el comando bq show y proporciona la marca de conexión --connection. Se requiere el connection_id completamente calificado.

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

Por ejemplo, mediante el siguiente comando, se enumeran los recursos de conexión en un proyecto que tiene el ID federation-test y se ubica en la región us.

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

API

Usa el método projects.locations.connections.list en la sección de referencia de la API de REST.

Java

Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para 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()));
    }
  }
}

Comparte un recurso de conexión

Permisos necesarios

Si deseas permitir que otro usuario use un recurso de la conexión para consultas federadas de Cloud SQL, el usuario bigquery.admin puede otorgar las dos funciones diferentes en IAM.

Usuario de conexión de BigQuery

La función bigquery.connection.user está dirigida a usuarios que necesitan ejecutar consultas con el recurso de conexión.

Esta función de IAM incluye los siguientes permisos:

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

Administrador de conexión de BigQuery

La función bigquery.connection.admin está dirigida a usuarios que necesitan administrar recursos de conexión.

Esta función de IAM incluye los mismos permisos que bigquery.connection.user, además de permisos adicionales para crear, actualizar y borrar recursos de conexión existente y también establecer políticas de IAM en recursos de conexión.

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

Para obtener más información sobre las funciones de IAM y los permisos en BigQuery, consulta Funciones y permisos predefinidos.

Comparte un recurso de conexión

Console

  1. Para compartir un recurso de la conexión, ve a la página de BigQuery en Cloud Console.

    Ir a BigQuery

  2. Los recursos de conexión se enumerarán en el nivel superior de tu proyecto, en un grupo llamado External connections (Conexiones externas). Haz clic en una conexión para ver información sobre ese recurso de conexión.

    Ver recursos de conexión

  3. Haz clic en el botón SHARE CONNECTION (COMPARTIR CONEXIÓN) para ver el panel de permisos de ese recurso de conexión.

    Botón Compartir conexión

  4. En el panel Connection permissions (Permisos de la conexión), los usuarios con la función BigQuery Admin (Administrador de BigQuery) o BigQuery Connection Admin (Administrador de conexión de BigQuery) pueden compartir el recurso de conexión con otros usuarios si agregan o editan los permisos de los otros usuarios.

    Compartir recursos de conexión

  5. Haga clic en Listo.

bq

Por el momento, no puedes compartir un recurso con la herramienta de línea de comandos de bq. Si deseas compartir un recurso de la conexión, usa Cloud Console o el método de la API de la conexiones de BigQuery para compartir una conexión.

API

Consulta el método projects.locations.connections.setIAM en la sección de referencia de la API de REST de las conexiones de BigQuery y proporciona una instancia del recurso policy.

Java

Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para 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");
    }
  }
}

Edita o actualiza un recurso de conexión

Cuando se agrega el recurso de conexión, puedes editarlo. Puedes editar la mayoría de los campos propagados durante la creación del recurso de conexión, incluidas las credenciales de nombre de usuario.

Una conexión usa las credenciales del usuario que la creó. Si necesitas cambiar el usuario que está conectado a un recurso de conexión, puedes actualizar las credenciales del usuario. Esto es útil si el usuario que creó la conexión ya no está en tu organización.

No puedes editar los siguientes elementos de un recurso de conexión:

  • Tipo de conexión
  • ID de la conexión
  • Ubicación

Permisos necesarios

La actualización de un recurso de conexión requiere el permiso bigquery.connections.update.

Las siguientes funciones predefinidas de IAM ya incluyen el permiso bigquery.connections.update:

  • bigquery.admin
  • bigquery.connection.admin

Para obtener más información sobre las funciones de IAM y los permisos en BigQuery, consulta Funciones y permisos predefinidos.

Edita un recurso de conexión

Para editar una conexión, sigue estos pasos:

Console

  1. En Cloud Console, ve a la página de BigQuery.

    Ir a BigQuery

  2. Los recursos de conexión se enumerarán en el nivel superior de tu proyecto, en un grupo llamado External connections (Conexiones externas). Haz clic en una conexión para ver información sobre ese recurso de conexión.

    Ver recursos de conexión

  3. Haz clic en el botón EDIT CONNECTION (EDITAR CONEXIÓN) para ver el panel de edición de ese recurso de conexión.

    Botón Editar conexión

  4. Edita cualquier campo que se muestre, incluidas las credenciales del usuario.

    Editar el recurso de conexión

  5. Haga clic en Save.

bq

Ingresa el comando bq update y proporciona la marca de conexión --connection. Se requiere el connection_id completamente calificado.

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

Por ejemplo, mediante el siguiente comando, se actualizan los recursos de conexión en un proyecto con el ID federation-test y el ID de conexión 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

Consulta el método projects.locations.connections.patch en la sección de referencia de la API de REST y proporciona una instancia del recurso de connection.

Java

Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para 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());
    }
  }
}

Borra un recurso de conexión

Puedes borrar un recurso de conexión si tienes los permisos adecuados para hacerlo.

Permisos necesarios

Para borrar un recurso de conexión, se requiere el permiso bigquery.connections.delete.

Las siguientes funciones predefinidas de IAM ya incluyen el permiso bigquery.connections.delete:

  • bigquery.admin
  • bigquery.connection.admin

Para obtener más información sobre las funciones de IAM y los permisos en BigQuery, consulta Funciones y permisos predefinidos.

Borra un recurso de conexión

Para borrar una conexión, sigue estos pasos:

Console

  1. En Google Cloud Console, ve a la página de BigQuery.

    Ir a BigQuery

  2. Los recursos de conexión se enumerarán en el nivel superior de tu proyecto, en un grupo llamado External connections (Conexiones externas). Haz clic en una conexión para ver información sobre ese recurso de conexión.

    Ver recursos de conexión

  3. Haz clic en el botón DELETE CONNECTION (BORRAR CONEXIÓN) para ver el panel de eliminación de ese recurso de conexión.

    Botón Borrar conexión

  4. En el cuadro de diálogo Delete connection? (¿Deseas borrar la conexión?), ingresa delete para confirmar tu intención.

    Borrar recurso de conexión

  5. Haz clic en BORRAR.

bq

Ingresa el comando bq rm y proporciona la marca de conexión --connection. Se requiere el connection_id completamente calificado.

    bq rm --connection project.location.connection_id

Por ejemplo, mediante el siguiente comando, se actualizan los recursos de conexión en un proyecto con el ID federation-test y el ID de conexión test-mysql.

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

API

Consulta el método projects.locations.connections.delete en la sección de referencia de la API de REST.

Java

Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para 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");
    }
  }
}

Registros de auditoría

Para obtener información sobre el registro de auditoría de los recursos de conexión, consulta Descripción general de los registros de auditoría de BigQuery.

Soluciona problemas

En esta sección, se proporciona ayuda para solucionar los problemas que puedes encontrar cuando configuras una conexión nueva. No se abarcan todos los problemas o mensajes de error posibles.

Cuando diagnosticas problemas generales de conexión, debes verificar lo siguiente:

  • Completaste todos los pasos de la sección Antes de comenzar.
  • Las propiedades de configuración de la conexión son correctas.
  • Tienes los permisos adecuados para crear una conexión.

Si tus propiedades de conexión son correctas y se otorgan los permisos adecuados, consulta las siguientes soluciones para problemas comunes.

Problema: BigQuery y la fuente de datos externa no están en la misma ubicación.
Resolución: Las consultas federadas solo son compatibles en regiones que admiten BigQuery y la fuente de datos externa. El conjunto de datos de BigQuery y la instancia de fuente de datos deben estar en la misma región, o el conjunto de datos de BigQuery debe estar en una ubicación multirregional como US y EU en la misma área geográfica que es compatible con la región de la fuente de datos. Consulta Regiones compatibles para obtener más información sobre las regiones y la compatibilidad de regiones.
Problema: El rendimiento es más lento de lo que debería.
Resolución: El rendimiento de las consultas federadas no es tan alto como el de las consultas sobre datos almacenados en BigQuery porque la consulta federada tiene que realizar una consulta a los datos de origen de forma externa, mostrar los datos en una tabla temporal de BigQuery, asignar los datos a un tipo de datos de BigQuery y ejecutar la consulta en BigQuery. Aunque el rendimiento de las consultas no es tan alto, no es necesario volver a copiar, mover ni almacenar los datos.
Problema: Formato del nombre de la conexión
Resolución: El nombre de la conexión debe incluir el ID de proyecto, de ubicación y de conexión. El ID de conexión debe cumplir con este patrón: project_id.location_id.connection_id, por ejemplo, federation-test.us.my_new_connection