Criar e gerir vistas

Este artigo mostra como criar exibições no Unity Catalog. Consulte O que é uma vista?.

Permissões obrigatórias

Para criar uma vista:

  • Você deve ter a USE CATALOG permissão no catálogo pai e as USE SCHEMA permissões e CREATE TABLE no esquema pai. Um administrador de metastore ou o proprietário do catálogo pode conceder todos esses privilégios. Um proprietário de esquema pode conceder-lhe USE SCHEMA privilégios no CREATE TABLE esquema.
  • Você deve ser capaz de ler as tabelas e exibições referenciadas na exibição (SELECT na tabela ou exibição, bem como USE CATALOG no catálogo e USE SCHEMA no esquema).
  • Se um modo de exibição fizer referência a tabelas no metastore do Hive local do espaço de trabalho, o modo de exibição poderá ser acessado somente do espaço de trabalho que contém as tabelas locais do espaço de trabalho. Por esse motivo, o Databricks recomenda a criação de exibições somente a partir de tabelas ou exibições que estão no metastore do Unity Catalog.
  • Não é possível criar um modo de exibição que faça referência a um modo de exibição que foi compartilhado com você usando o Compartilhamento Delta. Consulte O que é Delta Sharing?.

Para ler uma exibição, 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 exibição em si, USE CATALOG em seu catálogo pai e USE 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 USE CATALOG de seus catálogos pai e USE SCHEMA em seus esquemas pai.

Nota

Se você estiver usando um cluster de usuário único 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. 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 exibições. Para obter mais informações, consulte Controle de acesso refinado na computação de usuário único.

Criar uma vista

Para criar um modo de exibição, execute o seguinte comando SQL. Os itens entre parênteses são opcionais. Substitua os valores de espaço reservado:

  • <catalog-name>: O nome do catálogo.
  • <schema-name>: O nome do esquema.
  • <view-name>: Um nome para a vista.
  • <query>: A consulta, as colunas, as tabelas e os modos de exibição usados para compor o modo de exibição.
CREATE VIEW <catalog-name>.<schema-name>.<view-name> AS
SELECT <query>;

Por exemplo, para criar um modo de exibição nomeado sales_redacted a partir de colunas na sales_raw tabela:

CREATE VIEW sales_metastore.sales.sales_redacted AS
SELECT
  user_id,
  email,
  country,
  product,
  total
FROM sales_metastore.sales.sales_raw;

Você também pode criar uma exibição usando o provedor Databricks Terraform e databricks_table. Você pode recuperar uma lista de nomes completos de exibição usando databricks_views.

Soltar uma vista

Tem de ser o proprietário da vista para largar uma vista. Para soltar um modo de exibição, execute o seguinte comando SQL:

DROP VIEW IF EXISTS catalog_name.schema_name.view_name;