O que é uma exibição?
Uma exibição é um objeto somente leitura que é o resultado de uma consulta em uma ou mais tabelas e exibições em um metastore do Catálogo do Unity. Você pode criar uma exibição a partir de tabelas e de outras exibições em vários esquemas e catálogos.
Este artigo descreve as exibições que você pode criar no Azure Databricks e fornece uma explicação das permissões e da computação necessárias para consultá-las.
Para obter informações sobre como criar visões, consulte:
Exibições no Catálogo do Unity
No Catálogo do Unity, as exibições ficam no terceiro nível do namespace de três níveis (catalog.schema.view
):
Uma exibição armazena o texto de uma consulta normalmente em uma ou mais fontes de dados ou tabelas no metastore. No Azure Databricks, uma exibição é equivalente a um DataFrame do Spark persistido como um objeto em um esquema. Ao contrário do DataFrames, você pode consultar exibições de qualquer lugar no Azure Databricks, supondo que você tenha permissão para fazer isso. A criação de uma exibição não processa nem grava nenhum dado. Somente o texto da consulta é registrado no metastore no esquema associado.
Observação
As exibições poderão ter uma semântica de execução diferente se tiverem suporte de fontes de dados diferentes de tabelas Delta. O Databricks recomenda que você sempre defina as exibições referenciando as fontes de dados usando um nome de exibição ou de tabela. A definição de exibições em conjuntos de dados pela especificação de um caminho ou de um URI pode resultar em requisitos confusos de governança de dados.
Exibições materializadas
As exibições materializadas calculam e atualizam incrementalmente os resultados retornados pela consulta de definição.
Você pode registrar exibições materializadas no Catálogo do Unity usando o Databricks SQL ou defini-las como parte de um pipeline do Delta Live Tables. Consulte Usar exibições materializadas no Databricks SQL e O que é Delta Live Tables?.
Exibições temporárias
Uma exibição temporária tem escopo e persistência limitados e não é registrada em um esquema ou catálogo. O tempo de vida de uma exibição temporária difere com base no ambiente que você está usando:
- Em notebooks e trabalhos, as exibições temporárias têm como escopo o nível do notebook ou do script. Eles não podem ser referenciados fora do notebook no qual são declarados e não existem mais quando o notebook é desanexado do cluster.
- Em SQL do Databricks, as exibições temporárias têm como escopo o nível de consulta. Várias instruções na mesma consulta podem usar a exibição temporária, mas não podem ser referenciadas em outras consultas, mesmo no mesmo painel.
Exibições dinâmicas
Exibições dinâmicas podem ser usadas para fornecer controle de acesso em nível de linha e coluna, além de mascaramento de dados. Confira Criar uma exibição dinâmica.
Exibições no metastore do Hive (herdado)
Você pode definir exibições herdadas do Hive em qualquer fonte de dados e registrá-las no metastore herdado do Hive. O Databricks recomenda migrar todas as exibições herdadas do Hive para o Catálogo do Unity. Consulte Exibições no metastore do Hive.
Exibição temporária global do Hive (herdada)
As exibições temporárias globais são um recurso herdado do Azure Databricks que permite registrar uma exibição temporária disponível para todas as cargas de trabalho em execução em um recurso de computação. As exibições temporárias globais são um resquício herdado do Hive e do HDFS. O Databricks não recomenda o uso de exibições temporárias globais.
Requisitos para consultar exibições
Para ler exibições registradas no Catálogo do Unity, as permissões necessárias dependem do tipo de computação, da versão do Databricks Runtime e do modo de acesso.
Observação
Para todas as visualizações, as verificações de permissão são executadas na própria visualização e nas tabelas e visualizações subjacentes sobre as quais a visualização se baseia. O usuário cujas permissões são verificadas para tabelas e visões subjacentes depende do sistema de processamento. Para o seguinte, o Catálogo do Unity verifica as permissões do proprietário da visualização nos dados subjacentes:
- Armazéns SQL.
- Computação compartilhada.
- Processamento de usuário único no Databricks Runtime 15.4 LTS e versões posteriores com controle de acesso em nível granular habilitado.
Para computação de usuário único no Databricks Runtime 15.3 e versoes anteriores, o Catálogo Unity verifica as permissões do proprietário da visualização e as permissões do usuário da visualização nos dados subjacentes.
Esse comportamento é refletido nos requisitos listados abaixo. Em ambos os casos, o proprietário da exibição deve manter permissões nos dados subjacentes para que os usuários de exibição acessem a exibição.
- Para todos os recursos de computação, você deve ter
SELECT
na própria exibição,USE CATALOG
em seu catálogo pai eUSE SCHEMA
em seu esquema pai. Isso se aplica a todos os tipos de computação que dão suporte ao Unity Catalog, incluindo SQL Warehouses, clusters no modo de acesso compartilhado e clusters no modo de acesso de usuário único no Databricks Runtime 15.4 e superiores. - Para clusters no Databricks Runtime 15.3 e abaixo que usam o modo de acesso de usuário único, você também deve ter
SELECT
em todas as tabelas e exibições referenciadas pela exibição, além deUSE CATALOG
em seus catálogos pai eUSE SCHEMA
em seus esquemas pai.
Observação
Se você está usando um cluster de usuário no Databricks Runtime 15.4 LTS e superior e quer evitar o requisito de ter SELECT
nas tabelas e exibições subjacentes, verifique se seu workspace está habilitado para a computação sem servidor.
A computação sem servidor manipula a filtragem de dados, permitindo o acesso a uma visão sem necessidade de permissões para suas tabelas e visões subjacentes. Lembre-se de que você pode incorrer em encargos de computação sem servidor ao usar a computação de usuário único para consultar exibições. Para obter mais informações, consulte Controle de acesso refinado em computação de usuário único.