Configurar exibições materializadas autônomas

Configure visualizações materializadas independentes, incluindo o controle de acesso aos resultados, ao criar a visualização materializada com CREATE OR REPLACE MATERIALIZED VIEW, ou após a criação com ALTER TABLE.

Descrever uma visão materializada

Para recuperar as colunas e os tipos de dados de 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.

  1. Clique no ícone Dados.Catálogo na barra lateral.
  2. Na árvore do Gerenciador de Catálogos à esquerda, abra o catálogo e selecione o esquema em que a exibição materializada está localizada.
  3. 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 os logs detalhados para 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 exibição materializado ou um usuário com o privilégio MANAGE pode conceder privilégios SELECT a outros usuários. Os usuários com acesso SELECT à exibição materializada não precisam de acesso SELECT às tabelas referenciadas pela exibiçã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 pode SELECT a exibição materializada.
  • REFRESH – o usuário pode REFRESH a exibiçã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;

-- 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 exibição materializada

Para revogar o acesso de uma exibição materializada, use a instrução REVOKE:

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 REFRESH ter essa exibição materializada e a exibição materializada fica obsoleta.
  • Se automatizado com um agendamento, o próximo REFRESH agendado 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;

Mudar o proprietário de uma exibição materializada

Um usuário com permissões de MANAGE em uma exibição materializada autônoma pode definir um novo proprietário por meio do Explorador de Catálogos. O novo proprietário pode ser ele mesmo ou uma entidade de serviço na qual ele tem a função Usuário da Entidade de Serviço.

  1. No workspace do Azure Databricks, clique no ícone Dados.Catálogo para abrir o Gerenciador de Catálogos.

  2. Selecione a exibição materializada que você deseja atualizar.

  3. Na barra lateral direita, em Sobre essa exibição materializada, localize o Proprietário e clique no Ícone de lápis..

    Observação

    Se você receber uma mensagem informando que você deve atualizar o proprietário alterando o usuário Executar como nas configurações do pipeline, isso significa que a exibição materializada está definida em um pipeline do Lakeflow , e 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 Executar como.

  4. Selecione um novo proprietário para a exibição materializada.

    Os proprietários automaticamente têm privilégios MANAGE e SELECT em visões materializadas que possuem. Se estiver definindo um principal de serviço como o proprietário de uma exibição materializada que você possui e não tiver SELECT explicitamente ou MANAGE privilé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.

  5. 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 se os privilégios SELECT forem revogados nas tabelas de origem subjacentes), os usuários ainda poderão consultar a exibição materializada. No entanto:

  • Eles não podem REFRESH a exibição materializada.
  • A próxima atualização programada da exibiçã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.

Versão do runtime

Visualizações materializadas sempre rodam na versão mais recente de execução SQL do Databricks. A propriedade de tabela pipelines.channel, anteriormente usada para selecionar um canal de runtime preview ou current, não é mais suportada e não tem efeito. Se uma definição existente incluir essa propriedade, ela é ignorada com segurança e você não precisa removê-la.