En este instructivo, crearás una vista autorizada en BigQuery, que tus analistas de datos pueden usar para analizar los resultados de las consultas sin necesidad de acceder a los datos de origen subyacentes.
Para ello, crea la vista autorizada a partir de una consulta en SQL que restrinja las columnas que los analistas de datos pueden ver en los resultados de la consulta.
Objetivos
- Crea un conjunto de datos que contenga tus datos de origen.
- Ejecuta una consulta para cargar datos en una tabla de destino en el conjunto de datos de origen.
- Crea un conjunto de datos que contenga tu vista autorizada.
- Crea una vista autorizada a partir de una consulta en SQL que restrinja las columnas que tus analistas de datos pueden ver en los resultados de la consulta.
- Otorga a tus analistas de datos permiso para ejecutar trabajos de consulta.
- Otorga a tus analistas de datos acceso al conjunto de datos que contiene la vista autorizada.
- Otorga acceso de lectura al conjunto de datos de origen.
Costos
En este documento, usarás los siguientes componentes facturables de Google Cloud:
Para generar una estimación de costos en función del uso previsto,
usa la calculadora de precios.
Cuando completes las tareas que se describen en este documento, podrás borrar los recursos que creaste para evitar que se te siga facturando. Para obtener más información, consulta Realiza una limpieza.
Antes de comenzar
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .
Habilita la API de BigQuery si aún no está habilitada.
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el permiso
serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtenerlo a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén más información para otorgar roles.- Asegúrate de tener los permisos necesarios para realizar las tareas de este documento.
Crea un conjunto de datos para almacenar tus datos de origen
En primer lugar, debes crear un conjunto de datos para almacenar tus datos de origen.
Para crear tu conjunto de datos de origen, elige una de las siguientes opciones:
Console
Ve a la página de BigQuery.
En el panel de la izquierda, haz clic en Explorar.

Si no ves el panel izquierdo, haz clic en Expandir panel izquierdo para abrirlo.
En el panel Explorador, junto al proyecto en el que deseas crear el conjunto de datos, haz clic en Ver acciones > Crear conjunto de datos.
En la página Crear conjunto de datos, haz lo siguiente:
En ID del conjunto de datos, ingresa
github_source_data.En Tipo de ubicación, verifica que esté seleccionada la opción Multirregión.
En Multirregión, elige EE.UU. o UE. Todos los recursos que crees en este instructivo deben estar en la misma ubicación multirregional.
Haz clic en Crear conjunto de datos.
SQL
Usa la declaración DDL CREATE SCHEMA:
En la consola de Google Cloud , ve a la página BigQuery.
En el editor de consultas, escribe la siguiente sentencia:
CREATE SCHEMA github_source_data;
Haz clic en Ejecutar.
Para obtener más información sobre cómo ejecutar consultas, visita Ejecuta una consulta interactiva.
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.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Python
Antes de probar este ejemplo, sigue las instrucciones de configuración para Python 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 Python.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Crea una tabla y carga tus datos de origen
Después de crear el conjunto de datos de origen, propaga una tabla en él guardando los resultados de una consulta en SQL en una tabla de destino. La consulta recupera datos del conjunto de datos públicos de GitHub.
Console
Ve a la página de BigQuery.
En el editor de consultas, ingresa la consulta siguiente:
SELECT commit, author, committer, repo_name FROM `bigquery-public-data.github_repos.commits` LIMIT 1000;Haz clic en Editar > Configuración de consulta.
En Destino, selecciona Establecer una tabla de destino para los resultados de la consulta.
En Conjunto de datos, ingresa
PROJECT_ID.github_source_data.Reemplaza
PROJECT_IDcon el ID del proyecto.En ID de tabla, ingresa
github_contributors.Haz clic en Guardar.
Haz clic en Ejecutar.
Cuando se complete la consulta, en el panel Explorador, haz clic en Conjuntos de datos y, luego, en el conjunto de datos
github_source_data.Haz clic en Descripción general > Tablas y, luego, en la tabla
github_contributors.Para verificar que los datos se escribieron en la tabla, haz clic en la pestaña Vista previa.
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.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Python
Antes de probar este ejemplo, sigue las instrucciones de configuración para Python 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 Python.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Crea un conjunto de datos para almacenar tu vista autorizada
Después de crear tu conjunto de datos fuente, crearás un conjunto de datos nuevo y separado para almacenar la vista autorizada que compartirás con tus analistas de datos. En un paso posterior, otorgarás acceso de vista autorizado a los datos en el conjunto de datos fuente. Tus analistas de datos tendrán acceso a la vista autorizada, pero no al acceso directo a los datos de origen.
Las vistas autorizadas deben crearse en un conjunto de datos diferente de los datos de origen. De esta manera, los propietarios de datos pueden otorgar a los usuarios acceso a la vista autorizada sin otorgar acceso simultáneo a los datos subyacentes. El conjunto de datos de origen y el de vista autorizada deben estar en la misma ubicación regional.
Para crear un conjunto de datos en el que se almacene tu vista, elige una de las siguientes opciones:
Console
Ve a la página de BigQuery.
En el panel de la izquierda, haz clic en Explorar.

