Crear y configurar una conexión de recursos de Cloud
Como administrador de BigQuery, puede crear una conexión de recursos de Cloud que permita a los analistas de datos realizar las siguientes tareas:
- Consulta datos estructurados de Cloud Storage con tablas de BigLake. Las tablas de BigLake te permiten consultar datos externos con delegación de acceso.
- Consulta datos sin estructurar en Cloud Storage con tablas de objetos.
- Implementa funciones remotas con cualquiera de los lenguajes admitidos en Cloud Run Functions o Cloud Run.
- Consulta datos de Spanner con conjuntos de datos externos de Spanner. Los conjuntos de datos externos de Spanner con una conexión de recursos de Cloud te permiten consultar fuentes de datos externas con delegación de acceso.
Para obtener más información sobre las conexiones, consulta el artículo Introducción a las conexiones.
Antes de empezar
Habilita la API de conexión de BigQuery.
-
Para obtener los permisos que necesitas para crear una conexión de recursos de Cloud, pide a tu administrador que te conceda los siguientes roles de IAM:
-
Administrador de conexión de BigQuery (
roles/bigquery.connectionAdmin
) en el proyecto -
Lector de objetos de Storage (
roles/storage.objectViewer
) en el segmento
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.
Si quieres consultar datos estructurados mediante tablas de BigLake basadas en Cloud Storage o datos sin estructurar mediante tablas de objetos, la cuenta de servicio asociada a la conexión también debe tener el rol Lector de Storage (roles/storage.viewer
) en el bucket que contiene los datos externos.
-
Administrador de conexión de BigQuery (
- Asegúrate de que tu versión del SDK de Google Cloud sea la 366.0.0 o una posterior:
gcloud version
Si es necesario, actualiza el SDK de Google Cloud.
Consideraciones sobre la ubicación
Cuando uses Cloud Storage para almacenar archivos de datos, te recomendamos que utilices segmentos de una sola región o de dos regiones para obtener un rendimiento óptimo, en lugar de segmentos multirregionales.
Crear conexiones de recursos de Cloud
BigLake usa una conexión para acceder a Cloud Storage. Puedes usar esta conexión con una sola tabla o con un grupo de tablas.
Puedes saltarte este paso si tienes una conexión predeterminada configurada o si tienes el rol Administrador de BigQuery.
Crea una conexión de recursos de Cloud para que la use el modelo remoto y obtén la cuenta de servicio de la conexión. Crea la conexión en la misma ubicación que el conjunto de datos que has creado en el paso anterior.
Selecciona una de las opciones siguientes:
Consola
Ve a la página BigQuery.
En el panel Explorador, haga 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 Aplicaciones empresariales.
También puede introducir
Vertex AI
en el campo Buscar fuentes de datos.En la sección Fuentes de datos destacadas, haga clic en Vertex AI.
Haz clic en la tarjeta de solución Modelos de Vertex AI: federación de BigQuery.
En la lista Tipo de conexión, selecciona Modelos remotos, funciones remotas y BigLake (recurso de Cloud) de Vertex AI.
En el campo ID de conexión, introduce un nombre para la conexión.
Haga clic en Crear conexión.
Haz clic en Ir a la conexión.
En el panel Información de conexión, copia el ID de la cuenta de servicio para usarlo en un paso posterior.
bq
En un entorno de línea de comandos, crea una conexión:
bq mk --connection --location=REGION --project_id=PROJECT_ID \ --connection_type=CLOUD_RESOURCE CONNECTION_ID
El parámetro
--project_id
anula el proyecto predeterminado.Haz los cambios siguientes:
REGION
: tu región de conexiónPROJECT_ID
: tu ID de proyecto Google CloudCONNECTION_ID
: un ID para tu conexión
Cuando creas un recurso de conexión, BigQuery crea una cuenta de servicio del sistema única y la asocia a la conexión.
Solución de problemas: si aparece el siguiente error de conexión, actualiza el SDK de Google Cloud:
Flags parsing error: flag --connection_type=CLOUD_RESOURCE: value should be one of...
Obtén y copia el ID de la cuenta de servicio para usarlo en un paso posterior:
bq show --connection PROJECT_ID.REGION.CONNECTION_ID
El resultado debería ser similar al siguiente:
name properties 1234.REGION.CONNECTION_ID {"serviceAccountId": "connection-1234-9u56h9@gcp-sa-bigquery-condel.iam.gserviceaccount.com"}
Terraform
Usa el recurso google_bigquery_connection
.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se crea una conexión de recursos de Cloud llamada my_cloud_resource_connection
en la región US
:
Para aplicar la configuración de Terraform en un proyecto, sigue los pasos que se indican en las siguientes secciones. Google Cloud
Preparar Cloud Shell
- Abre Cloud Shell.
-
Define el Google Cloud proyecto Google Cloud predeterminado en el que quieras aplicar tus configuraciones de Terraform.
Solo tiene que ejecutar este comando una vez por proyecto y puede hacerlo en cualquier directorio.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Las variables de entorno se anulan si defines valores explícitos en el archivo de configuración de Terraform.
Preparar el directorio
Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).
-
En Cloud Shell, crea un directorio y un archivo nuevo en ese directorio. El nombre del archivo debe tener la extensión
.tf
. Por ejemplo,main.tf
. En este tutorial, nos referiremos al archivo comomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si estás siguiendo un tutorial, puedes copiar el código de ejemplo de cada sección o paso.
Copia el código de ejemplo en el archivo
main.tf
que acabas de crear.También puedes copiar el código de GitHub. Se recomienda cuando el fragmento de Terraform forma parte de una solución integral.
- Revisa y modifica los parámetros de ejemplo para aplicarlos a tu entorno.
- Guarda los cambios.
-
Inicializa Terraform. Solo tienes que hacerlo una vez por directorio.
terraform init
Si quieres usar la versión más reciente del proveedor de Google, incluye la opción
-upgrade
:terraform init -upgrade
Aplica los cambios
-
Revisa la configuración y comprueba que los recursos que va a crear o actualizar Terraform se ajustan a tus expectativas:
terraform plan
Haga las correcciones necesarias en la configuración.
-
Aplica la configuración de Terraform ejecutando el siguiente comando e introduciendo
yes
en la petición:terraform apply
Espera hasta que Terraform muestre el mensaje "Apply complete!".
- Abre tu Google Cloud proyecto para ver los resultados. En la Google Cloud consola, ve a tus recursos en la interfaz de usuario para asegurarte de que Terraform los ha creado o actualizado.
Conceder acceso a la cuenta de servicio
Para crear funciones remotas, debes conceder los roles necesarios a las funciones de Cloud Run o a Cloud Run.
Para conectarte a Cloud Storage, debes dar a la nueva conexión acceso de solo lectura a Cloud Storage para que BigQuery pueda acceder a los archivos en nombre de los usuarios.
Selecciona una de las opciones siguientes:
Consola
Te recomendamos que concedas a la cuenta de servicio del recurso de conexión el rol de gestión de identidades y accesos Lector de objetos de almacenamiento (roles/storage.objectViewer
), que permite a la cuenta de servicio acceder a los segmentos de Cloud Storage.
Ve a la página IAM y administración.
Haz clic en
Añadir.Se abrirá el cuadro de diálogo Añadir principales.
En el campo Nuevos principales, introduce el ID de la cuenta de servicio que has copiado anteriormente.
En el campo Selecciona un rol, elige Cloud Storage y, a continuación, Visor de objetos de Storage.
Haz clic en Guardar.
gcloud
Usa el comando gcloud storage buckets add-iam-policy-binding
:
gcloud storage buckets add-iam-policy-binding gs://BUCKET \ --member=serviceAccount:MEMBER \ --role=roles/storage.objectViewer
Haz los cambios siguientes:
BUCKET
: el nombre de tu segmento de almacenamiento.MEMBER
: el ID de la cuenta de servicio que has copiado antes.
Para obtener más información, consulta Añadir un principal a una política a nivel de segmento.
Terraform
Usa el recurso google_bigquery_connection
.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se concede acceso al rol de IAM a la cuenta de servicio de la conexión de recursos de Cloud:
Para aplicar la configuración de Terraform en un proyecto, sigue los pasos que se indican en las siguientes secciones. Google Cloud
Preparar Cloud Shell
- Abre Cloud Shell.
-
Define el Google Cloud proyecto Google Cloud predeterminado en el que quieras aplicar tus configuraciones de Terraform.
Solo tiene que ejecutar este comando una vez por proyecto y puede hacerlo en cualquier directorio.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Las variables de entorno se anulan si defines valores explícitos en el archivo de configuración de Terraform.
Preparar el directorio
Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).
-
En Cloud Shell, crea un directorio y un archivo nuevo en ese directorio. El nombre del archivo debe tener la extensión
.tf
. Por ejemplo,main.tf
. En este tutorial, nos referiremos al archivo comomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si estás siguiendo un tutorial, puedes copiar el código de ejemplo de cada sección o paso.
Copia el código de ejemplo en el archivo
main.tf
que acabas de crear.También puedes copiar el código de GitHub. Se recomienda cuando el fragmento de Terraform forma parte de una solución integral.
- Revisa y modifica los parámetros de ejemplo para aplicarlos a tu entorno.
- Guarda los cambios.
-
Inicializa Terraform. Solo tienes que hacerlo una vez por directorio.
terraform init
Si quieres usar la versión más reciente del proveedor de Google, incluye la opción
-upgrade
:terraform init -upgrade
Aplica los cambios
-
Revisa la configuración y comprueba que los recursos que va a crear o actualizar Terraform se ajustan a tus expectativas:
terraform plan
Haga las correcciones necesarias en la configuración.
-
Aplica la configuración de Terraform ejecutando el siguiente comando e introduciendo
yes
en la petición:terraform apply
Espera hasta que Terraform muestre el mensaje "Apply complete!".
- Abre tu Google Cloud proyecto para ver los resultados. En la Google Cloud consola, ve a tus recursos en la interfaz de usuario para asegurarte de que Terraform los ha creado o actualizado.
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 tablas de BigLake.
- Consulta cómo crear tablas de BigLake.
- Consulta cómo actualizar tablas externas a tablas de BigLake.
- Consulta información sobre las tablas de objetos y cómo crearlas.
- Consulta cómo implementar funciones remotas.
- Consulte cómo crear conjuntos de datos externos de Spanner.