Crea y administra vistas lógicas

En Bigtable, una vista lógica es el resultado de una consulta en SQL que funciona como una tabla virtual que pueden consultar otras consultas de SQL. Los datos permanecen en la tabla fuente.

En este documento, se describen las vistas lógicas y cómo crearlas 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:

  • Evitar la repetición de consultas: Puedes almacenar y desarrollar la lógica de conversión y asignació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.
  • Integrar con sistemas diseñados para leer desde 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.
  • Ejecutar la misma vista lógica en muchas tablas: Si modificas la FROM cláusula, 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 incluso si cambia la tabla fuente.
  • Limitar el acceso de lectura a columnas o filas específicas: Puedes exponer solo los datos que deseas permitir que lean los usuarios, sin darles acceso a la tabla completa.

Una vista lógica es un recurso a nivel de la instancia. Puedes crear una vista lógica con Google Cloud CLI 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 las funciones de SQL compatibles con GoogleSQL for Bigtable.
  • 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 admitan SQL.
  • Usa derechos de definidor. Puedes consultar una vista lógica si tienes permisos para leerla, incluso si no tienes permiso para leer la tabla fuente.

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 crees una vista lógica con la clave de fila, el calificador de columna o los 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

Sigue estos pasos si planeas usar gcloud CLI:

  1. Instala Google Cloud CLI.

  2. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  3. 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:

  • Para crear, actualizar o borrar vistas lógicas, necesitas el rol 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
    • Actualizar: bigtable.logicalViews.update
    • Borrar: bigtable.logicalViews.delete

Para ver y consultar vistas lógicas:

  • Para enumerar o describir vistas lógicas, necesitas el rol Lector de Bigtable (roles/bigtable.reader) en la instancia.
  • Como alternativa, puedes pedirle al administrador que te otorgue los siguientes permisos a nivel de la instancia:

    • Lista: bigtable.logicalViews.list
    • Descripción: bigtable.logicalViews.get
  • Para consultar una vista lógica, necesitas el permiso bigtable.logicalViews.readRows en la vista lógica.

Para crear una vista lógica:

  • Debes tener al menos el permiso bigtable.tables.readRows en la tabla fuente.

Para otorgar acceso de lectura a una vista específica:

Puedes otorgar permiso a un usuario 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:

  1. Otorga al usuario el rol bigtable.reader en el proyecto.
  2. 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
    

    Reemplaza lo siguiente:

    • PROJECT_ID: el Google Cloud proyecto en el que se encuentra tu instancia de Bigtable
    • VIEW: 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: 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 de Bigtable con IAM.

Crea una vista lógica

Console

  1. Abre la lista de instancias de Bigtable en la Google Cloud consola.

    Abrir la lista de instancias

  2. Selecciona una instancia.

  3. En el panel de navegación, haz clic en Bigtable Studio.

  4. Para abrir una pestaña nueva, haz clic en y luego, elige Editor.

    1. Escribe tu consulta en el editor de consultas. Si la consulta es un SQL válido, se muestra un mensaje Válido.

    2. Opcional: Para dar formato a tu instrucción en estilo SQL, haz clic en Formato.

    3. Haz clic en Ejecutar. Los resultados de tu consulta aparecen en la tabla Resultados.

    4. Cuando estés satisfecho con la consulta, haz clic en la flecha del expansor Guardar como y elige Guardar como vista lógica.

  5. En el diálogo Guarda tu vista lógica , ingresa un nombre para la vista y, luego, haz clic en Guardar.

    Para obtener más información sobre el uso del editor de consultas, consulta Administra tus datos con Bigtable Studio.

gcloud

Para crear una vista lógica, usa el gcloud bigtable logical-views create comando.

gcloud bigtable logical-views create VIEW \
  --instance=INSTANCE --query=QUERY

