Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se describe cómo configurar vistas materializadas en Databricks SQL, incluido el control de acceso en los resultados. La mayoría de la configuración se puede realizar al crear la vista materializada con la CREATE OR REPLACE MATERIALIZED VIEW instrucción o después de la creación, con la ALTER TABLE instrucción .
Describir una vista materializada
Para recuperar las columnas y los tipos de datos de una vista materializada, use la instrucción DESCRIBE. Para recuperar las columnas, los tipos de datos y los metadatos, como el propietario, la ubicación, la hora de creación y el estado de actualización de una vista materializada, use DESCRIBE EXTENDED. Para enviar una DESCRIBE instrucción, use el editor de SQL en la interfaz de usuario de Azure Databricks, la CLI de SQL de Databricks o la API de SQL de Databricks.
Obtener información detallada sobre las vistas materializadas con el Explorador de catálogos
También puede usar el Explorador de Catálogos para ver detalles sobre una vista materializada.
- Haga clic en
Catálogo en la barra lateral.
- En el árbol del Explorador de catálogos de la izquierda, abra el catálogo y seleccione el esquema donde se encuentra la vista materializada.
- Abra el elemento Tablas en el esquema seleccionado y haga clic en la vista materializada.
Desde aquí, puede usar las pestañas bajo el nombre de la vista materializada para ver y editar información sobre la vista materializada, entre las que se incluyen:
- Estado y programación de actualización
- Consulte los detalles de la canalización para ver el historial de actualizaciones, así como los registros detallados de cada actualización. Haga clic en Ver detalles de actualización en la pestaña Información general para ver los detalles de la canalización.
- Esquema de tabla
- Datos de ejemplo (requiere un proceso activo)
- Permissions
- Lineaje, incluidas las tablas y las tuberías de las que depende esta vista materializada
- Información sobre el uso
- Los monitores que ha configurado para esta vista materializada
Hay algunas propiedades de la tabla que no están disponibles en el Explorador de catálogos. Para esas propiedades, o para obtener la información mediante programación, puede usar el comando DESCRIBE EXTENDED .
Actualización de la definición de una vista materializada
La consulta que especifica la vista materializada es su definición. Para cambiar la definición de la vista materializada, edite la consulta o cree una nueva consulta CREATE OR REPLACE MATERIALIZED VIEW con el mismo nombre de vista y, a continuación, ejecútelo. Se realiza una actualización completa para actualizar la vista materializada y las actualizaciones adicionales usan la nueva definición.
Controlar el acceso a vistas materializadas
Las vistas materializadas admiten controles de acceso enriquecidos para admitir el uso compartido de datos, a la vez que evitan exponer datos potencialmente privados. Un propietario de vista materializada o un usuario con el MANAGE privilegio puede conceder SELECT privilegios a otros usuarios. Los usuarios con SELECT acceso a la vista materializada no necesitan SELECT acceso a las tablas a las que hace referencia la vista materializada. Este control de acceso permite el uso compartido de datos al tiempo que controla el acceso a los datos subyacentes.
También puede modificar al propietario de una vista materializada.
Otorgar privilegios a una vista materializada
Para conceder acceso a una vista materializada, use la GRANT declaración :
GRANT <privilege_type> ON <mv_name> TO <principal>;
El privilege_type puede ser:
-
SELECT: el usuario puedeSELECTmaterializar la vista. -
REFRESH: el usuario puedeREFRESHmaterializar la vista. Las actualizaciones se ejecutan mediante los permisos del propietario.
En el ejemplo siguiente se crea una vista materializada y se conceden privilegios de selección y actualización a los usuarios:
CREATE MATERIALIZED VIEW mv_name AS SELECT * FROM source_table;
-- Grant read-only access:
GRANT SELECT ON mv_name TO read_only_user;
-- Grand read and refresh access:
GRANT SELECT ON mv_name TO refresh_user;
GRANT REFRESH ON mv_name TO refresh_user;
Revocar privilegios de una vista materializada
Para revocar el acceso desde una vista materializada, use la REVOKE instrucción :
REVOKE privilege_type ON <mv_name> FROM principal;
Cuando se revocan los privilegios SELECT en una tabla de origen al propietario de la vista materializada o a cualquier otro usuario al que se le haya concedido los privilegios MANAGE o SELECT en la vista materializada, o si se elimina la tabla de origen, el propietario de la vista materializada o el usuario a quien se ha concedido acceso todavía puede consultar la vista materializada. Sin embargo, se produce el siguiente comportamiento:
- El propietario de la vista materializada u otros usuarios que han perdido el acceso a una vista materializada ya no pueden acceder a esa vista materializada, y la vista materializada se quedará obsoleta.
- Si se automatiza con una programación, la siguiente tarea programada
REFRESHfalla o no se ejecuta.
En el ejemplo siguiente se revoca el privilegio SELECT de read_only_user:
REVOKE SELECT ON mv_name FROM read_only_user;
Cambiar el propietario de una vista materializada
Un usuario con MANAGE permisos en una vista materializada definida en Databricks SQL puede establecer un nuevo propietario a través del Explorador de catálogos. El nuevo propietario puede ser ellos mismos o una entidad de servicio en la que tienen el rol de usuario de la entidad de servicio.
En el área de trabajo de Azure Databricks, haga clic en
Catálogo para abrir el Explorador de catálogos.
Seleccione la vista materializada que desea actualizar.
En la barra lateral derecha, en Acerca de esta vista materializada, busque al Propietario y haga clic en el
Nota:
Si recibe un mensaje que le indica que actualice el propietario cambiando el usuario Ejecutar como en la configuración de la canalización, la vista materializada se define en las Canalizaciones Declarativas de Spark de Lakeflow, no en Databricks SQL. El mensaje incluye un vínculo a la configuración de canalización, donde puede cambiar la opción Ejecutar como usuario.
Seleccione un nuevo propietario para la vista materializada.
Los propietarios tienen automáticamente
MANAGEySELECTprivilegios en las vistas materializadas que poseen. Si está configurando un principal de servicio como propietario de una vista materializada que usted posee, y no tiene explícitamente privilegios deSELECToMANAGEsobre la vista materializada, este cambio provocaría que perdiera todo acceso a dicha vista materializada. En este caso, se le pedirá que proporcione explícitamente esos privilegios.Seleccione Conceder ADMINISTRAR y Conceder privilegios para aplicar estos en Guardar.
Haga clic en Guardar para cambiar el propietario.
El propietario de la vista materializada se actualiza. Todas las actualizaciones futuras se ejecutan con la identidad del nuevo propietario.
Cuando el propietario pierde privilegios en las tablas de origen
Si cambia el propietario y el nuevo propietario no tiene acceso a las tablas de origen (o si se revocan los privilegios en las tablas de origen subyacentes), los usuarios todavía pueden consultar la vista materializada. Sin embargo:
- No pueden
REFRESHmaterializar la vista. - Se producirá un error en la siguiente actualización programada de la vista materializada.
La pérdida de acceso a los datos de origen impide las actualizaciones de los datos, sin embargo no invalida inmediatamente la lectura de la vista materializada existente.
Establecer el canal en tiempo de ejecución
Las vistas materializadas creadas mediante SQL Warehouses se actualizan automáticamente mediante una canalización. Las canalizaciones usan el entorno de ejecución en el canal current de forma predeterminada. Consulte las notas de la versión y el proceso de actualización de las canalizaciones declarativas de Spark de Lakeflow para obtener información sobre el proceso de lanzamiento.
Databricks recomienda usar el canal current para cargas de trabajo de producción. Las nuevas características se publican por primera vez en el canal de preview. Puede establecer una canalización en el canal de versión preliminar para probar las nuevas características especificando preview como una propiedad de tabla. Puede especificar esta propiedad al crear la tabla o después de crear la tabla mediante una instrucción ALTER.
En el ejemplo de código siguiente se muestra cómo establecer el canal en versión preliminar en una instrucción CREATE:
CREATE OR REPLACE MATERIALIZED VIEW sales
TBLPROPERTIES ('pipelines.channel' = 'preview')
AS ...
Para cambiar el canal después de la creación, use la ALTER TABLE instrucción :
ALTER TABLE <table-name> SET TBLPROPERTIES ('pipelines.channel' = 'preview');