O que é uma vista?
Uma vista é um objeto somente leitura que é o resultado de uma consulta sobre uma ou mais tabelas e vistas num metastore do Unity Catalog. 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 os modos de exibição que você pode criar no Azure Databricks e fornece uma explicação das permissões e computação necessárias para consultá-los.
Para obter informações sobre como criar vistas, consulte:
Visualizações no Catálogo Unity
No Unity Catalog, as visualizações ficam no terceiro nível do namespace de três níveis (catalog.schema.view
):
Uma vista armazena o texto de uma consulta geralmente contra uma ou mais origens de dados ou tabelas da metastore. No Azure Databricks, uma exibição é equivalente a um Spark DataFrame persistido como um objeto em um esquema. Ao contrário dos DataFrames, podes consultar visualizações de qualquer lugar no Azure Databricks, desde que tenhas permissão para o fazer. A criação de uma vista não processa nem escreve quaisquer dados. Somente o texto da consulta é registrado no metastore no esquema associado.
Nota
As exibições podem ter semânticas de execução diferentes se forem apoiadas por fontes de dados diferentes de tabelas Delta. O Databricks recomenda que se definam sempre vistas referindo-se a fontes de dados usando um nome de tabela ou vista. Definir exibições em relação a conjuntos de dados especificando um caminho ou URI pode levar a requisitos confusos de governança de dados.
Visões materializadas
As visualizações materializadas calculam e atualizam incrementalmente os resultados retornados pela consulta definidora.
Você pode registrar visualizações materializadas no Unity Catalog usando Databricks SQL ou defini-las como parte de um pipeline Delta Live Tables. Consulte Usar vistas materializadas no Databricks SQL e O que é Delta Live Tables?.
Vistas temporárias
Uma exibição temporária tem escopo e persistência limitados e não está 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 cadernos e trabalhos, os modos de exibição temporários estão limitados ao nível de caderno ou script. Eles não podem ser referenciados fora do bloco de anotações no qual são declarados e não existem mais quando o bloco de anotações se desprende do cluster.
- No Databricks SQL, as exibições temporárias têm como escopo o nível de consulta. Várias instruções dentro da mesma consulta podem usar a exibição temporária, mas ela não pode ser referenciada em outras consultas, mesmo dentro do mesmo painel.
Vistas dinâmicas
As 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. Consulte Criar uma vista dinâmica.
Visualizações no metastore do Hive (legado)
Você pode definir visões herdadas do Hive sobre qualquer fonte de dados e registá-las no metastore do Hive legado. O Databricks recomenda migrar todas as visualizações herdadas do Hive para o Unity Catalog. Consulte Visualizações no metastore do Hive.
Visualização temporária global do Hive (legado)
As exibições temp globais são um recurso herdado do Azure Databricks que permite registrar uma exibição temporária que está disponível para todas as cargas de trabalho em execução em um recurso de computação. As visualizações temporárias globais são um legado do Hive e do HDFS. O Databricks recomenda não usar visualizações temporárias globais.
Requisitos para consulta de visões
Para ler as exibições registradas no Unity Catalog, as permissões necessárias dependem do tipo de computação, da versão do Databricks Runtime e do modo de acesso:
- 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 suportam o Unity Catalog, incluindo armazéns SQL, clusters no modo de acesso compartilhado e clusters no modo de acesso de usuário único no Databricks Runtime 15.4 e superior. - 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.
Nota
Se você estiver usando um único cluster de usuário no Databricks Runtime 15.4 LTS e superior e quiser evitar a necessidade de ter SELECT
nas tabelas e exibições subjacentes, verifique se seu espaço de trabalho está habilitado para computação sem servidor.
A computação sem servidor lida com a filtragem de dados, que permite o acesso a uma exibição sem exigir permissões em suas tabelas e exibições subjacentes. Lembra-te de que podes incorrer em custos de computação sem servidor ao usar computação de utilizador único para consultar vistas. Para obter mais informações, consulte o controlo de acesso granulado na computação de utilizador único .