Cómo crear y administrar vistas lógicas
En Bigtable, una vista lógica es el resultado de una consulta en SQL que funciona como una tabla virtual a la que se pueden consultar otras consultas en 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 obtener una comparación con 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 lógica de asignación y conversión de columnas en una vista lógica, que las vistas lógicas adicionales pueden usar en lugar de copiar y pegar esa lógica o necesitar comprenderla.
- Integración con sistemas diseñados para leer bases de datos relacionales: Las vistas lógicas te permiten hacer que tus datos de Bigtable se lean como una tabla de base de datos relacional o una tabla de Cassandra.
- Ejecuta la misma vista lógica en muchas tablas: Si modificas la cláusula
FROM, puedes usar la misma vista para consultar cualquier tabla de tu instancia de Bigtable. - Proporciona una interfaz coherente: Tu aplicación puede usar una vista lógica incluso si cambia la tabla de origen.
- Limita el acceso de lectura a columnas o filas específicas: Puedes exponer solo los datos que deseas permitir que los usuarios lean, sin darles acceso a toda la tabla.
Una vista lógica es un recurso a nivel de la instancia. Puedes crear una vista lógica con la Google Cloud CLI o el editor de consultas de Bigtable Studio en la consola de Google Cloud . Para consultar una vista lógica, puedes usar el editor de consultas de Bigtable Studio o cualquiera de las bibliotecas cliente que admiten SQL.
Una vista lógica tiene las siguientes características:
- Debes usar las funciones de SQL compatibles con GoogleSQL para Bigtable.
- La consulta en SQL que define una vista lógica no puede usar
SELECT *. - Solo lectura
- Se debe leer con SQL en lugar de con una llamada a
ReadRows. - Se puede consultar con cualquiera de las bibliotecas cliente de Bigtable que admiten SQL
- Usa derechos de definidor. Puedes consultar una vista lógica si tienes permiso para leerla, incluso si no tienes 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 del servicio. Por este motivo, no crees una vista lógica con clave de fila, calificador de columna o valores de columna que contengan información sensible. Para obtener información sobre cómo se manejan los datos de servicio, consulta el Google Cloud Aviso de Privacidad.
Antes de comenzar
Si planeas usar gcloud CLI, sigue estos pasos:
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI 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 administrar vistas lógicas, sigue estos pasos:
- Para crear, actualizar o borrar vistas lógicas, necesitas el rol de administrador de Bigtable (
roles/bigtable.admin) en la instancia. - Como alternativa, puedes pedirle al administrador que te otorgue los siguientes permisos a nivel de la instancia:
- Crear:
bigtable.logicalViews.create - Actualización:
bigtable.logicalViews.update - Borrar:
bigtable.logicalViews.delete
- Crear:
Para ver y consultar vistas lógicas, haz lo siguiente:
- Para enumerar o describir vistas lógicas, necesitas el rol de lector de Bigtable (
roles/bigtable.reader) en la instancia. Como alternativa, puedes pedirle a tu administrador que te otorgue los siguientes permisos a nivel de la instancia:
- Lista:
bigtable.logicalViews.list - Descripción:
bigtable.logicalViews.get
- Lista:
Para consultar una vista lógica, necesitas el permiso
bigtable.logicalViews.readRowsen la vista lógica.
Para crear una vista lógica, sigue estos pasos:
- Debes tener al menos el permiso
bigtable.tables.readRowsen la tabla de origen.
Para otorgar acceso de lectura a una vista específica, sigue estos pasos:
Puedes otorgar a un usuario permiso para leer una vista lógica específica, incluso si no tiene ningún otro permiso de Bigtable. Para ello, usa una condición de IAM para otorgar el permiso bigtable.logicalViews.readRows solo en esa vista:
- Otorga al usuario el rol
bigtable.readeren el proyecto. Crea una condición de IAM que limite el permiso
bigtable.logicalViews.readRowsa la vista lógica específica. Por ejemplo:resource.name == projects/PROJECT_ID/instances/INSTANCE_ID/logicalViews/VIEWReemplaza lo siguiente:
PROJECT_ID: Es el proyecto Google Cloud en el que se encuentra tu instancia de Bigtable.VIEW: Es un ID de hasta 128 caracteres para 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: Es el ID de la instancia en la que se creará la vista lógica.
Para obtener más información, consulta Administra el acceso a los recursos con condiciones de IAM.
Para obtener más información sobre todos los roles y permisos disponibles, consulta Control de acceso a Bigtable con IAM.
Crea una vista lógica
Console
En la consola de Google Cloud , abre la lista de instancias de Bigtable.
Selecciona una instancia.
En el panel de navegación, haz clic en Bigtable Studio.
Haz clic en y, luego, elige Editor para abrir una pestaña nueva.
En el editor de consultas, escribe tu consulta. Si la consulta es SQL válida, se muestra el mensaje Válida.
Opcional: Para darle formato a tu instrucción en estilo SQL, haz clic en Formato.
Haz clic en Ejecutar. Los resultados de tu consulta aparecen en la tabla Resultados.
Cuando estés conforme con la consulta, haz clic en la flecha del desplegable Guardar como y elige Guardar como vista lógica.
En el diálogo Save your logical view, ingresa un nombre para la vista y, luego, haz clic en Save.
Para obtener más información sobre cómo usar el editor de consultas, consulta Administra tus 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
Reemplaza lo siguiente:
VIEW: Es un ID de hasta 128 caracteres para 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 Bigtable. La búsqueda no puede usarSELECT *.INSTANCE: Es el ID de la instancia en la que se creará la vista lógica.
Opcional:
- Para proteger la vista lógica contra la eliminación, agrega la marca
--deletion-protectional comando. Si no aplicas este parámetro de configuración, se puede borrar la vista lógica. También puedes permitir explícitamente la eliminación de la vista lógica agregando--no-deletion-protection. Para obtener más información, consulta la sección Actualiza una vista lógica de este documento.
Actualiza una vista lógica
Console
No puedes actualizar la protección contra eliminación de una vista lógica en la consola deGoogle Cloud . Para habilitar o inhabilitar la protección contra eliminaciones, usa Google Cloud CLI.
En la consola de Google Cloud , abre la lista de instancias de Bigtable.
Elige una instancia de la lista.
En el panel de navegación, haz clic en Bigtable Studio. En el explorador, se muestra una lista de vistas.
Opcional: Se muestran las primeras 10 vistas de la instancia. Para ver 10 más, haz clic en Mostrar más.
Junto a la vista que deseas actualizar, haz clic en el menú de acciones more_vert y, luego, en Ver definición.
Modifica la consulta.
Haz clic en Ejecutar.
Después de verificar que el panel de resultados muestre los datos que se deben incluir en la vista, haz clic en Guardar como.
En el cuadro de diálogo, ingresa el ID de la vista que modificaste.
En el diálogo, se muestra un mensaje de advertencia que indica que reemplazarás la vista existente.
Haz clic en Guardar.
gcloud
Para actualizar una vista lógica para que ejecute una consulta diferente o para modificar la protección contra eliminación, usa el comando gcloud bigtable logical-views update. Debes especificar la consulta, la protección contra eliminación o ambas.
Para actualizar la consulta de una vista lógica, sigue estos pasos:
gcloud bigtable logical-views update VIEW \
--instance=INSTANCE --query=QUERY
Para habilitar la protección contra eliminaciones en una vista lógica, haz lo siguiente:
gcloud bigtable logical-views update VIEW \
--instance=INSTANCE \
--deletion-protection=true
Para inhabilitar la protección contra eliminaciones de una vista lógica, haz lo siguiente:
gcloud bigtable logical-views update VIEW \
--instance=INSTANCE \
--deletion-protection=false
Reemplaza lo siguiente:
VIEW: Es el ID de la vista lógica que se actualizará.INSTANCE: Es el ID de la instancia que contiene la vista lógica.QUERY: una consulta de GoogleSQL válida
Borra una vista lógica
Esta acción es permanente.
Si una vista lógica tiene habilitada la protección contra eliminación, no podrás borrarla. Para borrar una vista lógica que tiene habilitada la protección contra eliminaciones, debes actualizar la vista lógica para inhabilitar la protección contra eliminaciones. Para obtener más información, consulta la sección Actualiza una vista lógica de este documento.
Console
En la consola de Google Cloud , abre la lista de instancias de Bigtable.
Elige una instancia de la lista.
En el panel de navegación, haz clic en Bigtable Studio. En el explorador, se muestra una lista de vistas.
Opcional: Se muestran las primeras 10 vistas de la instancia. Para ver 10 más, haz clic en Mostrar más.
Expande Vistas.
Junto a la vista que deseas borrar, haz clic en el menú de acciones more_vert y, luego, en Borrar.
gcloud
Para borrar una vista lógica, usa el comando gcloud bigtable logical-views delete.
gcloud bigtable logical-views delete VIEW \
--instance=INSTANCE
Reemplaza lo siguiente:
VIEW: Es el ID de la vista lógica que se actualizará.INSTANCE: Es el ID de la instancia que contiene la vista lógica.
Obtén una lista de las vistas lógicas de una instancia
Puedes ver una lista de las vistas lógicas de una instancia.
Console
En la consola de Google Cloud , abre la lista de instancias de Bigtable.
Elige una instancia de la lista.
En el panel de navegación, haz clic en Bigtable Studio. En el explorador, se muestra una lista de vistas.
Opcional: Se muestran las primeras 10 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
Reemplaza INSTANCE por el ID de la instancia.
Describe una vista lógica
Para obtener detalles sobre una vista lógica, usa el comando gcloud bigtable logical-views
describe.
gcloud bigtable logical-views describe VIEW \
--instance=INSTANCE
En la terminal, se muestran 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
Cómo consultar una vista lógica
Después de crear una vista lógica, puedes consultarla con SQL, de la misma manera que consultas una tabla normal. Puedes usar vistas lógicas en la cláusula FROM de las instrucciones SELECT.
En el editor de consultas, ingresa 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 la ejecución de consultas en SQL en Bigtable, consulta Consulta tus datos con SQL en el editor de consultas.
¿Qué sigue?
- Para obtener más información sobre cómo consultar datos de Bigtable con SQL, consulta la Descripción general de GoogleSQL para Bigtable.
- Para precalcular y almacenar en caché los resultados de las consultas de una tabla de origen, consulta Vistas materializadas continuas.
- Para configurar el acceso de lectura y escritura detallado a subconjuntos específicos de datos, consulta la Descripción general de las vistas autorizadas.
- Para filtrar de forma dinámica los datos de la vista lógica según el contexto de la aplicación, consulta la Descripción general de las vistas parametrizadas.