En el panel Explorador, selecciona el proyecto en el que deseas crear el conjunto de datos.
Expande la opción Ver acciones y haz clic en Crear conjunto de datos.
En la página Crear conjunto de datos, haz lo siguiente:
En ID del conjunto de datos, ingresa
shared_views.En Tipo de ubicación, verifica que esté seleccionada la opción Multirregión.
En Multirregión, elige EE.UU. o UE. Todos los recursos que crees en este instructivo deben estar en la misma ubicación multirregional.
Haz clic en Crear conjunto de datos.
SQL
Usa la declaración DDL CREATE SCHEMA:
En la consola de Google Cloud , ve a la página BigQuery.
En el editor de consultas, escribe la siguiente sentencia:
CREATE SCHEMA shared_views;
Haz clic en Ejecutar.
Para obtener más información sobre cómo ejecutar consultas, visita Ejecuta una consulta interactiva.
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.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Python
Antes de probar este ejemplo, sigue las instrucciones de configuración para Python 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 Python.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Crea la vista autorizada en el conjunto de datos nuevo
En el conjunto de datos nuevo, crearás la vista que deseas autorizar. Esta es la vista que compartes con tus analistas de datos. Esta vista se crea con una consulta en SQL que excluye las columnas que no deseas que vean los analistas de datos.
La tabla de origen github_contributors contiene dos campos de tipo RECORD:
author y committer. En este instructivo, tu vista autorizada excluye todos
los datos del autor, excepto su nombre, y todos los datos del
confirmador, excepto su nombre.
Para crear la vista en el conjunto de datos nuevo, elige una de las siguientes opciones:
Console
Ve a la página de BigQuery.
En el editor de consultas, ingresa la consulta siguiente:
SELECT commit, author.name AS author, committer.name AS committer, repo_name FROM `PROJECT_ID.github_source_data.github_contributors`;
Reemplaza
PROJECT_IDcon el ID del proyecto.Haz clic en Archivo > Guardar > Guardar vista.
En el cuadro de diálogo Guardar vista, haz lo siguiente:
Para Proyecto, verifica que tu proyecto esté seleccionado.
En Conjunto de datos, ingresa
shared_views.En Tabla, ingresa
github_analyst_view.Haz clic en Guardar.
SQL
Usa la declaración DDL CREATE VIEW:
En la consola de Google Cloud , ve a la página BigQuery.
En el editor de consultas, ingresa la siguiente sentencia:
CREATE VIEW shared_views.github_analyst_view AS ( SELECT commit, author.name AS author, committer.name AS committer, repo_name FROM `PROJECT_ID.github_source_data.github_contributors` );
Reemplaza
PROJECT_IDcon el ID del proyecto.Haz clic en Ejecutar.
Para obtener más información sobre cómo ejecutar consultas, visita Ejecuta una consulta interactiva.
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.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Python
Antes de probar este ejemplo, sigue las instrucciones de configuración para Python 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 Python.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Otorga permiso a tus analistas de datos para ejecutar trabajos de consulta
Para consultar la vista, los analistas de datos necesitan el permiso bigquery.jobs.create,
de modo que puedan ejecutar trabajos de consulta. Este permiso solo es necesario en el proyecto
en el que se ejecuta el trabajo de consulta (el proyecto de facturación o ejecución), que puede ser
diferente del proyecto que contiene la vista.
En esta sección, otorgarás el rol bigquery.user a tus analistas de datos en el
proyecto que usan para ejecutar sus trabajos. El rol bigquery.user incluye el permiso
bigquery.jobs.create. En un paso posterior, otorgarás a tus analistas de datos
permiso para acceder a la vista.
Para asignar el grupo de analistas de datos al rol bigquery.user en el proyecto
que usan para ejecutar sus trabajos, haz lo siguiente:
En la consola de Google Cloud , dirígete a la página IAM.
Asegúrate de que el proyecto que usan tus analistas para ejecutar sus trabajos esté seleccionado en el selector de proyectos.
Haz clic en Otorgar acceso.
En el cuadro de diálogo Otorgar acceso a, haz lo siguiente:
En el campo Principales nuevas, ingresa el grupo que contiene a tus analistas de datos. Por ejemplo,
data_analysts@example.comEn el campo Seleccionar un rol, busca el rol Usuario de BigQuery y selecciónalo.
Haz clic en Guardar.
Otorga permiso a tus analistas de datos para consultar la vista autorizada
Para que los analistas de datos consulten la vista, se les debe otorgar el rol
bigquery.dataViewer a nivel del conjunto de datos o de la vista.
Otorgar este rol a nivel del conjunto de datos les da a tus analistas acceso a todas las tablas
y vistas del conjunto de datos. Debido a que el conjunto de datos creado en este instructivo contiene
una sola vista autorizada, otorgarás acceso a nivel del conjunto de datos. Si
tienes una colección de vistas autorizadas a las que necesitas otorgar acceso, considera
usar un conjunto de datos autorizado en su lugar.
El rol bigquery.user que otorgaste a tus analistas de datos antes
les otorga los permisos necesarios para crear trabajos de consulta en el proyecto en el que
se ejecutan los trabajos de consulta. Sin embargo, no pueden consultar la vista de forma correcta, a menos que
también tengan acceso bigquery.dataViewer a la vista autorizada o al conjunto de datos
que contiene la vista.
Para otorgar a tus analistas de datos acceso bigquery.dataViewer al conjunto de datos que
contiene la vista autorizada, haz lo siguiente:
Console
Ve a la página de BigQuery.
En el panel de la izquierda, haz clic en Explorar.

