Creación y administración de vistas
En este artículo se muestra cómo crear vistas en el catálogo de Unity. Vea ¿Qué es una vista?.
Permisos necesarios
Para crear una vista:
- Debe tener el permiso
USE CATALOG
sobre el catálogo principal y los permisosUSE SCHEMA
yCREATE TABLE
sobre el esquema principal. Un administrador de metastore o el propietario del catálogo puede concederle todos estos privilegios. Un propietario de esquema puede concederle privilegiosUSE SCHEMA
yCREATE TABLE
en el esquema. - Debe tener la capacidad de leer las tablas y vistas a las que se hace referencia en la vista (
SELECT
en la tabla o vista, así comoUSE CATALOG
en el catálogo yUSE SCHEMA
en el esquema). - Si una vista hace referencia a tablas en el metastore de Hive local del área de trabajo, solo se podrá acceder a la vista desde el área de trabajo que contenga las tablas locales del área de trabajo. Por este motivo, Databricks recomienda la creación de vistas solo desde tablas o vistas que se encuentren en el metastore de Unity Catalog.
- No puede crear una vista que haga referencia a una vista que se haya compartido con usted mediante Delta Sharing. Consulte ¿Qué es Delta Sharing?
Para leer una vista, los permisos necesarios dependen del tipo de cálculo, versión de Databricks Runtime y del modo de acceso:
- Para todos los recursos de proceso, debe tener
SELECT
en la propia vista,USE CATALOG
en su catálogo primario yUSE SCHEMA
en su esquema primario. Esto se aplica a todos los tipos de proceso que admiten el catálogo de Unity, incluidos almacenes de SQL, clústeres en modo de acceso compartido y 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ásUSE CATALOG
de 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 proceso sin servidor.
El proceso sin servidor controla el filtrado de datos, lo que permite el acceso a una vista sin necesidad de permisos en sus tablas y vistas subyacentes. Tenga en cuenta que puede incurrir en cargos de proceso sin servidor al usar un solo proceso de usuario para consultar las vistas. Para obtener más información, consulte Control de acceso específico sobre el proceso de un solo usuario.
Creación de una vista
Para crear una vista, ejecute el siguiente comando SQL. Los elementos entre corchetes son opcionales. Reemplace los valores de marcador de posición:
<catalog-name>
: El nombre del catálogo.<schema-name>
: nombre del esquema.<view-name>
: nombre de la vista.<query>
: la consulta, las columnas, las tablas y las vistas que se usan para componer la vista.
CREATE VIEW <catalog-name>.<schema-name>.<view-name> AS
SELECT <query>;
Por ejemplo, para crear una vista llamada sales_redacted
a partir de las columnas de la tabla sales_raw
:
CREATE VIEW sales_metastore.sales.sales_redacted AS
SELECT
user_id,
email,
country,
product,
total
FROM sales_metastore.sales.sales_raw;
También puede crear una vista mediante el proveedor Terraform de Databricks y databricks_table. Puede recuperar una lista de nombres completos de vista mediante databricks_views.
Quitar una vista
Debe ser el propietario de la vista para quitar una vista. Para colocar una vista, ejecute el siguiente comando SQL:
DROP VIEW IF EXISTS catalog_name.schema_name.view_name;