As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Trabalhando com visualizações do Glue Data Catalog
Você pode criar e gerenciar visualizações no AWS Glue Data Catalog para uso com o EMR Serverless. Elas são comumente conhecidas como visualizações do AWS Glue Data Catalog. Essas visualizações são úteis porque oferecem suporte a vários mecanismos de consulta SQL, para que você possa acessar a mesma visualização em diferentes AWS serviços, como EMR Serverless e Amazon Athena Amazon Redshift.
Ao criar uma exibição no Catálogo de Dados, você pode usar concessões de recursos e controles de acesso baseados em tags AWS Lake Formation para conceder acesso a ela. Usando esse método de controle de acesso, você não precisa configurar acesso adicional às tabelas referenciadas ao criar a exibiçã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 o controle de acesso no Lake Formation, consulte Conceder e revogar permissões nos recursos do Catálogo de Dados 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 as exibições do Data Catalog para evitar que funcionários que não trabalham no departamento de RH vejam informações de identificação pessoal (PII).
Definição completa de exibição — Ao aplicar filtros em sua exibição no Catálogo de Dados, você garante que os registros de dados disponíveis em uma exibição no Catálogo de Dados estejam sempre completos.
Segurança aprimorada — A definição da consulta usada para criar a exibição deve estar completa. Esse benefício significa que as visualizações no Catálogo de Dados são menos suscetíveis aos comandos SQL de agentes mal-intencionados.
Compartilhamento simples de dados — compartilhe dados com outras AWS contas sem mover dados. Para obter mais informações, consulte Cross-account data sharing in Lake Formation.
Criação de uma visualização do Catálogo de Dados
Há diferentes maneiras de criar uma exibição do Catálogo de Dados. Isso inclui o uso do AWS CLI ou do Spark SQL. Seguem alguns exemplos.
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çãoFORCE
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 DIALECT AS SELECT order_date, sum(totalprice) AS price FROM source_table GROUP 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 de AWS Glue e Lake Formation para descrever a visualização, ele poderá 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 de AWS Glue e Lake Formation para descrever a visualização, ele poderá listar as colunas na exibição junto com seus 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;
MOSTRAR CRIAR VISUALIZAÇÃO
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
Liste todas as visualizações no catálogo, como visualizações regulares, visualizações com vários dialetos (MDV) e MDV sem o 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 como criar e configurar visualizações do catálogo de dados, consulte Como criar visualizações do catálogo de dados do AWS Glue no Guia do AWS Lake Formation desenvolvedor.
Consulta de uma visualização do Catálogo de Dados
Depois de criar uma visualização do catálogo de dados, você pode consultá-la usando uma tarefa do Amazon EMR Serverless Spark que tenha AWS Lake Formation um controle de acesso refinado ativado. A função de tempo de execução do trabalho deve ter a SELECT
permissão 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, depois de criar um aplicativo EMR Serverless no EMR Studio, você pode executar a consulta a seguir para acessar uma visualização.
SELECT * from
my_database
.catalog_view
LIMIT 10;
Uma função útil é invoker_principal
a. Ele retorna o identificador exclusivo da função de tempo de execução do trabalho do EMRS. Isso pode ser usado para controlar a saída da visualização, com base no principal de invocação. Você pode usar isso para adicionar uma condição à sua visualização que refina os resultados da consulta, com base na função de chamada. A função de tempo de execução do trabalho deve ter permissão para que a ação LakeFormation:GetDataLakePrincipal
do IAM use essa função.
select invoker_principal();
Você pode adicionar essa função a uma WHERE
cláusula, por exemplo, para refinar os resultados da consulta.
Considerações e limitações
Quando você cria exibições do Catálogo de Dados, o seguinte se aplica:
Você só pode criar visualizações do catálogo de dados com o Amazon EMR 7.6 e superior.
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 base não devem ter a permissão
IAMAllowedPrincipals
de data lake no Lake Formation. Se presente, o erro de visualizações de vários dialetos só pode fazer referência a tabelas sem a permissão do IAMAllowed Principal.A localização da tabela no Amazon S3 deve ser registrada como uma localização de data lake do Lake Formation. Se a tabela não estiver registrada, ocorrerá o erro de visualizações de vários dialetos somente referenciar tabelas gerenciadas pelo Lake Formation. Para obter informações sobre como registrar locais do Amazon S3 em Lake Formation, consulte Registro de um local do Amazon S3 no Guia do desenvolvedor. 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 em outra AWS conta em uma definição de exibiçã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 em uma conta ou região, toda a visualização deve ser compartilhada entre contas e regiões, usando links de recursos do Lake Formation.
As funções definidas pelo usuário (UDFs) não são suportadas.
Você pode usar visualizações com base nas tabelas do Iceberg. Os formatos de tabela aberta Apache Hudi e Delta Lake também são suportados.
Não é possível fazer referência a outras vizualizações nas exibições do Data Catalog.
Um esquema de visualização do AWS Glue Data Catalog é sempre armazenado em letras minúsculas. Por exemplo, se você usar uma instrução DDL para criar uma visualização do Glue Data Catalog com uma coluna chamada
Castle
, a coluna criada no Glue Data Catalog será transformada em minúsculas, para.castle
Se você especificar o nome da coluna em uma consulta DML comoCastle
ouCASTLE
, o EMR Spark colocará o nome em minúsculas para que você possa executar a consulta. Mas o título da coluna é exibido usando as letras maiúsculas e minúsculas que você especificou na consulta.Se você quiser que uma consulta falhe em um caso em que o nome da coluna especificado na consulta DML não corresponda ao nome da coluna no Glue Data Catalog, você pode definir
spark.sql.caseSensitive=true
.