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:
- Como fuente de datos para una herramienta de visualización, como Looker Studio.
- Como medio para compartir datos con los suscriptores de Compartir de BigQuery (antes Analytics Hub).
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:
- La opción Editar consulta de la Google Cloud consola
- El comando
bq update --view
de la herramienta de línea de comandos bq - Las bibliotecas de cliente de BigQuery
- Los métodos de la API update o patch.
- 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.
- Para consultar los precios generales de las consultas, consulta la página Precios de los recursos de computación bajo demanda.
- Para obtener información sobre los precios asociados a las vistas materializadas, consulta la página Precios de las vistas materializadas.
Seguridad de las vistas lógicas
Para controlar el acceso a las vistas en BigQuery, consulta Vistas autorizadas.
Siguientes pasos
- Para obtener información sobre cómo crear vistas, consulte Crear vistas.
- Para obtener información sobre cómo crear una vista autorizada, consulta el artículo Crear vistas autorizadas.
- Para obtener información sobre cómo obtener metadatos de vistas, consulta Obtener información sobre las vistas.
- Para obtener más información sobre cómo gestionar vistas, consulta Gestionar vistas.