Criar e gerenciar views
Este artigo mostra como criar views no Unity Catalog. Consulte O que é uma vista?.
Permissões obrigatórias
Para criar uma vista:
- Você deve ter a permissão
USE CATALOG
no elemento pai catalog e as permissõesUSE SCHEMA
eCREATE TABLE
no elemento pai schema. Um administrador de metastore ou o proprietário do catalog pode grant-lhe todos esses privilégios. Um proprietário ou usuário schema com o privilégioMANAGE
pode grant vocêUSE SCHEMA
eCREATE TABLE
privilégios no schema. - Você deve ser capaz de ler o tables e o views referenciados na vista (
SELECT
no table ou vista, bem como oUSE CATALOG
no catalog e oUSE SCHEMA
no schema). - Se um modo de exibição fizer referência a tables 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 o tableslocal do espaço de trabalho . Por esse motivo, o Databricks recomenda a criação de views somente a partir de tables ou views 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
no modo de exibição em si,USE CATALOG
em seu catalogpai eUSE 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 utilizem o modo de acesso de usuário único, é necessário ter
SELECT
em todos os tables e views referenciados pela vista, além deUSE CATALOG
nos seus catalogs pai eUSE SCHEMA
nos 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
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, o que permite o acesso a uma visão sem exigir permissões nos seus elementos subjacentes tables e views. 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 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 o marcador de posição values:
-
<catalog-name>
: O nome do catalog. -
<schema-name>
: O nome do schema. -
<view-name>
: Um nome para a vista. -
<query>
: A consulta, columns, tables e views usados para compor a visualização.
CREATE VIEW <catalog-name>.<schema-name>.<view-name> AS
SELECT <query>;
Por exemplo, para criar uma vista chamada sales_redacted
a partir de columns no sales_raw
table:
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 list 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;