Crear y gestionar vistas lógicas
En Bigtable, una vista lógica es el resultado de una consulta de SQL que funciona como una tabla virtual a la que pueden consultar otras consultas de SQL. Los datos permanecen en la tabla de origen.
En este documento se describen las vistas lógicas y cómo crear y realizar operaciones en ellas. Para ver una comparación entre las vistas materializadas continuas y las vistas autorizadas, consulta Tablas y vistas.
Las vistas lógicas te permiten hacer lo siguiente con tus datos de Bigtable:
- Evita la repetición de consultas: puedes almacenar y desarrollar la asignación de columnas y la lógica de conversión en una vista lógica, que otras vistas lógicas pueden usar en lugar de copiar y pegar esa lógica o de tener que entenderla.
- Integración con sistemas diseñados para leer datos de bases de datos relacionales: las vistas lógicas te permiten hacer que tus datos de Bigtable se lean como una tabla de una base de datos relacional o de Cassandra.
- Ejecutar la misma vista lógica en varias tablas: si modificas la cláusula
FROM
, puedes usar la misma vista para consultar cualquier tabla de tu instancia de Bigtable. - Proporcionar una interfaz coherente: tu aplicación puede usar una vista lógica aunque cambie la tabla de origen.
- Limitar el acceso de lectura a columnas o filas específicas: puedes exponer solo los datos a los que quieres que accedan los usuarios sin darles acceso a toda la tabla.
Una vista lógica es un recurso a nivel de instancia. Puedes crear una vista lógica con la CLI de Google Cloud o el editor de consultas de Bigtable Studio en la Google Cloud consola. Para consultar una vista lógica, puedes usar el editor de consultas de Bigtable Studio o cualquiera de las bibliotecas cliente de Bigtable que admitan SQL.
Una vista lógica tiene las siguientes características:
- Debe usar funciones de SQL compatibles con GoogleSQL para Bigtable
- Solo lectura
- Se debe leer con SQL en lugar de con una llamada a
ReadRows
. - Se puede consultar con cualquiera de las bibliotecas de cliente de Bigtable que admitan SQL.
- Usa derechos de definidor. Puedes consultar una vista lógica si tienes permiso para leerla, aunque no tengas permiso para leer la tabla de origen.
La clave de fila, el calificador de columna y los valores de columna que usas para definir una vista lógica se tratan como datos de servicio. Por este motivo, no cree una vista lógica con claves de fila, calificadores de columna o valores de columna que contengan información sensible. Para obtener información sobre cómo se tratan los datos del servicio, consulta el Google Cloud Aviso de Privacidad.
Antes de empezar
Sigue estos pasos si tienes previsto usar la CLI de gcloud:
-
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
Roles obligatorios
Para trabajar con vistas lógicas, necesitas los siguientes permisos:
Para gestionar las vistas lógicas, sigue estos pasos:
- Para crear, actualizar o eliminar vistas lógicas, debe tener el rol de administrador de Bigtable (
roles/bigtable.admin
) en la instancia. - También puedes pedirle a tu administrador que te conceda los siguientes permisos a nivel de instancia:
- Crear:
bigtable.logicalViews.create
- Actualización:
bigtable.logicalViews.update
- Eliminar:
bigtable.logicalViews.delete
- Crear:
Para ver y consultar vistas lógicas:
- Para enumerar o describir vistas lógicas, debe tener el rol Bigtable Reader (
roles/bigtable.reader
) en la instancia. También puedes pedirle a tu administrador que te conceda los siguientes permisos a nivel de instancia:
- Lista:
bigtable.logicalViews.list
. - Descripción:
bigtable.logicalViews.get
- Lista:
Para consultar una vista lógica, necesitas el permiso
bigtable.logicalViews.readRows
en la vista lógica.
Para crear una vista lógica, sigue estos pasos:
- Debes tener al menos el permiso
bigtable.tables.readRows
en la tabla de origen.
Para conceder acceso de lectura a una vista específica, sigue estos pasos:
Puede conceder a un usuario permiso para leer una vista lógica específica, aunque no tenga ningún otro permiso de Bigtable. Para ello, usa una condición de gestión de identidades y accesos para conceder el permiso bigtable.logicalViews.readRows
solo en esa vista:
- Asigna al usuario el rol
bigtable.reader
en el proyecto. Crea una condición de IAM que limite el permiso
bigtable.logicalViews.readRows
a la vista lógica específica. Por ejemplo:resource.name == projects/PROJECT_ID/instances/INSTANCE_ID/logicalViews/VIEW
Haz los cambios siguientes:
PROJECT_ID
: el proyecto Google Cloud en el que se encuentra tu instancia de Bigtable.VIEW
: ID de hasta 128 caracteres de la nueva vista lógica. El ID debe ser único entre los IDs de tabla y los IDs de vista de la instancia.INSTANCE_ID
: el ID de la instancia en la que se va a crear la vista lógica.
Para obtener más información, consulta Gestionar el acceso a los recursos mediante condiciones de gestión de identidades y accesos.
Para obtener más información sobre todos los roles y permisos disponibles, consulta el artículo sobre el control de acceso de Bigtable con gestión de identidades y accesos.
Crear una vista lógica
Consola
Abre la lista de instancias de Bigtable en la Google Cloud consola.
Selecciona una instancia.
En el panel de navegación, haga clic en Bigtable Studio.
Abre una nueva pestaña haciendo clic en
y, a continuación, selecciona Editor.En el editor de consultas, escribe tu consulta. Si la consulta es SQL válida, se mostrará el mensaje Válida.
Opcional: Para dar formato a la instrucción con el estilo SQL, haz clic en Formato.
Haz clic en Ejecutar. Los resultados de la consulta aparecen en la tabla Resultados.
Cuando estés conforme con la consulta, haz clic en Guardar y, a continuación, en Guardar vista.
Para obtener más información sobre cómo usar el editor de consultas, consulta Gestionar datos con Bigtable Studio.
gcloud
Para crear una vista lógica, usa el comando
gcloud bigtable logical-views create
.
gcloud bigtable logical-views create VIEW \
--instance=INSTANCE --query=QUERY
Haz los cambios siguientes:
VIEW
: ID de hasta 128 caracteres de la nueva vista lógica. El ID debe ser único entre los IDs de tabla y los IDs de vista de la instancia.QUERY
: una consulta de GoogleSQL válida para BigtableINSTANCE
: el ID de la instancia en la que se va a crear la vista lógica.
Optional:
- Para proteger la vista lógica de la eliminación, añade el comando con la marca
--deletion-protection
. Si no aplicas este ajuste, se puede eliminar la vista lógica. También puedes permitir explícitamente la eliminación de la vista lógica añadiendo--no-deletion-protection
. Para obtener más información, consulta la sección Modificar la protección contra eliminación de este documento.
Actualizar una vista lógica
Consola
Abre la lista de instancias de Bigtable en la Google Cloud consola.
Selecciona una instancia de la lista.
En el panel de navegación, haga clic en Bigtable Studio. Se muestra una lista de vistas en el explorador.
Opcional: Se muestran las 10 primeras vistas de la instancia. Para ver 10 más, haz clic en Mostrar más.
Junto a la vista que quiera actualizar, haga clic en el menú de acciones more_vert y, a continuación, en Ver definición.
Modifica la consulta.
Haz clic en Ejecutar.
Cuando haya verificado que en el panel de resultados se muestran los datos que deben incluirse en la vista, haga clic en Guardar como.
En el cuadro de diálogo, introduce el ID de la vista que has modificado.
En el cuadro de diálogo se muestra un mensaje de advertencia que indica que vas a sobrescribir la vista.
Haz clic en Guardar.
gcloud
Para actualizar una vista lógica para que ejecute otra consulta, usa el comando
gcloud bigtable logical-views update
.
gcloud bigtable logical-views update VIEW \
--instance=INSTANCE --query=QUERY
Haz los cambios siguientes:
VIEW
: el ID de la vista lógica que se va a actualizarQUERY
: una consulta de GoogleSQL válidaINSTANCE
: el ID de la instancia que contiene la vista lógica
Para actualizar una vista lógica y modificar la protección contra la eliminación, consulta la sección Modificar la protección contra la eliminación de este documento.
Eliminar una vista lógica
Esta acción es permanente.
Si una vista lógica tiene habilitada la protección contra la eliminación, no podrás eliminarla. Para eliminar una vista lógica que tenga habilitada la protección contra la eliminación, debes actualizarla para inhabilitar esta protección. Para obtener más información, consulta la sección Modificar la protección contra eliminación de este documento.
Consola
Abre la lista de instancias de Bigtable en la Google Cloud consola.
Selecciona una instancia de la lista.
En el panel de navegación, haga clic en Bigtable Studio. Se muestra una lista de vistas en el explorador.
Opcional: Se muestran las 10 primeras vistas de la instancia. Para ver 10 más, haz clic en Mostrar más.
Amplía Vistas.
Junto a la vista que quieras eliminar, haz clic en el menú de acciones more_vert y, a continuación, en Eliminar.
gcloud
Para eliminar una vista lógica, usa el comando gcloud bigtable logical-views delete
.
gcloud bigtable logical-views delete VIEW \
--instance=INSTANCE
Haz los cambios siguientes:
VIEW
: el ID de la vista lógica que se va a actualizarINSTANCE
: el ID de la instancia que contiene la vista lógica
Obtener una lista de vistas lógicas de una instancia
Puedes ver una lista de vistas lógicas de una instancia.
Consola
Abre la lista de instancias de Bigtable en la Google Cloud consola.
Selecciona una instancia de la lista.
En el panel de navegación, haga clic en Bigtable Studio. Se muestra una lista de vistas en el explorador.
Opcional: Se muestran las 10 primeras vistas de la instancia. Para ver 10 más, haz clic en Mostrar más.
gcloud
Para ver una lista de las vistas lógicas de una instancia, usa el comando
gcloud bigtable logical-views list
.
gcloud bigtable logical-views list --instance=INSTANCE
Sustituye INSTANCE
por el ID de instancia.
Describe una vista lógica
Para obtener información sobre una vista lógica, usa el comando gcloud bigtable logical-views
describe
.
gcloud bigtable logical-views describe VIEW \
--instance=INSTANCE
La terminal muestra detalles similares a los siguientes:
createTime: '2025-03-07T19:49:56.316578Z'
etag: W/"/v1/17919275593532352351"
name: projects/my-project/instances/my-instance/logicalViews/my-view
query: SELECT street FROM addresses
updateTime: '2025-03-07T19:49:56.316578Z'
deletion_protection: true
Consultar una vista lógica
Una vez que haya creado una vista lógica, podrá consultarla mediante SQL, de forma similar a como consulta una tabla normal. Puedes usar vistas lógicas en la cláusula FROM
de las instrucciones SELECT
.
En el editor de consultas, introduce una consulta de GoogleSQL que haga referencia al nombre de la vista. Por ejemplo, si tu vista se llama MyLogicalView
:
SELECT *
FROM MyLogicalView
LIMIT 100;
Para obtener más información sobre cómo ejecutar consultas de SQL en Bigtable, consulta Consultar datos con SQL en el editor de consultas.
Modificar la protección frente a la eliminación
La protección contra la eliminación evita que se elimine la vista lógica. Para habilitar o inhabilitar la protección contra la eliminación de una vista lógica, necesitas los permisos necesarios. Para obtener más información, consulta la sección Roles obligatorios de este documento.
gcloud
Para habilitar la protección frente a la eliminación de una vista lógica, ejecuta el comando
gcloud bigtable logical-views update
:
gcloud bigtable logical-views update VIEW \
--instance=INSTANCE \
--deletion-protection
Para inhabilitar la protección contra eliminación de una vista lógica, ejecuta el siguiente comando:
gcloud bigtable logical-views update VIEW \
--instance=INSTANCE \
--no-deletion-protection
Haz los cambios siguientes:
VIEW
: un ID de hasta 128 caracteres para la vista lógica. El ID debe ser único entre los IDs de tablas y vistas de la instancia.INSTANCE
: el ID de la instancia en la que se va a actualizar la vista lógica.
Siguientes pasos
- Descripción general de GoogleSQL para Bigtable
- Vistas materializadas continuas
- Descripción general de las vistas autorizadas