Configurar visualização materializada no Databricks SQL
Este artigo descreve como configurar a visualização materializada no Databricks SQL, incluindo o controle de acesso aos resultados. A maioria das configurações pode ser feita quando você cria a view materializada com a instrução CREATE OR REPLACE MATERIALIZED VIEW ou após a criação, com a instrução ALTER TABLE .
Descreva uma viewmaterializada
Para recuperar as colunas e os tipos de dados de uma view materializada, use a instrução DESCRIBE. Para recuperar colunas, tipos de dados e metadados, como proprietário, local, hora de criação e status refresh de uma view materializada, use DESCRIBE EXTENDED. Para enviar uma instrução DESCRIBE , use o editor SQL na interface do usuário Databricks , a CLIDatabricks SQL ou a APIDatabricks SQL.
Obtenha informações detalhadas sobre a visualização materializada com o Catalog Explorer
Como alternativa, você pode usar o Catalog Explorer para view detalhes sobre uma view materializada.
- Clique
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 selecionado e clique na view materializada.
A partir daqui, você pode usar a guia sob o nome view materializada para view e editar informações sobre a view materializada, incluindo:
- atualizar status e programar
- Veja os detalhes pipeline para ver o histórico de atualização, bem como logs detalhados para cada refresh. Clique em Ver detalhes refresh na tab Visão geral para ver os detalhes pipeline .
- O esquema da tabela
- Dados de amostra (requer um compute ativo)
- Permissões
- Linhagem, incluindo tabelas e pipeline dos quais esta view materializada depende
- percepções sobre o uso
- Monitores que você criou para esta viewmaterializada
Há algumas propriedades da tabela que não estão disponíveis no Catalog Explorer. Para essas propriedades, ou para obter as informações programaticamente, você pode usar o comando DESCRIBE EXTENDED .
Atualizar a definição de uma viewmaterializada
A consulta que especifica a view materializada é sua definição. Para alterar a definição da view materializada, edite a consulta ou crie uma nova consulta CREATE OR REPLACE MATERIALIZED VIEW com o mesmo nome de view e execute-a. Uma refresh completa é executada para atualizar a view materializada e atualizar posteriormente para usar a nova definição.
Controle o acesso à visualização materializada
A visualização materializada oferece suporte a controles de acesso avançados para dar suporte ao compartilhamento de dados, evitando a exposição de dados potencialmente privados. Um proprietário view materializada ou um usuário com o privilégio MANAGE pode conceder privilégios SELECT a outros usuários. 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.
Conceder privilégios a uma viewmaterializada
Para conceder acesso a uma view materializada, use a instruçãoGRANT:
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. atualização são executadas 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;
-- Grand 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 viewmaterializada
Para revogar o acesso de uma view materializada, use a instruçãoREVOKE:
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 recebeu privilégios MANAGE ou SELECT na view materializada, ou a tabela de origem é descartada, o proprietário view materializada ou o usuário com acesso concedido ainda consegue consultar a view materializada. Entretanto, ocorre o seguinte comportamento:
- O proprietário view materializada ou outros que perderam o acesso a uma view materializada não poderão mais
REFRESHessa view materializada, e a view materializada ficará obsoleta. - Se automatizado com um programador, o próximo
REFRESHagendado falha ou não é executado.
O exemplo a seguir revoga o privilégio SELECT de read_only_user:
REVOKE SELECT ON mv_name FROM read_only_user;
Definir o canal de tempo de execução
As visões materializadas criadas usando SQL Warehouse são atualizadas automaticamente por meio de um pipeline. O pipeline usa o tempo de execução no canal current por default. Consulte as notas sobre a versão e o processo de atualização de versão do pipeline declarativo doLakeFlow Spark para saber mais sobre o processo de lançamento.
A Databricks recomenda o uso do canal current para cargas de trabalho de produção. Novos recursos são primeiro liberados para o canal preview . Você pode definir um pipeline para o canal de pré-visualização para testar novos recursos especificando preview como uma propriedade da tabela. Você pode especificar essa propriedade ao criar a tabela ou após a criação da tabela, utilizando uma instrução ALTER.
O exemplo de código a seguir mostra como definir o canal para visualização em uma instrução CREATE:
CREATE OR REPLACE MATERIALIZED VIEW sales
TBLPROPERTIES ('pipelines.channel' = 'preview')
AS ...
Para alterar o canal após a criação, use a instrução ALTER TABLE :
ALTER TABLE <table-name> SET TBLPROPERTIES ('pipelines.channel' = 'preview');