En el panel Explorador, haz clic en Conjuntos de datos y, luego, selecciona el conjunto de datos
shared_viewspara abrir la pestaña Detalles.Haz clic en Compartir > Permisos.
En el panel Compartir permisos, haz clic en Agregar principal.
En Principales nuevos, ingresa el grupo que contiene a tus analistas de datos, por ejemplo,
data_analysts@example.com.Haz clic en Seleccionar un rol y selecciona BigQuery > Visualizador de datos de BigQuery.
Haz clic en Guardar.
Haz clic en Cerrar.
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.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Python
Antes de probar este ejemplo, sigue las instrucciones de configuración para Python 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 Python.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Autoriza la vista para acceder al conjunto de datos fuente
Después de crear los controles de acceso para el conjunto de datos que contiene la vista autorizada, otorga a la vista autorizada acceso de lectura al conjunto de datos de origen. Esta autorización le otorga a la vista, pero no al grupo de analistas de datos, acceso a los datos de origen.
Para otorgar a la vista autorizada acceso de lectura a los datos de origen, elige una de estas opciones:
Console
Ve a la página de BigQuery.
En el panel de la izquierda, haz clic en Explorar.

En el panel Explorador, haz clic en Conjuntos de datos y, luego, selecciona el conjunto de datos
github_source_datapara abrir la pestaña Detalles.Haz clic en Compartir > Autorizar vistas.
En el panel Vistas autorizadas, en Vista autorizada, ingresa
PROJECT_ID.shared_views.github_analyst_view.Reemplaza PROJECT_ID con el ID del proyecto.
Haz clic en Agregar autorización.
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.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Python
Antes de probar este ejemplo, sigue las instrucciones de configuración para Python 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 Python.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Verifica la configuración
Cuando se completa la configuración, un miembro de tu grupo de analistas de datos (por ejemplo, data_analysts) puede realizar una consulta en la vista para verificar la configuración.
Para verificar la configuración, un analista de datos debe ejecutar la siguiente consulta:
Ve a la página de BigQuery.
En el editor de consultas, ingresa la siguiente sentencia:
SELECT * FROM `
PROJECT_ID.shared_views.github_analyst_view`;Reemplaza
PROJECT_IDcon el ID del proyecto.Haz clic en Ejecutar.
Los resultados de la consulta son similares a los siguientes. Solo el nombre del autor y el nombre de quien confirma los cambios son visibles en los resultados.
Para obtener más información sobre cómo ejecutar consultas, visita Ejecuta una consulta interactiva.
Código fuente completo
Aquí se muestra el código fuente completo del instructivo a modo de referencia.
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.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Python
Antes de probar este ejemplo, sigue las instrucciones de configuración para Python 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 Python.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Limpia
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.
Borra el proyecto
Console
- En la Google Cloud consola, ve a la página Administrar recursos.
- En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
- En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.
gcloud
Borra un proyecto de Google Cloud :
gcloud projects delete PROJECT_ID
Borra los recursos individuales
Como alternativa, para quitar los recursos individuales que se usaron en este instructivo, haz lo siguiente:
Borra el conjunto de datos que contiene la vista autorizada.
Borra la tabla en el conjunto de datos de origen.
Debido a que creaste los recursos que se usaron en este instructivo, no se requieren permisos adicionales para borrarlos.
¿Qué sigue?
- Para obtener información sobre los controles de acceso en BigQuery, consulta Roles y permisos de IAM de BigQuery.
- Para obtener más información sobre las vistas de BigQuery, consulta Introducción a las vistas lógicas.
- Para obtener más información sobre las vistas autorizadas, consulta Vistas autorizadas.
- Para conocer los conceptos básicos sobre el control de acceso, consulta Descripción general de IAM.
- Para aprender a administrar el control de acceso, consulta Administra políticas.