Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo descreve como configurar exibições materializadas no Databricks SQL, incluindo o controle de acesso nos resultados. A maior parte da configuração pode ser feita quando você cria a exibição materializada com a CREATE OR REPLACE MATERIALIZED VIEW instrução ou após a criação, com a ALTER TABLE instrução.
Descrever uma visão materializada
Para recuperar as colunas e os tipos de dados para uma exibição materializada, use a instrução DESCRIBE. Para recuperar as colunas, os tipos de dados e os metadados, como proprietário, local, hora de criação e status de atualização para uma exibição materializada, use DESCRIBE EXTENDED. Para enviar uma DESCRIBE instrução, use o editor sql na interface do usuário do Azure Databricks, na CLI do DATAbricks SQL ou na API do DATAbricks SQL.
Obter informações detalhadas sobre exibições materializadas com o Gerenciador de Catálogos
Como alternativa, você pode usar o Gerenciador de Catálogos para exibir detalhes sobre uma exibição materializada.
- Clique no
Catálogo na barra lateral.
- Na árvore do Gerenciador de Catálogos à esquerda, abra o catálogo e selecione o esquema em que a exibição materializada está localizada.
- Abra o item Tabelas no esquema selecionado e clique no modo de exibição materializado.
A partir daqui, você pode usar as guias relacionadas ao modo de exibição materializado para visualizar e editar informações sobre o modo de exibição materializado, incluindo:
- Atualizar status e cronograma
- Consulte os detalhes do pipeline para ver o histórico de atualizações e também logs detalhados de cada atualização. Clique em Ver detalhes de atualização na aba Visão geral para ver os detalhes do pipeline.
- O esquema de tabela
- Dados de exemplo (exigem uma computação ativa)
- Permissions
- Linhagem, incluindo tabelas e pipelines dos quais essa exibição materializada depende
- Insights sobre o uso
- Monitores que você criou para essa exibição materializada
Há algumas propriedades da tabela que não estão disponíveis no Gerenciador de Catálogos. Para essas propriedades ou para obter as informações programaticamente, você pode usar o comando DESCRIBE EXTENDED .
Atualizar a definição de uma exibição materializada
A consulta que especifica a exibição materializada é sua definição. Para alterar a definição da exibição materializada, edite a consulta ou crie uma nova consulta CREATE OR REPLACE MATERIALIZED VIEW com o mesmo nome de exibição e execute-a. Uma atualização completa é executada para atualizar a exibição materializada e outras atualizações usam a nova definição.
Controlar o acesso a exibições materializadas
As exibições materializadas dão suporte a controles de acesso avançado para dar suporte ao compartilhamento de dados, evitando expor dados potencialmente privados. Um proprietário de visão materializada ou um usuário com o MANAGE privilégio pode conceder SELECT privilégios a outros usuários. Os usuários com SELECT acesso à visão materializada não precisam de SELECT acesso às tabelas referenciadas pela visão 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 visão materializada.
Conceder privilégios a uma visão materializada
Para conceder acesso a uma visão materializada, use o GRANT comando:
GRANT <privilege_type> ON <mv_name> TO <principal>;
O "privilege_type" pode ser:
-
SELECT– o usuário podeSELECTa visão materializada. -
REFRESH– o usuário podeREFRESHa visão materializada. As atualizações são executadas usando as permissões do proprietário.
O exemplo a seguir cria uma exibição materializada e concede privilégios de seleção e atualização 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 visão materializada
Para revogar o acesso de uma exibição materializada, use a REVOKE instrução:
REVOKE privilege_type ON <mv_name> FROM principal;
Se SELECT os privilégios em uma tabela de origem forem revogados do proprietário da visão materializada ou de qualquer outro usuário a quem tenham sido concedidos MANAGE ou SELECT privilégios sobre a visão materializada, ou se a tabela de origem for descartada, o proprietário da visão materializada ou o usuário a quem foi concedido acesso ainda poderá consultar a visão materializada. No entanto, ocorre o seguinte comportamento:
- O proprietário da exibição materializada ou outras pessoas que perderam o acesso a uma exibição materializada não podem mais
REFRESHter essa exibição materializada e a exibição materializada ficará obsoleta. - Se automatizado com um agendamento, o próximo
REFRESHagendado falhará ou não será executado.
O exemplo a seguir revoga o SELECT privilégio de read_only_user:
REVOKE SELECT ON mv_name FROM read_only_user;
Alterar o proprietário de uma exibição materializada
Um usuário com MANAGE permissões em uma exibição materializada definida no Databricks SQL pode definir um novo proprietário por meio do Gerenciador de Catálogos. O novo proprietário pode ser ele mesmo ou uma entidade de serviço na qual ele tem a função de Usuário da Entidade de Serviço .
No workspace do Azure Databricks, clique no
Catálogo para abrir o Gerenciador de Catálogos.
Selecione a exibição materializada que você deseja atualizar.
Na barra lateral direita, em Sobre essa exibição materializada, localize o Proprietário e clique no
Observação
Se você receber uma mensagem informando para atualizar o proprietário alterando o usuário Executar como nas configurações de pipeline, a exibição materializada está definida em Pipelines Declarativos do Lakeflow Spark, não no Databricks SQL. A mensagem inclui um link para as configurações de pipeline, onde você pode alterar o usuário Executar como.
Selecione um novo proprietário para a exibição materializada.
Os proprietários automaticamente têm
MANAGEeSELECTprivilégios em visões materializadas que possuem. Se você estiver definindo um principal de serviço como o proprietário de uma exibição materializada que você possui e não tiverSELECTexplicitamente ouMANAGEprivilégios na exibição materializada, essa alteração fará com que você perca todo o acesso à exibição materializada. Nesse caso, você será solicitado a fornecer explicitamente esses privilégios.Selecione os privilégios Grant MANAGE e Grant SELECT para fornecê-los no Save.
Clique em Salvar para alterar o proprietário.
O proprietário da visão materializada é atualizado. Todas as atualizações futuras são executadas usando a identidade do novo proprietário.
Quando o proprietário perde privilégios sobre as tabelas de origem
Se você alterar o proprietário e o novo proprietário não tiver acesso às tabelas de origem (ou SELECT os privilégios forem revogados nas tabelas de origem subjacentes), os usuários ainda poderão consultar a exibição materializada. No entanto:
- Eles não podem
REFRESHter a exibição materializada. - A próxima atualização programada da visão materializada falhará.
Perder o acesso aos dados de origem impede atualizações, mas não invalida imediatamente a leitura da visão materializada existente.
Definir o canal do runtime
As exibições materializadas criadas usando os sql warehouses são atualizadas automaticamente usando um pipeline. Os pipelines usam o runtime no canal current por padrão. Confira as notas de versão do Lakeflow Spark Declarative Pipelines e o processo de atualização de versão para saber mais sobre o processo de lançamento.
O Databricks recomenda usar o canal current nas cargas de trabalho de produção. Os novos recursos são lançados pela primeira vez no canal preview. Você pode definir um pipeline para o canal de visualização para testar novos recursos especificando preview como uma propriedade de tabela. Você pode especificar essa propriedade ao criar a tabela ou depois que a tabela 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 ALTER TABLE instrução:
ALTER TABLE <table-name> SET TBLPROPERTIES ('pipelines.channel' = 'preview');