Introducción a las vistas lógicas

En este documento se ofrece una descripción general de la compatibilidad de BigQuery con las vistas lógicas.

Información general

Una vista es una tabla virtual definida por una consulta de SQL. El tipo de vista predeterminado de BigQuery es la vista lógica. Los resultados de la consulta solo contienen los datos de las tablas y los campos especificados en la consulta que define la vista.

La consulta que define una vista se ejecuta cada vez que se consulta la vista.

Tipos de vistas

Aunque las vistas lógicas son el tipo de vista predeterminado, si consultas con frecuencia una vista grande o computacionalmente costosa, deberías crear una vista materializada, que es una vista precalculada que almacena en caché periódicamente los resultados de una consulta para aumentar el rendimiento y la eficiencia.

Sin embargo, a menudo puedes mejorar el rendimiento de una vista lógica sin necesidad de crear una vista materializada consultando solo un subconjunto de tus datos o usando otras técnicas.

También puede crear una vista autorizada para compartir un subconjunto de datos de un conjunto de datos de origen con una vista de un conjunto de datos secundario. Después, puedes compartir esta vista con usuarios y grupos específicos (principales) que pueden ver los datos que compartes y ejecutar consultas en ellos, pero que no pueden acceder directamente al conjunto de datos de origen.

Puedes crear una vista autorizada para una vista lógica o materializada. Una vista autorizada de una vista materializada se denomina vista materializada autorizada.

Use cases

Estos son algunos de los usos más habituales de las vistas:

  • Asigna un nombre fácil de reutilizar a una consulta compleja o a un conjunto de datos limitado para que otros usuarios puedan autorizar el acceso. Una vez que hayas creado una vista, los usuarios podrán consultarla como si fuera una tabla.
  • Abstrae y almacena la lógica de cálculo y unión en un objeto común para simplificar el uso de las consultas.
  • Proporcionar acceso a un subconjunto de datos y lógica de cálculo sin proporcionar acceso a las tablas base.
  • Optimiza las consultas con un coste de computación elevado y resultados de conjuntos de datos pequeños para varios casos prácticos.

También puedes usar vistas en otros contextos:

Comparación con las vistas materializadas

Las vistas lógicas son virtuales y proporcionan una referencia reutilizable a un conjunto de datos, pero no almacenan ningún dato físicamente. Las vistas materializadas se definen mediante SQL, como una vista lógica, pero almacenan físicamente los datos que BigQuery usa para mejorar el rendimiento. Para obtener más información sobre las comparaciones, consulta las funciones de las vistas materializadas.

Limitaciones de las vistas lógicas

Las vistas de BigQuery están sujetas a las siguientes limitaciones:

  • Las vistas son de solo lectura. Por ejemplo, no puedes ejecutar consultas que inserten, actualicen o eliminen datos.
  • El conjunto de datos que contiene la vista y el conjunto de datos que contiene las tablas a las que hace referencia la vista deben estar en la misma ubicación.
  • Una referencia dentro de una vista debe estar cualificada con un conjunto de datos. El conjunto de datos predeterminado no afecta al cuerpo de una vista.
  • No puedes usar el método TableDataList de la API JSON para obtener datos de una vista. Para obtener más información, consulta Tabledata: list.
  • No puedes combinar consultas de GoogleSQL y de SQL antiguo cuando usas vistas. Una consulta de GoogleSQL no puede hacer referencia a una vista definida con sintaxis de Legacy SQL.
  • No puede hacer referencia a parámetros de consulta en las vistas.
  • Los esquemas de las tablas subyacentes se almacenan con la vista cuando se crea. Si se añaden, eliminan o modifican columnas después de crear la vista, esta no se actualizará automáticamente y el esquema registrado seguirá siendo incorrecto hasta que se cambie la definición SQL de la vista o se vuelva a crear. Aunque el esquema notificado puede ser impreciso, todas las consultas enviadas producen resultados precisos.
  • No puedes actualizar automáticamente una vista de SQL antiguo a la sintaxis de GoogleSQL. Para modificar la consulta utilizada para definir una vista, puede usar lo siguiente:
  • No puedes incluir una función definida por el usuario temporal ni una tabla temporal en la consulta SQL que define una vista.
  • No puedes hacer referencia a una vista en una consulta de tabla con comodín.

Cuotas de vistas lógicas

Para obtener información sobre las cuotas y los límites que se aplican a las vistas, consulta Límites de las vistas.

Las consultas de SQL que se usan para definir vistas también están sujetas a las cuotas de las tareas de consulta.

Precios de las vistas lógicas

BigQuery usa vistas lógicas de forma predeterminada, no vistas materializadas. Como las vistas no se materializan de forma predeterminada, la consulta que define la vista se ejecuta cada vez que se consulta la vista. Las consultas se facturan en función de la cantidad total de datos de todos los campos de la tabla a los que se hace referencia directa o indirectamente en la consulta de nivel superior.

Seguridad de las vistas lógicas

Para controlar el acceso a las vistas en BigQuery, consulta Vistas autorizadas.

Siguientes pasos