Partilhar via


O que é uma vista?

Uma vista é um objeto somente leitura que é o resultado de uma consulta de um ou mais tables e views em um metastore do Unity Catalog. Você pode criar uma vista a partir do tables e de outros views em vários esquemas e catalogs.

Este artigo descreve os views 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 views, consulte:

Views em Unity Catalog

No Unity Catalog, views ficam no terceiro nível do namespace de três níveis (catalog.schema.view):

Diagrama do modelo de objeto do Unity Catalog, focado na vista

Uma vista armazena o texto de uma consulta geralmente em relação a uma ou mais fontes de dados ou tables no metastore. No Azure Databricks, uma vista é equivalente a um Spark DataFrame persistido como um objeto num schema. Ao contrário de DataFrames, você pode consultar views de qualquer lugar no Azure Databricks, supondo que você tenha permissão para fazê-lo. A criação de uma vista não processa nem escreve quaisquer dados. Somente o texto da consulta é registrado no metastore no schemaassociado.

Nota

Views podem ter semânticas de execução diferentes se forem apoiadas por fontes de dados diferentes da Delta tables. O Databricks recomenda que você sempre defina views fazendo referência a fontes de dados usando um nome de table ou exibição. Definir views em relação a conjuntos de dados especificando um caminho ou URI pode levar a requisitos confusos de governança de dados.

Materializado views

Materializado views calcula os resultados incrementalmente e update retornados pela consulta definidora.

Você pode registrar views materializados no Unity Catalog usando o Databricks SQL ou defini-los como parte de um pipeline Delta Live Tables. Consulte Uso materializado views no Databricks SQL e O que é Delta Live Tables?.

views temporário

Uma vista temporária tem âmbito e persistência limitados e não está registada num schema ou catalog. O tempo de vida de uma exibição temporária difere com base no ambiente que você está usando:

  • Em cadernos e trabalhos, os views temporários estão definidos 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, os views temporários 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.

Dinâmica views

O views dinâmico pode ser usado para fornecer controle de acesso em nível de linha e column, além de mascaramento de dados. Consulte Criar uma vista dinâmica.

Views no metastore do Hive (legado)

Você pode definir views do Hive herdado em relação a qualquer fonte de dados e registrá-los no metastore herdado do Hive. A Databricks recomenda migrar todos os views herdados do Hive para o Unity Catalog. Consulte Views no metastore do Hive.

Visualização temporária global do Hive (legado)

Os views temporários globais são um recurso herdado do Azure Databricks que permite registar uma vista temporária que está disponível para todos os processos a serem executados num recurso de computação. Os views temporários globais são uma herança remanescente do Hive e do HDFS. A empresa Databricks desaconselha o uso de viewstemporários globais.

Requisitos para consultar views

Para ler views que estão registados no Unity Catalog, as permissões necessárias são determinadas pelo tipo de computação, pela versão do Databricks Runtime e pelo modo de acesso:

  • Para todos os recursos de computação, você deve ter SELECT na vista em si, USE CATALOG em seu catalogpai e USE SCHEMA em seu schemapai. Isso se aplica a todos os tipos de computação que suportam 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 todos os tables e views referenciados pela exibição, além de USE CATALOG em seus catalogs pai e USE 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 no tables e viewssubjacentes, 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 seus tables e viewssubjacentes. Lembre-se de que você pode incorrer em cobranças de computação sem servidor ao usar computação de usuário único para consultar views. Para obter mais informações, consulte o controlo de acesso granulado na computação de utilizador único .