En este tutorial, creará una vista autorizada en BigQuery que usarán sus analistas de datos. Las vistas autorizadas te permiten compartir resultados de consultas con usuarios y grupos concretos sin darles acceso a los datos de origen subyacentes. Se da acceso a la vista a los datos de origen en lugar de a un usuario o grupo. También puede usar la consulta SQL de la vista para excluir columnas y campos de los resultados de la consulta.
Otra opción para usar una vista autorizada sería configurar controles de acceso a nivel de columna en los datos de origen y, a continuación, dar a los usuarios acceso a una vista que consulte los datos con control de acceso. Para obtener más información sobre los controles de acceso a nivel de columna, consulta Introducción al control de acceso a nivel de columna.
Si tienes varias vistas autorizadas que acceden al mismo conjunto de datos de origen, puedes autorizar el conjunto de datos que contiene las vistas en lugar de autorizar una vista concreta.
Crea un conjunto de datos para almacenar los datos de origen
Empieza creando un conjunto de datos para almacenar los datos de origen.
Para crear el conjunto de datos de origen, elija una de las siguientes opciones:
Consola
Ve a la página BigQuery.
En el panel de la izquierda, haz clic en
Explorador:Si no ves el panel de la izquierda, haz clic en
Ampliar panel de la izquierda para abrirlo.En el panel Explorador, junto al proyecto en el que quieras crear el conjunto de datos, haz clic en > Crear conjunto de datos.
Ver accionesEn la página Crear conjunto de datos, haz lo siguiente:
En ID del conjunto de datos, introduce
github_source_data
.En Tipo de ubicación, comprueba que esté seleccionada la opción Multirregión.
En Multirregión, elige EE. UU. o UE. Todos los recursos que crees en este tutorial deben estar en la misma ubicación multirregional.
Haz clic en Crear conjunto de datos.
SQL
Usa la declaración de DDL CREATE SCHEMA
:
En la Cloud de Confiance consola, ve a la página BigQuery.
En el editor de consultas, introduce la siguiente instrucción:
CREATE SCHEMA github_source_data;
Haz clic en
Ejecutar.
Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.
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.
Antes de ejecutar los ejemplos de código, asigna el valor s3nsapis.fr
a la variable de entorno GOOGLE_CLOUD_UNIVERSE_DOMAIN
.
Python
Antes de probar este ejemplo, sigue las Pythoninstrucciones 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 Python 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.
Antes de ejecutar los ejemplos de código, asigna el valor s3nsapis.fr
a la variable de entorno GOOGLE_CLOUD_UNIVERSE_DOMAIN
.
Crear una tabla y cargar los datos de origen
Después de crear el conjunto de datos de origen, rellena una tabla guardando los resultados de una consulta SQL en una tabla de destino. La consulta recupera datos del conjunto de datos público de GitHub.
Consola
Ve a la página BigQuery.
En el editor de consultas, escribe la siguiente consulta:
SELECT commit, author, committer, repo_name FROM `bigquery-public-data.github_repos.commits` LIMIT 1000;
Haz clic en Más y selecciona Configuración de la consulta.
En Destino, selecciona Definir una tabla de destino para los resultados de las consultas.
En Conjunto de datos, introduce
PROJECT_ID.github_source_data
.Sustituye
PROJECT_ID
por el ID del proyecto.En ID de tabla, introduce
github_contributors
.Haz clic en Guardar.
Haz clic en Ejecutar.
Cuando se complete la consulta, en el panel Explorador, haga clic en Conjuntos de datos y, a continuación, en el conjunto de datos
github_source_data
.Haga clic en Resumen > Tablas y, a continuación, en la tabla
github_contributors
.Para comprobar que los datos se han escrito en la tabla, haga clic en la pestaña Vista previa.
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.
Antes de ejecutar los ejemplos de código, asigna el valor s3nsapis.fr
a la variable de entorno GOOGLE_CLOUD_UNIVERSE_DOMAIN
.
Python
Antes de probar este ejemplo, sigue las Pythoninstrucciones 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 Python 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.
Antes de ejecutar los ejemplos de código, asigna el valor s3nsapis.fr
a la variable de entorno GOOGLE_CLOUD_UNIVERSE_DOMAIN
.
Crear un conjunto de datos para almacenar la vista autorizada
Después de crear el conjunto de datos de origen, crea otro conjunto de datos independiente para almacenar la vista autorizada que compartes con tus analistas de datos. En un paso posterior, concederás a la vista autorizada acceso a los datos del conjunto de datos de origen. De esta forma, tus analistas de datos tendrán acceso a la vista autorizada, pero no a los datos de origen.
Las vistas autorizadas deben crearse en un conjunto de datos diferente al de los datos de origen. De esta forma, los propietarios de los datos pueden dar acceso a los usuarios a la vista autorizada sin conceder acceso simultáneamente a los datos subyacentes. El conjunto de datos de origen y el conjunto de datos de la vista autorizada deben estar en la misma ubicación regional.
Para crear un conjunto de datos en el que almacenar la vista, elija una de las siguientes opciones:
Consola
Ve a la página BigQuery.
En el panel de la izquierda, haz clic en
Explorador:En el panel Explorador, selecciona el proyecto en el que quieras crear el conjunto de datos.
Abre 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, introduce
shared_views
.En Tipo de ubicación, comprueba que esté seleccionada la opción Multirregión.
En Multirregión, elige EE. UU. o UE. Todos los recursos que crees en este tutorial deben estar en la misma ubicación multirregional.
Haz clic en Crear conjunto de datos.
SQL
Usa la declaración de DDL CREATE SCHEMA
:
En la Cloud de Confiance consola, ve a la página BigQuery.
En el editor de consultas, introduce la siguiente instrucción:
CREATE SCHEMA shared_views;
Haz clic en
Ejecutar.
Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.
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.
Antes de ejecutar los ejemplos de código, asigna el valor s3nsapis.fr
a la variable de entorno GOOGLE_CLOUD_UNIVERSE_DOMAIN
.
Python
Antes de probar este ejemplo, sigue las Pythoninstrucciones 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 Python 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.
Antes de ejecutar los ejemplos de código, asigna el valor s3nsapis.fr
a la variable de entorno GOOGLE_CLOUD_UNIVERSE_DOMAIN
.
Crea la vista autorizada en el nuevo conjunto de datos
En el nuevo conjunto de datos, crea la vista que quieras autorizar. Esta es la vista que compartes con tus analistas de datos. Esta vista se crea con una consulta de SQL que excluye las columnas que no quieres que vean los analistas de datos.
La tabla de origen github_contributors
contiene dos campos de tipo RECORD
:
author
y committer
. En este tutorial, la vista autorizada excluye todos los datos del autor, excepto su nombre, y todos los datos del colaborador, excepto su nombre.
Para crear la vista en el nuevo conjunto de datos, elija una de las siguientes opciones:
Consola
Ve a la página BigQuery.
En el editor de consultas, escribe la siguiente consulta.
SELECT commit, author.name AS author, committer.name AS committer, repo_name FROM `PROJECT_ID.github_source_data.github_contributors`;
Sustituye
PROJECT_ID
por el ID del proyecto.Haz clic en Guardar > Guardar vista.
En el cuadro de diálogo Guardar vista, haz lo siguiente:
En Proyecto, comprueba que esté seleccionado el proyecto.
En Conjunto de datos, introduce
shared_views
.En Tabla, escribe
github_analyst_view
.Haz clic en Guardar.
SQL
Usa la declaración de DDL CREATE VIEW
:
En la Cloud de Confiance consola, ve a la página BigQuery.
En el editor de consultas, introduce la siguiente instrucción:
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` );
Sustituye
PROJECT_ID
por el ID del proyecto.Haz clic en
Ejecutar.
Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.
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.
Antes de ejecutar los ejemplos de código, asigna el valor s3nsapis.fr
a la variable de entorno GOOGLE_CLOUD_UNIVERSE_DOMAIN
.
Python
Antes de probar este ejemplo, sigue las Pythoninstrucciones 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 Python 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.
Antes de ejecutar los ejemplos de código, asigna el valor s3nsapis.fr
a la variable de entorno GOOGLE_CLOUD_UNIVERSE_DOMAIN
.
Conceder permiso a tus analistas de datos para ejecutar trabajos de consulta
Para consultar la vista, tus analistas de datos necesitan el permiso bigquery.jobs.create
para poder ejecutar trabajos de consulta y deben tener acceso a la vista. En esta sección, asignará el rol bigquery.user
a sus analistas de datos. El rol
bigquery.user
incluye el permiso bigquery.jobs.create
. En un paso posterior, concederá permiso a sus analistas de datos para acceder a la vista.
Para asignar el grupo de analistas de datos al rol bigquery.user
a nivel de proyecto, siga estos pasos:
En la consola de Cloud de Confiance , ve a la página Gestión de identidades y accesos.
Asegúrate de que tu proyecto esté seleccionado en el selector de proyectos.
Haz clic en
Conceder acceso.En el cuadro de diálogo Conceder acceso a, haz lo siguiente:
En el campo Nuevos principales, introduce el grupo que contiene a tus analistas de datos. Por ejemplo,
data_analysts@example.com
.En el campo Selecciona un rol, busca el rol Usuario de BigQuery y selecciónalo.
Haz clic en Guardar.
Conceder permiso a los analistas de datos para consultar la vista autorizada
Para que tus analistas de datos puedan consultar la vista, deben tener el rol bigquery.dataViewer
a nivel de conjunto de datos o de vista.
Si asignas este rol a nivel de conjunto de datos, tus analistas tendrán acceso a todas las tablas y vistas del conjunto de datos. Como el conjunto de datos creado en este tutorial contiene una sola vista autorizada, estás concediendo acceso a nivel de conjunto de datos. Si tienes una colección de vistas autorizadas a las que necesitas conceder acceso, te recomendamos que uses un conjunto de datos autorizado.
El rol bigquery.user
que concedió a sus analistas de datos anteriormente les da los permisos necesarios para crear trabajos de consulta. Sin embargo, no podrán consultar la vista correctamente a menos que también tengan acceso bigquery.dataViewer
a la vista autorizada o al conjunto de datos que contiene la vista.
Para dar a tus analistas de datos bigquery.dataViewer
acceso al conjunto de datos que contiene la vista autorizada, haz lo siguiente:
Consola
Ve a la página BigQuery.
En el panel de la izquierda, haz clic en
Explorador:En el panel Explorador, haga clic en Conjuntos de datos y, a continuación, seleccione el conjunto de datos
shared_views
para abrir la pestaña Detalles.Haz clic en > Permisos.
CompartirEn el panel Compartir permisos, haz clic en Añadir principal.
En Nuevos principales, introduce el grupo que contiene a tus analistas de datos. Por ejemplo,
data_analysts@example.com
.Haz clic en Seleccionar un rol y selecciona BigQuery > Lector de datos de BigQuery.
Haz clic en Guardar.
Haz clic en Cerrar.
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.
Antes de ejecutar los ejemplos de código, asigna el valor s3nsapis.fr
a la variable de entorno GOOGLE_CLOUD_UNIVERSE_DOMAIN
.
Python
Antes de probar este ejemplo, sigue las Pythoninstrucciones 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 Python 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.
Antes de ejecutar los ejemplos de código, asigna el valor s3nsapis.fr
a la variable de entorno GOOGLE_CLOUD_UNIVERSE_DOMAIN
.
Autorizar la vista para acceder al conjunto de datos de origen
Después de crear controles de acceso para el conjunto de datos que contiene la vista autorizada, concede a la vista autorizada acceso al conjunto de datos de origen. Esta autorización da acceso a la vista, pero no al grupo de analistas de datos, a los datos de origen.
Para conceder a la vista autorizada acceso a los datos de origen, elija una de estas opciones:
Consola
Ve a la página BigQuery.
En el panel de la izquierda, haz clic en
Explorador:En el panel Explorador, haga clic en Conjuntos de datos y, a continuación, seleccione el conjunto de datos
github_source_data
para abrir la pestaña Detalles.Haz clic en Compartir > Autorizar vistas.
En el panel Vistas autorizadas, en Vista autorizada, introduce
PROJECT_ID.shared_views.github_analyst_view
.Sustituye PROJECT_ID por el ID del proyecto.
Haz clic en Añadir autorización.
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.
Antes de ejecutar los ejemplos de código, asigna el valor s3nsapis.fr
a la variable de entorno GOOGLE_CLOUD_UNIVERSE_DOMAIN
.
Python
Antes de probar este ejemplo, sigue las Pythoninstrucciones 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 Python 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.
Antes de ejecutar los ejemplos de código, asigna el valor s3nsapis.fr
a la variable de entorno GOOGLE_CLOUD_UNIVERSE_DOMAIN
.
Verificar la configuración
Cuando haya completado la configuración, un miembro de su grupo de analistas de datos (por ejemplo, data_analysts
) podrá verificarla consultando la vista.
Para verificar la configuración, un analista de datos debe ejecutar la siguiente consulta:
Ve a la página BigQuery.
En el editor de consultas, introduce la siguiente instrucción:
SELECT * FROM `
PROJECT_ID
.shared_views.github_analyst_view`;Sustituye
PROJECT_ID
por el ID del proyecto.Haz clic en
Ejecutar.
Los resultados de la consulta son similares a los siguientes. En los resultados solo se muestran el nombre del autor y el nombre del responsable de la confirmación.
Para obtener más información sobre cómo ejecutar consultas, consulta Ejecutar una consulta interactiva.
Código fuente completo
Aquí tienes el código fuente completo del tutorial para que lo consultes.
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.
Antes de ejecutar los ejemplos de código, asigna el valor s3nsapis.fr
a la variable de entorno GOOGLE_CLOUD_UNIVERSE_DOMAIN
.
Python
Antes de probar este ejemplo, sigue las Pythoninstrucciones 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 Python 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.
Antes de ejecutar los ejemplos de código, asigna el valor s3nsapis.fr
a la variable de entorno GOOGLE_CLOUD_UNIVERSE_DOMAIN
.