Configurar visualizações materializadas autônomas
Configure views materializadas autônomas, incluindo controle de acesso aos resultados, quando você criar a view materializada com CREATE OR REPLACE MATERIALIZED VIEW ou após a criação com ALTER TABLE.
Descrever uma view materializada
Para recuperar as colunas e os tipos de dados para uma view materializada, use a instrução DESCRIBE. Para recuperar as colunas, tipos de dados e metadados, como proprietário, local, hora de criação e status de refresh de uma view materializada, use DESCRIBE EXTENDED. Para enviar uma instrução DESCRIBE, use o editor de SQL na UI do Databricks, a CLI do Databricks SQL ou a API do Databricks SQL.
Obtenha informações detalhadas sobre views materializadas com o Explorador de Catálogos
Você também pode usar o Explorador de Catálogos para ver detalhes sobre uma view materializada.
- Clique em
Catálogo na barra lateral.
- Na árvore do Catalog Explorer à esquerda, abra o catálogo e selecione o esquema onde sua view materializada está localizada.
- Abra o item Tabelas no esquema que você selecionou e clique na view materializada.
A partir daqui, você pode usar as tab abaixo do nome da view materializada para visualizar e editar informações sobre a view materializada, incluindo:
- Status de refresh e programar
- Consulte os detalhes do pipeline para ver a história de refreshes e logs detalhados para cada refresh. Clique em Ver detalhes de refresh na tab Visão geral para ver os detalhes do pipeline.
- O esquema da tabela
- Dados de exemplo (requer um compute ativo)
- Permissões
- Linhagem, incluindo tabelas e pipelines dos quais esta view materializada depende
- Percepções de uso
- Monitores que você criou para esta view materializada
Existem algumas propriedades da tabela que não estão disponíveis no Explorador de Catálogos. Para essas propriedades, ou para obter as informações programaticamente, você pode usar o comando DESCRIBE EXTENDED.
Atualize a definição de uma view materializada
A query que especifica a view materializada é sua definição. Para alterar a definição da visualização materializada, edite a query ou crie uma nova query CREATE OR REPLACE MATERIALIZED VIEW com o mesmo nome de visualização e execução. Uma refresh completa é realizada para atualizar a view materializada, e as refresh subsequentes usarão a nova definição.
Controlar o acesso a visualizações materializadas
As visualizações materializadas suportam controles de acesso avançados para suportar o compartilhamento de dados enquanto evitam a exposição de dados potencialmente privados. O proprietário de uma view materializada ou um usuário com o privilégio MANAGE pode conceder privilégios SELECT a outros usuários. Os usuários com acesso SELECT à view materializada não precisam de acesso SELECT às tabelas referenciadas pela view materializada. Esse controle de acesso permite o compartilhamento de dados enquanto controla o acesso aos dados subjacentes.
Você também pode modificar o proprietário de uma view materializada.
Conceder privilégios a uma view materializada
Para conceder acesso a uma view materializada, use o comando GRANT:
GRANT <privilege_type> ON <mv_name> TO <principal>;
O privilege_type pode ser:
SELECT- o usuário podeSELECTa view materializada.REFRESH- o usuário podeREFRESHa view materializada. Os refresh são executados usando as permissões do proprietário.
O exemplo a seguir cria uma view materializada e concede privilégios de seleção e refresh aos usuários:
CREATE MATERIALIZED VIEW mv_name AS SELECT * FROM source_table;
-- Grant read-only access:
GRANT SELECT ON mv_name TO read_only_user;
-- Grant read and refresh access:
GRANT SELECT ON mv_name TO refresh_user;
GRANT REFRESH ON mv_name TO refresh_user;
Revogar privilégios de uma view materializada
Para revogar o acesso de uma materialized view, use a declaração REVOKE:
REVOKE privilege_type ON <mv_name> FROM principal;
Quando os privilégios SELECT em uma tabela de origem são revogados do proprietário da view materializada ou de qualquer outro usuário que tenha recebido os privilégios MANAGE ou SELECT na view materializada, ou a tabela de origem é descartada, o proprietário da view materializada ou o usuário com acesso concedido ainda pode executar query na view materializada. No entanto, o seguinte comportamento ocorre:
- O proprietário da view materializada ou outras pessoas que perderam acesso a uma view materializada não podem mais
REFRESHessa view materializada, e ela fica desatualizada. - Se automatizado com programar, a próxima execução
REFRESHprogramada falhará ou não será executada.
O exemplo a seguir revoga o privilégio SELECT de read_only_user:
REVOKE SELECT ON mv_name FROM read_only_user;
Alterar o proprietário de uma view materializada
Um usuário com permissões de MANAGE em uma view materializada autônoma pode definir um novo proprietário por meio do Explorador de Catálogos. O novo proprietário pode ser eles mesmos ou uma Service Principal na qual eles têm a função de Usuário Service Principal .
-
No seu workspace do Databricks, clique em
Catálogo para abrir o Catalog Explorer.
-
Selecione a view materializada que você deseja atualizar.
-
Na barra lateral direita, em Sobre esta view materializada , encontre o Proprietário e clique em
editar.
Se você receber uma mensagem que instrui a atualizar o proprietário alterando o usuário execução como nas configurações de pipeline, a view materializada será definida em um pipeline Lakeflow, não como uma tabela autônoma. A mensagem inclui um link para as configurações de pipeline, onde você pode alterar o usuário execução .
-
Selecione um novo proprietário para a view materializada.
Os proprietários têm automaticamente privilégios
MANAGEeSELECTnas visualizações materializadas que possuem. Se você estiver definindo um Service Principal como proprietário de uma view materializada que você possui, e você não tiver explicitamente os privilégiosSELECTouMANAGEna view materializada, essa alteração fará com que você perca todo o acesso à view materializada. Nesse caso, você será solicitado a fornecer explicitamente esses privilégios.Selecione os privilégios Grant MANAGE (Conceder GERENCIAR) e Grant SELECT (Conceder SELECIONAR) para concedê-los ao clicar em Save (Salvar) .
-
Clique em Salvar para alterar o proprietário.
O proprietário da view materializada é atualizado. Todas as refresh futuras são execução usando a identidade do novo proprietário.
Quando o proprietário perde privilégios para tabelas de origem
Se você alterar o proprietário e o novo proprietário não tiver acesso às tabelas de origem (ou se os privilégios do SELECT forem revogados nas tabelas de origem subjacentes), os usuários ainda poderão executar query a view materializada. No entanto:
- Eles não podem
REFRESHa view materializada. - A próxima refresh programada da view materializada falha.
A perda do acesso aos dados de origem impede as atualizações, mas não impede imediatamente a leitura da view materializada existente.
Versão do Runtime
As views materializadas sempre estão em execução na versão de Runtime mais recente do Databricks SQL. A propriedade de tabela pipelines.channel, usada anteriormente para selecionar um canal de runtime preview ou current, não é mais suportada e não tem efeito. Se uma definição existente incluir esta propriedade, ela será ignorada com segurança e você não precisará removê-la.