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.
Alterar o proprietário de uma viewmaterializada
Você pode alterar o proprietário de uma view materializada se for um administrador do metastore e um administrador workspace . A visualização materializada cria e usa automaticamente o pipeline declarativo LakeFlow para processar alterações. Use os seguintes passos para alterar o proprietário de uma visualização materializada:
- Abra a view materializada no Catalog Explorer e, na tab Visão geral , clique em Ver detalhes refresh . Isso abre os detalhes pipeline pipeline que gerencia a view materializada.
- Clique em Compartilhar . A caixa de diálogo Configurações de permissões é exibida. Você deve ser um administrador do metastore e workspace para editar essas configurações.
- Clique no x à direita do nome do proprietário atual para removê-lo.
- comece a digitar para filtrar a lista de usuários disponíveis. Clique no usuário que deve ser o novo proprietário do pipeline.
- Clique em Salvar para salvar suas alterações e fechar a caixa de diálogo.
Todos os ativos pipeline , incluindo a visualização materializada definida no pipeline, são de propriedade do novo proprietário pipeline . Todas as atualizações futuras serão executadas 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 os privilégios SELECT
forem revogados nas tabelas de origem subjacentes), os usuários ainda poderão consultar a view materializada. No entanto:
- Eles não podem
REFRESH
a view materializada. - A próxima refresh agendada da view materializada falhará.
Perder o acesso aos dados de origem impede atualizações, mas não invalida imediatamente a leitura da view materializada existente.
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 podeSELECT
a view materializada.REFRESH
- o usuário podeREFRESH
a 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
REFRESH
essa view materializada, e a view materializada ficará obsoleta. - Se automatizado com um programador, o próximo
REFRESH
agendado 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 visualizações materializadas criadas usando SQL Warehouse são atualizadas automaticamente usando um pipeline. O pipeline declarativo LakeFlow usa o tempo de execução no canal current
por default. Consulte Notas sobre a versão do pipeline declarativoLakeFlow e o processo de atualização da versão para saber mais sobre o processo de versão.
A Databricks recomenda usar o canal current
para cargas de trabalho de produção. Novos recursos são lançados primeiro no canal preview
. Você pode definir um pipeline para o canal de pipeline declarativo LakeFlow de visualização para testar um novo recurso especificando preview
como uma propriedade de tabela. Você pode especificar essa propriedade ao criar a tabela ou depois que ela for criada usando 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');