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 asUSE SCHEMA
permissões eCREATE TABLE
no esquema pai. Um administrador de metastore ou o proprietário do catálogo pode conceder todos esses privilégios. Um proprietário ou usuário do esquema com o privilégioMANAGE
pode conceder-lhe privilégios deUSE SCHEMA
eCREATE TABLE
no esquema. - Você deve ser capaz de ler as tabelas e exibições referenciadas na exibição (
SELECT
na tabela ou exibição, bem comoUSE CATALOG
no catálogo eUSE 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 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émUSE CATALOG
de seus catálogos pai eUSE 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 ou ter o privilégio de MANAGE
na vista para eliminar uma vista. Para soltar um modo de exibição, execute o seguinte comando SQL:
DROP VIEW IF EXISTS catalog_name.schema_name.view_name;