Conectarse a Spanner
Como administrador de BigQuery, puedes crear una conexión para acceder a los datos de Spanner. Esta conexión permite a los analistas de datos consultar datos en Spanner.
Antes de empezar
- Habilita la API de conexión de BigQuery.
-
Para obtener los permisos que necesitas para conectarte a Spanner, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de conexiones de BigQuery (
roles/bigquery.connectionAdmin
) en el proyecto. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Crear conexiones de Spanner
Selecciona una de las opciones siguientes:
Consola
Ve a la página BigQuery.
En el panel Explorador, haz clic en
Añadir datos.Se abrirá el cuadro de diálogo Añadir datos.
En el panel Filtrar por, en la sección Tipo de fuente de datos, selecciona Bases de datos.
También puede introducir
Spanner
en el campo Buscar fuentes de datos.En la sección Fuentes de datos destacadas, haga clic en Google Cloud Spanner.
Haga clic en la tarjeta de solución Google Cloud Spanner: federación de BigQuery.
En el panel Fuente de datos externa, introduce la siguiente información:
- En Tipo de conexión, seleccione Cloud Spanner.
- En Connection ID (ID de conexión), introduce un identificador para el recurso de conexión. Se admiten letras, números y guiones bajos.
- En Tipo de ubicación, seleccione una ubicación (o región) de BigQuery que sea compatible con la región de su fuente de datos externa.
- Opcional: En Nombre descriptivo, introduce un nombre descriptivo para la conexión, como
My connection resource
. El nombre descriptivo puede ser cualquier valor que te ayude a identificar el recurso de conexión si necesitas modificarlo más adelante. - Opcional: En Descripción, escribe una descripción de este recurso de conexión.
- En Nombre de la base de datos, introduce el nombre de la base de datos de Spanner con el siguiente formato:
"projects/PROJECT_ID/instances/INSTANCE/databases/DATABASE"
- Opcional: Para realizar lecturas paralelas, selecciona Leer datos en paralelo. Spanner puede dividir determinadas consultas en partes más pequeñas, o particiones, y obtener las particiones en paralelo. Para obtener más información, consulta Leer datos en paralelo en la documentación de Spanner. Esta opción solo está disponible para las consultas cuyo primer operador en el plan de ejecución sea un operador de unión distribuida. Otras consultas devuelven un error. Para ver el plan de ejecución de una consulta de Spanner, consulta Cómo ejecuta Spanner las consultas.
- Opcional: En Rol de base de datos, introduce el nombre de un rol de base de datos de Spanner. Si no está vacío, esta conexión consulta Spanner con este rol de base de datos de forma predeterminada. Los usuarios de control de acceso granular de Spanner que envíen consultas a través de esta conexión deben tener acceso a este rol, que les habrá concedido su administrador, y el rol de base de datos debe tener el privilegio
SELECT
en todos los objetos de esquema especificados en las consultas externas. Para obtener información sobre el control de acceso pormenorizado, consulta Acerca del control de acceso pormenorizado. - Opcional: Para habilitar Data Boost, selecciona Usar Spanner Data Boost. Data Boost te permite ejecutar consultas analíticas y exportaciones de datos con un impacto casi nulo en las cargas de trabajo de la instancia de BigQuery aprovisionada. Para habilitar Data Boost, selecciona Data Boost y Leer datos en paralelo.
Haga clic en Crear conexión.
bq
Para crear la conexión, usa el comando bq mk
con la marca --connection
.
bq mk --connection \ --connection_type=CLOUD_SPANNER \ --properties='PROPERTIES' \ --location=LOCATION \ --display_name='FRIENDLY_NAME' \ --description 'DESCRIPTION' \ CONNECTION_ID
Haz los cambios siguientes:
PROPERTIES
: un objeto JSON con los siguientes campos:"database"
: la base de datos de Spanner de la conexiónEspecifícalo como una cadena con el siguiente formato:
"projects/PROJECT_ID/instances/INSTANCE/databases/DATABASE"
."use_parallelism"
: (opcional) sitrue
, esta conexión realiza lecturas paralelas.El valor predeterminado es
false
. Spanner puede dividir determinadas consultas en partes más pequeñas, o particiones, y obtener las particiones en paralelo. Para obtener más información, consulta Leer datos en paralelo en la documentación de Spanner. Esta opción está restringida a las consultas cuyo primer operador en el plan de ejecución sea un operador distributed union. Otras consultas devuelven un error. Para ver el plan de ejecución de una consulta de Spanner, consulta Cómo ejecuta Spanner las consultas."database_role"
: (opcional) Si no está vacío, esta conexión consulta Spanner con este rol de base de datos de forma predeterminada. Los usuarios de control de acceso granular de Spanner que envíen consultas a través de esta conexión deben tener acceso a este rol, que les habrá concedido su administrador, y el rol de base de datos debe tener el privilegioSELECT
en todos los objetos de esquema especificados en las consultas externas.Si no se especifica, la conexión se autentica con los roles predefinidos de IAM para Spanner y el principal que ejecuta consultas con esta conexión debe tener asignado el rol de IAM
roles/spanner.databaseReader
.Para obtener información sobre el control de acceso pormenorizado, consulta Acerca del control de acceso pormenorizado.
"useDataBoost"
: (Opcional) Sitrue
, esta conexión permite a los usuarios usar Data Boost. Data Boost permite a los usuarios ejecutar consultas federadas en una capacidad de computación independiente y separada de las instancias aprovisionadas para evitar que afecte a las cargas de trabajo. Para habilitar Aumento de datos, asigna el valortrue
a"useDataBoost"
y a"use_parallelism"
.true
Para usar Data Boost, el principal que ejecute consultas con esta conexión debe tener el permiso
spanner.databases.useDataBoost
. Este permiso se incluye de forma predeterminada en los rolesroles/spanner.admin
yroles/spanner.databaseAdmin
.
LOCATION
: una ubicación de BigQuery que sea compatible con la región de tu fuente de datos externa.CONNECTION_ID
: identificador del recurso de conexiónEl ID de conexión puede contener letras, números y guiones bajos. Si no proporcionas un ID de conexión, BigQuery generará automáticamente un ID único.
En el siguiente ejemplo se crea un recurso de conexión llamado
my_connection_id
.bq mk --connection \ --connection_type='CLOUD_SPANNER' \ --properties='{"database":"projects/my_project/instances/my_instance/databases/database1"}' \ --project_id=federation-test \ --location=us \ my_connection_id
API
Llama al método CreateConnection
en el servicio ConnectionService
.
Compartir conexiones con usuarios
Puede conceder los siguientes roles para permitir que los usuarios consulten datos y gestionen conexiones:
roles/bigquery.connectionUser
: permite a los usuarios usar conexiones para conectarse con fuentes de datos externas y ejecutar consultas en ellas.roles/bigquery.connectionAdmin
: permite a los usuarios gestionar las conexiones.
Para obtener más información sobre los roles y permisos de gestión de identidades y accesos en BigQuery, consulta el artículo sobre roles y permisos predefinidos.
Selecciona una de las opciones siguientes:
Consola
Ve a la página BigQuery.
Las conexiones se muestran en tu proyecto, en un grupo llamado Conexiones externas.
En el panel Explorador, haga clic en el nombre del proyecto > Conexiones externas > conexión.
En el panel Detalles, haz clic en Compartir para compartir una conexión. A continuación, sigue estas instrucciones:
En el cuadro de diálogo Permisos de conexión, comparte la conexión con otras entidades principales añadiendo o editando entidades principales.
Haz clic en Guardar.
bq
No puedes compartir una conexión con la herramienta de línea de comandos bq. Para compartir una conexión, usa la Google Cloud consola o el método de la API Connections de BigQuery.
API
Usa el método projects.locations.connections.setIAM
de la sección de referencia de la API REST Connections de BigQuery y proporciona una instancia del recurso policy
.
Java
Antes de probar este ejemplo, sigue las Javainstrucciones de configuración de la guía de inicio rápido de BigQuery con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
Siguientes pasos
- Consulta información sobre los diferentes tipos de conexión.
- Consulta cómo gestionar las conexiones.
- Consulta información sobre las consultas federadas.
- Consulta cómo consultar datos de Spanner.