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á.
Trabalhar com visualizações do Catálogo de dados do Glue
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, use 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 da exibição: ao aplicar filtros à sua visualização no Catálogo de dados, você garante que os registros de dados em uma exibição do 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 vizualizações no Data Catalog não são suscetíveis a comandos SQL de acessos mal-intencionados.
Compartilhamento simples de dados — compartilhe dados com outras AWS contas sem mover dados. Para obter mais informações, consulte Compartilhamento de dados entre contas no Lake Formation.
Criação de uma visualização do Catálogo de Dados
Há maneiras diferentes de criar uma exibição do Catálogo de dados. Isso inclui o uso do AWS CLI ou do Spark SQL. Veja 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_tableALTER VIEW
Sintaxe disponível:
ALTER VIEW view_name [FORCE] ADD DIALECT AS queryALTER VIEW view_name [FORCE] UPDATE DIALECT AS queryALTER VIEW view_name DROP DIALECT
É possível usar a opção
FORCE ADD DIALECTpara 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çãoFORCEnão seja usada para atualizar os demais dialetos do mecanismo. A seguir, apresentamos um exemplo:ALTER VIEW catalog_view FORCE ADD DIALECT AS SELECT order_date, sum(totalprice) AS price FROM source_table GROUP BY orderdate;A seguir, é demonstrado como alterar uma visualização para atualizar o 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_nameA seguir, um exemplo de instrução
DROPque 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
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 como criar e configurar visualizações do catálogo de dados, consulte Building AWS Glue Data Catalog no Developer Guide. AWS Lake Formation
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. O perfil de runtime do trabalho 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, depois de criar uma aplicação do EMR Sem Servidor no EMR Studio, execute a consulta a seguir para acessar uma exibição.
SELECT * frommy_database.catalog_viewLIMIT 10;
Uma função útil é invoker_principal. Ela retorna o identificador exclusivo do perfil de runtime do trabalho do EMRS. Isso pode ser usado para controlar a saída da visualização, com base na entidade principal de invocação. Você pode usar isso para adicionar uma condição à sua visualização que refina os resultados da consulta, com base no perfil de chamada. O perfil de runtime do trabalho deve ter permissão para a ação LakeFormation:GetDataLakePrincipal do IAM usar essa função.
select invoker_principal();
Você pode adicionar essa função a uma cláusula WHERE, 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 exibições do Catálogo de dados com o Amazon EMR 7.6 e versões superiores.
O responsável pela definição da visualização do Catálogo de Dados deve ter permissão de acesso
SELECTnas 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 não devem ter a permissão de data lake
IAMAllowedPrincipalsno 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, o erro Visualizações de vários dialetos só podem fazer referência a tabelas gerenciadas pelo Lake Formation ocorrerá. 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
PROTECTEDdo 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 entre contas ou regiões, a visualização inteira deve ser compartilhada entre contas e entre regiões, usando links de recurso do Lake Formation.
As funções definidas pelo usuário (UDFs) não são suportadas.
É possível usar visualizações baseadas em tabelas do Iceberg. Os formatos de tabela aberta Apache Hudi e Delta Lake também são compatíveis.
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 exibição do Catálogo de dados do Glue com uma coluna chamada
Castle, a coluna criada no Catálogo de dados do Glue será transformada em minúsculas, paracastle. Se você especificar o nome da coluna em uma consulta DML comoCastleouCASTLE, o EMR Spark mudará o nome para letras minúsculas para você executar a consulta. Porém, o título da coluna é exibido usando as letras maiúsculas e minúsculas que você especificou na consulta.Se 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 Catálogo de dados do Glue, defina
spark.sql.caseSensitive=true.