É possível criar e gerenciar as visualizações no AWS Glue Data Catalog, comumente conhecidas como visualizações do AWS Glue Data Catalog. Essas visualizações são úteis por serem compatíveis com diversos mecanismos de consulta SQL, permitindo o acesso à mesma visualização por diferentes serviços da AWS, como o Amazon Athena, o Amazon Redshift e o AWS Glue. É possível usar visualizações baseadas em Apache Iceberg, Apache Hudi e Delta Lake.
Ao criar uma visualização no Catálogo de Dados, você pode usar concessões de recursos e controles de acesso baseados em etiquetas no AWS Lake Formation para conceder acesso à visualização. Com esse método de controle de acesso, não é necessário configurar permissões de acesso adicionais para as tabelas referenciadas na criação da visualização. Esse método de concessão de permissões é chamado de semântica definidora, e essas exibições são chamadas de vizualizações definidoras. Para obter mais informações sobre controle de acesso no AWS Lake Formation, consulte a página Granting and revoking permissions on Data Catalog resources no Guia do desenvolvedor do AWS Lake Formation.
As vizualizações do Data Catalog são úteis para os seguintes casos de uso:
-
Controle de acesso granular: é possível criar uma visualização que restringe o acesso aos dados com base nas permissões necessárias ao usuário. Por exemplo, você pode usar visualizações no Catálogo de Dados para impedir que colaboradores externos ao departamento de Recursos Humanos acessem informações de identificação pessoal (PII).
-
Definição completa da visualização: ao aplicar filtros em sua visualização no Catálogo de Dados, você garante que os registros de dados disponíveis estejam sempre completos.
-
Segurança aprimorada: a obrigatoriedade de uma definição de consulta completa durante a criação da visualização contribui para reduzir a suscetibilidade das visualizações do Catálogo de Dados a comandos SQL de agentes mal-intencionados.
-
Compartilhamento de dados simplificado: compartilhe dados com outras contas da AWS sem a necessidade de movimentação dos dados, usando o compartilhamento de dados entre contas no AWS Lake Formation.
Criação de uma visualização do Catálogo de Dados
Você pode criar visualizações do Catálogo de Dados usando a AWS CLI ou scripts de ETL do AWS Glue desenvolvidos com Spark SQL. A criação de visualizações do Catálogo de Dados segue uma sintaxe que inclui a especificação do tipo de visualização como MULTI DIALECT
e do predicado SECURITY
como DEFINER
, o que configura uma visualização do tipo “definer”.
Exemplo de instrução SQL para a criação de uma visualização do Catálogo de Dados:
CREATE PROTECTED MULTI DIALECT VIEW database_name.catalog_view SECURITY DEFINER
AS SELECT order_date, sum(totalprice) AS price
FROM source_table
GROUP BY order_date;
Após criar uma visualização do Catálogo de Dados, é possível usar um perfil do IAM com a permissão “SELECT” do AWS Lake Formation sobre a visualização para consultá-la, usando serviços como o Amazon Athena, o Amazon Redshift ou trabalhos de ETL do AWS Glue. Não é necessário conceder acesso às tabelas subjacentes referenciadas na visualização.
Para obter mais informações sobre a criação e a configuração de visualizações do Catálogo de Dados, consulte a página Building AWS Glue Data Catalog views no Guia do desenvolvedor do AWS Lake Formation.
Operações compatíveis para visualizações
Os fragmentos de comandos apresentados a seguir mostram como é possível trabalhar com as visualizações do Catálogo de Dados de diferentes formas:
CREATE VIEW
Cria uma visualização do Catálogo de Dados. A seguir, um exemplo que demonstra a criação da visualização usando uma tabela existente:
CREATE PROTECTED MULTI DIALECT VIEW catalog_view
SECURITY DEFINER AS SELECT * FROM my_catalog.my_database.source_table
ALTER VIEW
Sintaxe disponível:
ALTER VIEW view_name [FORCE] ADD DIALECT AS query
ALTER VIEW view_name [FORCE] UPDATE DIALECT AS query
ALTER VIEW view_name DROP DIALECT
É possível usar a opção FORCE ADD DIALECT
para aplicar a atualização do esquema e dos objetos secundários de acordo com o novo dialeto do mecanismo. Lembre-se de que essa ação pode resultar em erros de consulta, caso a opção FORCE
não seja usada para atualizar os demais dialetos do mecanismo. A seguir, um exemplo que demonstra a aplicação:
ALTER VIEW catalog_view FORCE ADD DIALECTAS
SELECT order_date, sum(totalprice) AS priceFROM source_tableGROUP BY orderdate;
A seguir, um exemplo que demonstra a alteração de uma visualização para a atualização do dialeto:
ALTER VIEW catalog_view UPDATE DIALECT AS
SELECT count(*) FROM my_catalog.my_database.source_table;
DESCRIBE VIEW
Sintaxe disponível para descrever uma visualização:
SHOW COLUMNS {FROM|IN} view_name [{FROM|IN} database_name]
: se o usuário tiver as permissões necessárias no AWS Glue e no AWS Lake Formation para descrever a visualização, será possível listar as colunas. A seguir, alguns exemplos de comandos que demonstram como visualizar colunas:
SHOW COLUMNS FROM my_database.source_table;
SHOW COLUMNS IN my_database.source_table;
DESCRIBE view_name
: se o usuário tiver as permissões necessárias no AWS Glue e no AWS Lake Formation para descrever a visualização, será possível listar as colunas na visualização, incluindo os respectivos metadados.
DROP VIEW
Sintaxe disponível:
DROP VIEW [ IF EXISTS ] view_name
A seguir, um exemplo de instrução DROP
que demonstra como realizar um teste para verificar a existência da visualização antes de sua remoção:
DROP VIEW IF EXISTS catalog_view;
SHOW CREATE VIEW view_name
: mostra a instrução SQL responsável pela criação da visualização especificada. A seguir, um exemplo que demonstra o processo de criação de uma visualização no Catálogo de Dados:
SHOW CREATE TABLE my_database.catalog_view;CREATE PROTECTED MULTI DIALECT VIEW my_catalog.my_database.catalog_view (
net_profit,
customer_id,
item_id,
sold_date)
TBLPROPERTIES (
'transient_lastDdlTime' = '1736267222')
SECURITY DEFINER AS SELECT * FROM
my_database.store_sales_partitioned_lf WHERE customer_id IN (SELECT customer_id from source_table limit 10)
SHOW VIEWS
Lista todas as visualizações existentes no catálogo, incluindo as visualizações regulares, as visualizações com múltiplos dialetos (MDV, na sigla em inglês) e as MDVs sem suporte ao dialeto Spark. A sintaxe disponível é a seguinte:
SHOW VIEWS [{ FROM | IN } database_name] [LIKE regex_pattern]:
A seguir, um exemplo que demonstra um comando para mostrar as visualizações:
SHOW VIEWS IN marketing_analytics LIKE 'catalog_view*';
Para obter mais informações sobre a criação e a configuração de visualizações do Catálogo de Dados, consulte a página Building AWS Glue Data Catalog views no Guia do desenvolvedor do AWS Lake Formation.
Consulta de uma visualização do Catálogo de Dados
Após criar uma visualização do Catálogo de Dados, é possível consultá-la normalmente. O perfil do IAM configurado em seus trabalhos do AWS Glue deve ter a permissão SELECT do Lake Formation na visualização do Catálogo de Dados. Não é necessário conceder acesso às tabelas subjacentes referenciadas na visualização.
Depois de configurar tudo, você pode consultar sua exibição. Por exemplo, você pode executar a consulta apresentada a seguir para acessar uma visualização.
SELECT * from my_database.catalog_view LIMIT 10;
Limitações
Considere as limitações a seguir ao usar as vizualizações do Data Catalog.
-
É possível criar visualizações do Catálogo de Dados apenas com a versão 5.0 ou superior do AWS Glue.
-
O responsável pela definição da visualização do Catálogo de Dados deve ter permissão de acesso
SELECT
nas tabelas de base subjacentes acessadas pela visualização. A operação de criação da visualização do Catálogo de Dados não será bem-sucedida caso uma das tabelas de base tenha filtros do Lake Formation atribuídos ao perfil “definer”. -
As tabelas de base devem estar configuradas sem a permissão
IAMAllowedPrincipals
no data lake do AWS Lake Formation. Se presente, o erro Visualizações de vários dialetos só podem fazer referência a tabelas sem permissões de IAMAllowedPrincipals permissions ocorrerá. -
A localização da tabela no Amazon S3 deve estar registrada como um local de data lake no AWS Lake Formation. Caso a tabela não esteja registrada, será gerado o erro:
Multi Dialect views may only reference AWS Lake Formation managed tables
. Para obter informações sobre como registrar localizações do Amazon S3 no AWS Lake Formation, consulte Registering an Amazon S3 location no Guia do desenvolvedor do AWS Lake Formation. -
Você só pode criar vizualizações
PROTECTED
do Data Catalog. Não há suporte para exibiçõesUNPROTECTED
. -
Você não pode referenciar tabelas de outra conta da AWS na definição de uma visualização do Catálogo de Dados. Além disso, não é possível referenciar uma tabela da mesma conta que esteja em uma região diferente.
-
Para compartilhar dados entre contas ou regiões, a visualização inteira deve ser compartilhada entre contas e entre regiões, usando links de recurso do AWS Lake Formation.
-
As funções definidas pelo usuário (UDFs) não são compatíveis.
-
Não é possível fazer referência a outras vizualizações nas exibições do Data Catalog.