¿Qué es una vista?
Una vista es un objeto de solo lectura que es el resultado de una consulta sobre una o varias tablas y vistas en un metastore del Unity Catalog. Puede crear una vista a partir de tablas y de otras vistas en varios esquemas y catálogos.
En este artículo se describen las vistas que puede crear en Azure Databricks y se proporciona una explicación de los permisos y el proceso necesarios para consultarlos.
Para obtener información sobre la creación de vistas, consulte:
Vistas en el catálogo de Unity
En el catálogo de Unity, las vistas se encuentran en el tercer nivel del espacio de nombres de tres niveles (catalog.schema.view
):
Una vista almacena el texto de una consulta normalmente en uno o varios orígenes de datos o tablas del metastore. En Azure Databricks, una vista es equivalente a un dataframe de Spark persistente como un objeto en un esquema. A diferencia de DataFrames, puede consultar vistas desde cualquier lugar de Azure Databricks, suponiendo que tenga permiso para hacerlo. La creación de una vista no procesa ni escribe datos. Solo el texto de la consulta se registra en el metastore en el esquema asociado.
Nota:
Las vistas pueden tener una semántica de ejecución diferente si están respaldadas por orígenes de datos distintos de las tablas Delta. Databricks recomienda definir siempre las vistas haciendo referencia a orígenes de datos mediante un nombre de tabla o vista. La definición de vistas en conjuntos de datos especificando una ruta de acceso o un URI puede dar lugar a requisitos confusos de gobernanza de datos.
Vistas materializadas
Las vistas materializadas calculan y actualizan los resultados devueltos por la consulta de definición.
Puede registrar vistas materializadas en el Catálogo de Unity mediante Databricks SQL o definirlas como parte de una canalización de Delta Live Tables. Consulte Uso de vistas materializadas en Databricks SQL y ¿Qué es Delta Live Tables?.
Vistas temporales
Una vista temporal tiene un ámbito y una persistencia limitados y no está registrado en un esquema o catálogo. La duración de una vista temporal difiere en función del entorno que use:
- En los cuadernos y trabajos, las vistas temporales tienen como ámbito el nivel del cuaderno o script. No se puede hacer referencia a ellos fuera del cuaderno en el que se declaran y ya no existen cuando el cuaderno se desasocia del clúster.
- En Databricks SQL, las vistas temporales tienen el ámbito del nivel de consulta. Varias instrucciones dentro de la misma consulta pueden usar la vista temporal, pero no se puede hacer referencia en otras consultas, incluso dentro del mismo panel.
Vistas dinámicas
Las vistas dinámicas se pueden usar para proporcionar control de acceso a nivel de fila y columna, además del enmascaramiento de datos. Consulte Creación de una vista dinámica.
Vistas en el metastore de Hive (heredado)
Puede definir vistas heredadas de Hive en cualquier origen de datos y registrarlas en el metastore de Hive heredado. Databricks recomienda migrar todas las vistas heredadas de Hive al catálogo de Unity. Consulte Vistas en metastore de Hive.
Vista temporal global de Hive (heredada)
Las vistas temporales globales son una característica heredada de Azure Databricks que permite registrar una vista temporal disponible para todas las cargas de trabajo que se ejecutan en un recurso de proceso. Las vistas temporales globales son una retención heredada de Hive y HDFS. Databricks recomienda usar vistas temporales globales.
Requisitos para consultar vistas
Para leer vistas registradas en el Catálogo de Unity, los permisos necesarios dependen del tipo de proceso, la versión de Databricks Runtime y el modo de acceso.
Nota:
Para todas las vistas, las comprobaciones de permisos se realizan en la propia vista y en las tablas y vistas subyacentes en las que se basa la vista. El usuario cuyos permisos se comprueban para las tablas y vistas subyacentes depende del cómputo. Para lo siguiente, Unity Catalog comprueba los permisos del propietario de la vista en los datos subyacentes:
- Almacenes de SQL.
- Cómputo compartido.
- Computación de un solo usuario en Databricks Runtime 15.4 LTS y versiones posteriores con el control de acceso detallado habilitado.
Para el proceso de usuario único en Databricks Runtime 15.3 y versiones anteriores, Unity Catalog comprueba los permisos del propietario de la vista y los permisos del usuario de la vista en los datos subyacentes.
Este comportamiento se refleja en los requisitos que se enumeran a continuación. En cualquier caso, el propietario de la vista debe mantener los permisos en los datos subyacentes para que los usuarios puedan acceder a la vista.
- Para todos los recursos de proceso, debes tener
SELECT
en la vista misma,USE CATALOG
en su catálogo principal yUSE SCHEMA
en su esquema principal. Esto se aplica a todos los tipos de proceso compatibles con Unity Catalog, incluidos los almacenes de SQL, los clústeres en modo de acceso compartido y los clústeres en modo de acceso de usuario único en Databricks Runtime 15.4 y versiones posteriores. - Para los clústeres en Databricks Runtime 15.3 y versiones posteriores que usan el modo de acceso de usuario único, también debe tener
SELECT
en todas las tablas y vistas a las que hace referencia la vista, además deUSE CATALOG
en sus catálogos primarios yUSE SCHEMA
en sus esquemas primarios.
Nota:
Si usa un clúster de usuario único en Databricks Runtime 15.4 LTS y versiones posteriores y quiere evitar el requisito de tener SELECT
en las tablas y vistas subyacentes, compruebe que el área de trabajo esté habilitada para el cómputo sin servidor.
El cómputo sin servidor controla el filtrado de datos, lo que permite el acceso a una vista sin necesidad de permisos en las tablas y vistas subyacentes. Tenga en cuenta que puede incurrir en cargos por computación sin servidor al utilizar computación de un solo usuario para consultar las vistas. Para obtener más información, consulta Control de acceso granular en el proceso de un solo usuario.