Compartir a través de


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 permisos USE SCHEMA y CREATE 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 privilegios USE SCHEMA y CREATE 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í como USE CATALOG en el catálogo y USE 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 y USE 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ás USE CATALOG de en sus catálogos primarios y USE 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;