BigQuery es un almacén de datos estadísticos a escala de petabytes que puedes usar para ejecutar consultas de SQL en grandes cantidades de datos casi en tiempo real.
En BigQuery, la acción de otorgar acceso parar ver un conjunto de datos también se conoce como crear una vista autorizada. Una vista autorizada te permite compartir resultados de consultas con usuarios y grupos específicos sin darles acceso a las tablas subyacentes. También puedes usar la consulta de SQL de la vista para restringir las columnas (campos) que los usuarios pueden consultar. En este instructivo, crearás una vista autorizada.
Objetivos
En este instructivo, se muestra cómo completar las siguientes tareas:
- Crear conjuntos de datos y aplicar controles de acceso a ellos
- Asignar controles de acceso a tu proyecto
- Crear una vista autorizada que restrinja los datos que los usuarios pueden consultar
Costos
BigQuery es un producto pago que generará costos de uso en este instructivo. BigQuery ofrece algunos recursos de forma gratuita hasta alcanzar un límite específico. Para obtener más información, consulta Operaciones gratuitas de BigQuery y nivel gratuito.
Antes de comenzar
Antes de comenzar con este instructivo, usa la consola de Google Cloud para crear o seleccionar un proyecto.
- Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
- BigQuery se habilita automáticamente en proyectos nuevos.
Para activar BigQuery en un proyecto existente, ve a
Habilita la API de BigQuery.
. - Opcional: Habilita la facturación para el proyecto. Si no deseas habilitar la facturación ni proporcionar una tarjeta de crédito, los pasos que se indican en este documento seguirán funcionando. BigQuery proporciona una zona de pruebas para realizar los pasos. Para obtener más información, consulta Habilita la zona de pruebas de BigQuery.
Crea un conjunto de datos de origen
Comienza creando un conjunto de datos para almacenar tus datos fuente. Para este instructivo, consulta el conjunto de datos públicos GitHub para propagar una tabla en el conjunto de datos fuente. Los datos en tu conjunto de datos fuente contienen información que no deseas que vean tus análisis de datos. Restringe el acceso a los datos con una vista autorizada.
Para crear tu conjunto de datos fuente:
Consola
En la consola de Google Cloud, abre la página de BigQuery.
En el panel Explorador, selecciona el proyecto en el que deseas crear el conjunto de datos.
Expande la opción
Acciones y haz clic en Crear conjunto de datos.En ID del conjunto de datos, ingresa
github_source_data
.Deja los valores predeterminados para el resto de la configuración y 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 de 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.
Después de crear el conjunto de datos fuente, propaga una tabla con una consulta de SQL. Esto recupera datos de consulta del conjunto de datos públicos de GitHub.
Consola
En la consola de Google Cloud, abre la página de BigQuery.
Copia y pega la siguiente búsqueda en el campo Editor.
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 Query.
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_ID con el ID de tu proyecto.En ID de tabla, ingresa
github_contributors
.Haz clic en Guardar.
Haz clic en Ejecutar.
Cuando se complete la consulta, haz clic en github_contributors y, luego, en Vista previa para verificar que los datos se escribieron en la tabla.
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 en el que puedas almacenar tu vista
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 se deben crear en un conjunto de datos diferente a partir 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.
Crea un conjunto de datos para almacenar tu vista:
Consola
En la consola de Google Cloud, abre la página de BigQuery.
En el panel Explorador, selecciona el proyecto en el que deseas crear el conjunto de datos.
Expande la opción
Acciones y haz clic en Crear conjunto de datos.En ID del conjunto de datos, ingresa
shared_views
.Deja los valores predeterminados para el resto de la configuración y 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 de 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 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 de SQL que excluye las columnas que no deseas que vean los analistas de datos.
Para este instructivo, tu vista compartida excluye la información del autor, excepto el nombre del autor, y excluye la información del confirmador, excepto el nombre del confirmador.
Para crear la vista en el conjunto de datos nuevo, sigue estos pasos:
Consola
En la consola de Google Cloud, abre la página de BigQuery.
Copia y pega la siguiente búsqueda en el campo Editor. Reemplaza
PROJECT_ID
con el ID del proyecto.SELECT commit, author.name AS author, committer.name AS committer, repo_name FROM `PROJECT_ID.github_source_data.github_contributors`;
Haz clic en 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 de 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_ID
con 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.
Asigna una función de IAM a nivel de proyecto a tus analistas de datos
Para consultar la vista, los analistas de datos necesitan permiso para ejecutar trabajos de consulta. La función bigquery.user
incluye permisos para ejecutar trabajos, incluidos los trabajos de consulta, dentro del proyecto. Si otorgas a un usuario o grupo la función bigquery.user
a nivel del proyecto, el usuario puede crear conjuntos de datos y ejecutar trabajos de consulta en las tablas de esos conjuntos de datos. La función bigquery.user
no otorga permiso a los usuarios para consultar datos, ver datos de tabla o ver detalles de esquema de tabla en los conjuntos de datos que el usuario no creó.
Si asignas la función bigquery.user
a nivel del proyecto a tus analistas de datos, no se les permitirá ver o consultar datos de tabla en el conjunto de datos que contiene las tablas que consulta la vista. La función bigquery.user
tampoco otorga a los usuarios la capacidad de actualizar tus vistas.
Se debe asignar la función bigquery.user
a nivel del proyecto a la mayoría de los individuos (científicos de datos, analistas de inteligencia empresarial, analistas de datos) de una empresa.
Cuando agregas un grupo a una función de IAM, la dirección de correo electrónico y el dominio deben estar asociados con una Cuenta de Google activa o una cuenta de Google Apps.
Para asignar la función bigquery.user
a nivel del proyecto al grupo de analistas de datos, sigue estos pasos:
Consola
Abre la página de IAM en la consola de Google Cloud.
Asegúrate de que tu proyecto esté seleccionado en el selector de proyectos en la barra superior.
Haz clic en
Otorgar acceso.En el cuadro de diálogo Otorgar acceso a, sigue estos pasos:
- En el cuadro Principales nuevos, ingresa el grupo que contiene a tus analistas de datos (por ejemplo,
data_analysts@example.com
). - En el cuadro Seleccionar una función, busca la función Usuario de BigQuery y selecciónala.
- Haz clic en Guardar.
- En el cuadro Principales nuevos, ingresa el grupo que contiene a tus analistas de datos (por ejemplo,
Asigna controles de acceso al conjunto de datos que contiene la vista
Para que los analistas de datos consulten la vista, se les debe otorgar la función bigquery.dataViewer
en el conjunto de datos que contiene la vista. El rol bigquery.user
otorga a los analistas de datos los permisos necesarios para crear trabajos de consulta. Sin embargo, no pueden consultar la vista de forma correcta, a menos que también tengan acceso bigquery.dataViewer
al conjunto de datos que contiene la vista.
Para otorgar a los analistas de datos el acceso bigquery.dataViewer
al conjunto de datos, sigue estos pasos:
Consola
En la consola de Google Cloud, abre la página de BigQuery.
En el panel Explorador, selecciona el conjunto de datos
shared_views
.Haz clic en > Permisos.
CompartirEn el panel Permisos, haz clic en Agregar principal.
En el cuadro Principales, ingresa el grupo que contiene a tus analistas de datos (por ejemplo,
data_analysts@example.com
).Haz clic en Seleccionar una función 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
Una vez que crees los controles de acceso para el conjunto de datos que contiene la vista, agrega la vista como una vista autorizada en el conjunto de datos fuente. Esta autorización le otorga a la vista, pero no al grupo de analistas de datos, acceso a los datos de origen.
Autoriza la vista para acceder a los datos fuente:
Consola
En la consola de Google Cloud, abre la página de BigQuery.
En el panel Explorador, selecciona el conjunto de datos
github_source_data
.Haz clic en
Compartir, y, luego, selecciona Autorizar vistas.En el panel Vistas autorizadas que se abre, ingresa la vista
github_analyst_view
en el campo Vistas autorizadas.Haz clic en Agregar autorización.
La vista github_analyst_view
ahora está autorizada para acceder a los datos en el conjunto de datos de origen.
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, sigue estos pasos:
SQL
Haz que un miembro de tu grupo de analistas de datos haga lo siguiente:
En la consola de Google Cloud, 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_ID
con el ID del proyecto.Haz clic en
Ejecutar.
Si deseas obtener 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.
- En la consola de Google Cloud, 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.
¿Qué sigue?
- Lee la sección Funciones y permisos predefinidos para obtener información sobre los controles de acceso en BigQuery.
- Lee la sección Introducción a las vistas para obtener información sobre las vistas de BigQuery.
- Lee Crea una vista autorizada para obtener más información sobre ellas.
- Lee la sección Descripción general de IAM para conocer los conceptos básicos de IAM.
- Lee la sección Administra políticas para obtener información sobre cómo administrar el control de acceso.