Reemplaza lo siguiente:

  • VIEW: 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
  • INSTANCE: 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 el comando con la marca --deletion-protection. Si no aplicas esta configuración, se puede borrar la vista lógica. También puedes permitir explícitamente la eliminación de la vista lógica si agregas --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 la eliminación para una vista lógica en la Google Cloud consola. Para habilitar o inhabilitar la protección contra la eliminación, usa Google Cloud CLI.

  1. Abre la lista de instancias de Bigtable en la Google Cloud consola.

    Abrir la lista de instancias

  2. Elige una instancia de la lista.

  3. En el panel de navegación, haz clic en Bigtable Studio. Se muestra una lista de vistas en el explorador.

  4. Opcional: Se muestran las primeras 10 vistas de la instancia. Para ver 10 más, haz clic en Mostrar más.

  5. Junto a la vista que deseas actualizar, haz clic en el menú de acciones more_vert y, luego, en Ver definición.

  6. Modifica la consulta.

  7. Haz clic en Ejecutar.

  8. Después de verificar que el panel de resultados muestre los datos que se deben incluir en la vista, haz clic en Guardar como.

  9. En el diálogo, ingresa el ID de la vista que modificaste.

    El diálogo muestra un mensaje que te advierte que estás sobrescribiendo la vista existente.

  10. Haz clic en Guardar.

gcloud

Para actualizar una vista lógica para ejecutar una consulta diferente o modificar la protección contra la eliminación, usa el comando.gcloud bigtable logical-views update Debes especificar la consulta, la protección contra la eliminación o ambas.

Para actualizar la consulta de una vista lógica, haz lo siguiente:

gcloud bigtable logical-views update VIEW  \
    --instance=INSTANCE --query=QUERY

Para habilitar la protección contra la eliminación para una vista lógica, haz lo siguiente:

gcloud bigtable logical-views update VIEW \
    --instance=INSTANCE \
    --deletion-protection=true

Para inhabilitar la protección contra la eliminación para una vista lógica, haz lo siguiente:

gcloud bigtable logical-views update VIEW \
    --instance=INSTANCE \
    --deletion-protection=false

Reemplaza lo siguiente:

  • VIEW: el ID de la vista lógica que se actualizará
  • INSTANCE: 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 la eliminación, no puedes borrarla. Para borrar una vista lógica que tiene habilitada la protección contra la eliminación, debes actualizar la vista lógica para inhabilitar la protección contra la eliminación. Para obtener más información, consulta la sección Actualiza una vista lógica de este documento.

Console

  1. Abre la lista de instancias de Bigtable en la Google Cloud consola.

    Abrir la lista de instancias

  2. Elige una instancia de la lista.

  3. En el panel de navegación, haz clic en Bigtable Studio. Se muestra una lista de vistas en el explorador.

  4. Opcional: Se muestran las primeras 10 vistas de la instancia. Para ver 10 más, haz clic en Mostrar más.

  5. Expande Vistas.

  6. Junto a la vista que deseas borrar, haz clic en el more_vert, y, luego, en Borrar.

gcloud

Para borrar una vista lógica, usa el gcloud bigtable logical-views delete comando.

  gcloud bigtable logical-views delete VIEW \
    --instance=INSTANCE

Reemplaza lo siguiente:

  • VIEW: el ID de la vista lógica que se actualizará
  • INSTANCE: el ID de la instancia que contiene la vista lógica

Obtén una lista de vistas lógicas para una instancia

Puedes ver una lista de vistas lógicas para una instancia.

Console

  1. Abre la lista de instancias de Bigtable en la Google Cloud consola.

    Abrir la lista de instancias

  2. Elige una instancia de la lista.

  3. En el panel de navegación, haz clic en Bigtable Studio. Se muestra una lista de vistas en el explorador.

  4. 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 vistas lógicas para una instancia, usa el gcloud bigtable logical-views list comando.

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

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

Consulta una vista lógica

Después de crear una vista lógica, puedes consultarla con SQL, de manera similar a como 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 de SQL en Bigtable, consulta Consulta tus datos con SQL en el editor de consultas.

¿Qué sigue?