Crea y administra vistas lógicas

Las vistas lógicas en Bigtable te permiten guardar consultas en SQL como tablas virtuales a las que pueden hacer referencia otras consultas en SQL mientras los datos permanecen en la tabla de origen. El uso de estas vistas te ayuda a hacer lo siguiente:

  • Evita repetir la lógica de las consultas
  • Presentar datos en un formato relacional
  • Restringe el acceso de lectura a filas o columnas específicas

Puedes crear y administrar vistas lógicas con Google Cloud CLI o el editor de consultas de Bigtable Studio en la consola de Google Cloud . Puedes consultar vistas lógicas con el editor de consultas o cualquiera de las bibliotecas cliente de Bigtable que admiten SQL. Para obtener una comparación con las vistas materializadas continuas y las vistas autorizadas, consulta Tablas y vistas.

Acerca de las vistas lógicas

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 en 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.
  • Ejecuta la misma vista lógica en muchas tablas: Si modificas la cláusula FROM, puedes usar la misma vista para consultar cualquier tabla en 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 a los que deseas permitir que accedan los usuarios, sin darles acceso a toda la tabla.

Una vista lógica es un recurso a nivel de la instancia con 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 permisos para leer desde ella, incluso si no tienes permiso para leer desde 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 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 del servicio, consulta el Aviso de Privacidad de Google Cloud .

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, 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

Para ver y consultar vistas lógicas, sigue estos pasos:

  • 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
    • Describe: 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, sigue estos pasos:

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

Para otorgar acceso de lectura a una vista específica, sigue estos pasos:

Puedes otorgar permiso a un usuario para que lea 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 proyecto de 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 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 las 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. En la consola de Google Cloud , abre la lista de instancias de Bigtable.

    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. En el editor de consultas, escribe tu consulta. Si la consulta es un SQL válido, se muestra un mensaje Válido.

    2. Opcional: Para dar formato a tu sentencia en estilo SQL, haz clic en Dar formato.

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

    4. Cuando estés conforme con la consulta, haz clic en la flecha de expansión Guardar como y elige Guardar como vista lógica.

  5. En el cuadro de 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 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 de vista de la instancia.
  • QUERY: una consulta de GoogleSQL para Bigtable válida. La consulta no puede usar SELECT *.
  • INSTANCE: Es el ID de la instancia en la que se creará la vista lógica.

Opcional:

  • Para proteger la vista lógica de la eliminación, agrega la marca --deletion-protection al comando. Si no aplicas este parámetro de configuración, se puede borrar la vista lógica. También puedes permitir de forma explícita la eliminación de vistas lógicas 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 eliminaciones de una vista lógica en la consola deGoogle Cloud . Para habilitar o inhabilitar la protección contra eliminaciones, usa la Google Cloud CLI.

  1. En la consola de Google Cloud , abre la lista de instancias de Bigtable.

    Abrir la lista de instancias

  2. Elige una instancia de la lista.

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

  4. Opcional: Se enumeran 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 muestra los datos que se deben incluir en la vista, haz clic en Guardar como.

  9. 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 estás reemplazando la vista existente.

  10. Haz clic en Guardar.

gcloud

Para actualizar una vista lógica y ejecutar una consulta diferente o modificar la protección contra eliminaciones, usa el comando gcloud bigtable logical-views update. Debes especificar la consulta, la protección contra eliminaciones 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, sigue estos pasos:

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: 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 eliminaciones, no puedes 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

  1. En la consola de Google Cloud , abre la lista de instancias de Bigtable.

    Abrir la lista de instancias

  2. Elige una instancia de la lista.

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

  4. Opcional: Se enumeran 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 quieres 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: 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 de una instancia.

Console

  1. En la consola de Google Cloud , abre la lista de instancias de Bigtable.

    Abrir la lista de instancias

  2. Elige una instancia de la lista.

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

  4. Opcional: Se enumeran 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

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 la misma manera que consultas una tabla normal. Puedes usar vistas lógicas en la cláusula FROM de las declaraciones 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, haz lo siguiente:

SELECT *
FROM MyLogicalView
LIMIT 100;

Para obtener más información sobre cómo ejecutar consultas en SQL en Bigtable, consulta Consulta tus datos con SQL en el editor de consultas.

Limitaciones

  • No puedes crear vistas lógicas en tablas con un nivel de detalle de marca de tiempo de microsegundos.

¿Qué sigue?