Pular para o conteúdo principal

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.

  1. Clique em Ícone de dados. Catálogo na barra lateral.
  2. Na árvore do Catalog Explorer à esquerda, abra o catálogo e selecione o esquema onde sua view materializada está localizada.
  3. 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:

SQL
GRANT <privilege_type> ON <mv_name> TO <principal>;

O privilege_type pode ser:

  • SELECT - o usuário pode SELECT a view materializada.
  • REFRESH - o usuário pode REFRESH a 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:

SQL
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:

SQL
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 REFRESH essa view materializada, e ela fica desatualizada.
  • Se automatizado com programar, a próxima execução REFRESH programada falhará ou não será executada.

O exemplo a seguir revoga o privilégio SELECT de read_only_user:

SQL
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 .

  1. No seu workspace do Databricks, clique em Ícone de dados. Catálogo para abrir o Catalog Explorer.

  2. Selecione a view materializada que você deseja atualizar.

  3. Na barra lateral direita, em Sobre esta view materializada , encontre o Proprietário e clique em Ícone de lápis. editar.

nota

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 .

  1. Selecione um novo proprietário para a view materializada.

    Os proprietários têm automaticamente privilégios MANAGE e SELECT nas 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égios SELECT ou MANAGE na 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) .

  2. 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 REFRESH a 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.