Cola AWS Visualização do Catálogo de Dados é uma visualização multidialeto que oferece suporte a consultas de vários mecanismos de consulta SQL, como Amazon Atenas, Redshift da Amazon Espectro, Apache Spark em Amazon EMR e cola AWS. Você pode criar uma visualização do Catálogo de Dados em uma conta, usando um Gerenciamento de identidade e acesso da AWS função de definidor (IAM) na mesma conta ou em conta diferente e uso Formação do Lago AWS para compartilhar a visualização em várias contas. O papel definidor tem o completo necessário SELECT nas tabelas base para criar a visualização e compartilhá-la com outros usuários para consulta. O Catálogo de Dados assume a função de definidor e gerencia o acesso às tabelas base quando a visualização é consultada, permitindo assim compartilhar um subconjunto de dados sem compartilhar as tabelas base subjacentes.
O AWS Glue agora adiciona suporte do AWS SDK para criar e atualizar o ATHENA dialeto de visualizações de cola. Com esta adição, agora você pode criar ATHENA e SPARK dialetos de visualizações do Glue simultaneamente, usando uma função de definidor do IAM entre contas. Esse recurso aprimora a automação para criar e atualizar visualizações do Glue, como as tabelas do Knowledge Catalog. Em nosso weblog anterior Criar visualizações do AWS Glue Knowledge Catalog usando funções de definidor entre contasintroduzimos funções definidoras do IAM em um caso de uso entre contas para criar visualizações do Catálogo de Dados com SPARK dialetos usando APIs – CreateTable() e UpdateTable() – ao criar e adicionar ATHENA dialetos usando o editor de consultas Athena. Continuando, esta postagem mostra como usar a API de objetos de catálogo CreateTable() para criar programaticamente ATHENA e SPARK dialetos usando funções de definidor do IAM entre contas e como adicionar o ATHENA dialeto programaticamente para as visualizações que foram criadas anteriormente com apenas SPARK dialeto.
As funções de definidor de contas cruzadas permitem arquiteturas de malha de dados empresariais onde múltiplas contas estão interconectadas em uma governança central e múltiplos produtores e consumidores. A conta de governança central hospeda o banco de dados, as tabelas e as permissões, enquanto as contas do produtor mantêm pipelines de CI/CD para criar e gerenciar esses ativos de dados. Ter a função de definidor nas contas do produtor permite que esses pipelines de CI/CD sejam totalmente gerenciados pelas funções do IAM nas contas individuais.
Pontos principais sobre a criação de visualizações multidialetos usando funções de definidor entre contas
ATHENAdialetos são validados e criados de forma assíncrona. Portanto, uma conexão Glue entre contas é necessária para validação de cada par de conta de produtor-conta de governança central. Esta é uma configuração única.SPARKdialetos não são validados. Por issoSPARKa sintaxe de criação do dialeto requer a lista SubObjects das tabelas base e campos StorageDescriptor para as colunas da visualização.- Embora as consultas em visualizações de contas cruzadas possam ser executadas usando nomes de hyperlinks de recursos de banco de dados, a consulta SQL de definição de visualização para criar a visualização requer o banco de dados unique e os nomes da tabela base da conta de governança central.
- Se uma visão tiver
SPARKeATHENAdialetos disponíveis, recomendamos atualizar ambos os dialetos da visualização simultaneamente usandoupdate_table()API/SDK, para quaisquer alterações na definição SQL da visualização ou da tabela base. Isso manterá ambos os dialetos consultáveis. - Criando e atualizando ambos
SPARKeATHENAdialetos que usam a função de definidor de conta cruzada são suportados usando AWS CloudFormation. - A visualização do Catálogo de Dados que pode ser criada usando funções de definidor do IAM entre contas está disponível em
SPARKeATHENAdialetos e atualmente não é compatível com o dialeto Redshift Spectrum.
Pré-requisitos
Usamos a mesma configuração usada em Criar visualizações do AWS Glue Knowledge Catalog usando funções de definidor entre contas para o banco de dados de amostra, tabelas, função de definidor, hyperlink de recurso, permissões de IAM e Lake Formation nesses recursos e principais entre as duas contas da AWS. Resumindo os requisitos conforme abaixo.
- A configuração inclui uma conta de governança central com banco de dados do Knowledge Catalog
bankdata_icebergdbe duas mesastransaction_table1etransaction_table2uma conta de produtor com função de analista de dados usada como função de definidor de visualização. - As permissões do Lake Formation no banco de dados e nas tabelas da conta central são concedidas à função de analista de dados da conta do produtor, conforme o weblog anterior. A função definidora na conta do produtor deve ter banco de dados
DESCRIBEeCREATE_TABLEpermissões, tabelaSELECTeDESCRIBEpermissão em todas as colunas e linhas das tabelas base. As permissões do IAM exigidas na função do definidor são detalhadas em Pré-requisitos para criar visualizações. Da mesma forma, siga o weblog anterior para criar um hyperlink de recurso para o banco de dados compartilhado e conceder permissões ao Lake Formation no hyperlink de recurso para o Analista de Dados - Uma fonte de dados do Athena chamada
centraladminna conta do produtor, apontando para o Catálogo de Dados da conta de governação central.
Criando dialetos ATHENA e SPARK ao mesmo tempo
Criando ambos ATHENA e SPARK dialetos de uma visualização de catálogo do Glue simultaneamente agora são suportados pelo AWS SDK. Na conta do produtor, crie uma nova conexão Glue, necessária para a validação do dialeto Athena. Este é um pré-requisito para a criação do ATHENA dialeto da visualização do catálogo Glue usando a função de definidor de contas cruzadas. Em seguida, criamos uma visualização Glue com ambos os dialetos.
- Faça login na conta do produtor como a função de administrador do Lake Formation ou qualquer função com permissão para criar conexões do AWS Glue.
- Usando um Interface de linha de comando da AWS (AWS CLI) ambiente, como AWS CloudShellcrie um Conexão AWS Glue do seguinte modo.
O conteúdo de
athena-validation-connection.jsoné o seguinte.Observação: se você estiver usando o Athena pela primeira vez em sua conta ou usando o grupo de trabalho primário, configure o bucket de localização dos resultados da consulta usando Especifique um native de resultado da consulta.
- Saia como administrador do Lake Formation e faça login novamente na conta do produtor como a função definidora do IAM,
Knowledge-Analyst. - Crie uma visualização do AWS Glue usando o criar tabela Comando CLI e arquivo JSON ou usando o SDK da AWS para Python (Boto3) roteiro.
O conteúdo de
create_multipledialects.jsoné o seguinte.Notas sobre os campos no JSON de entrada da CLI acima (aplica-se a todos os SDK):
- O definidor é por padrão o chamador da API, mas um
DefinerO campo pode ser definido para especificar explicitamente uma função do IAM diferente. - No
ViewDefinitionos qualificadores de banco de dados são necessários paraSPARKdialeto. Ou seja, a definição SQL fornecida paraViewOriginalTexteViewExpandedTextdeveria estar emformatar..
- O definidor é por padrão o chamador da API, mas um
- Depois que a visualização for criada, você poderá inspecionar os detalhes no Console de formação do lago. As definições SQL mostram ambos
ATHENAeSPARKconforme mostrado na imagem a seguir.

Se a criação da sua visualização falhar para qualquer um dos dialetos, você poderá usar o AWS Glue obter mesa Comando CLI com --include-status-details para ver qual é o erro e corrigi-lo.
Cole o script PySpark
O script PySpark para criar uma visualização com ATHENA e SPARK dialetos são fornecidos abaixo. Baixe e edite o script Pyspark com o nome do seu bucket, IDs do produtor e da conta central, região e nomes de recursos relevantes do Glue: bdb_5773_createview_bothdialects.py
Forneça as seguintes configurações para executar o script em seu Glue Studio. Para obter detalhes sobre como executar um trabalho Spark no Glue, consulte Trabalhar com trabalhos do Spark no AWS Glue.
- Escolha Knowledge-Analyst como a função do IAM de execução do trabalho.
- Escolha Glue 5.1 para a versão Glue.
- Para o número solicitado de trabalhadores, forneça >=4. Este é um requisito do driver FGAC Spark, necessário para visualizações do catálogo do Glue. A captura de tela abaixo mostra essas configurações.

- Adicione as duas propriedades a seguir como parâmetros de trabalho adicionais. Uma captura de tela é mostrada para referência.

- Salve e execute o trabalho Glue. Verifique o
stdoutlogs para revisar a consulta na visualização recém-criada.
Uma amostra update_table O script também é fornecido abaixo, para ilustrar a alteração da definição da visualização com colunas adicionais. Observe o REPLACE palavra-chave:
bdb_5773_updateview_bothdialects.py
Adicionar o dialeto ATHENA usando SDK a uma visualização existente do AWS Glue
Você pode atualizar uma visualização existente do AWS Glue que foi criada com o SPARK dialeto e adicione o ATHENA dialeto usando o SDK. O exemplo a seguir usa o tabela de atualização Comando CLI.
O conteúdo de add-athena-dialect.json é o seguinte.
Verifique o dialeto adicionado na visualização revisando as definições SQL da visualização no console do Lake Formation ou usando ObterTabela(). Se desejar editar a definição SQL ou alterar as tabelas base de uma visualização existente que tenha os dialetos SPARK e ATHENA, você poderá fazer isso usando o comando update_table API (usando SDK ou CLI), com "ViewUpdateAction": “REPLACE” e forneça a definição do dialeto em ViewDefinition.
Você pode executar consultas na visualização da conta do produtor como Knowledge-Analyst. A visualização pode ser compartilhada usando tags Lake Formation ou método nomeado, assim como o compartilhamento de tabelas, para contas de consumidor adicionais da conta de governança central. As contas de consumo criarão um hyperlink de recurso e consultarão as visualizações.
Limpar
Para evitar incorrer em custos contínuos, limpe os recursos que você usou para esta postagem:
- Revogar as permissões do Lake Formation concedidas ao
Knowledge-Analystfunção e a conta do produtor da conta de governação central. - Elimine as tabelas, as visualizações e o banco de dados do Knowledge Catalog.
- Exclua os resultados da consulta do Athena do bucket do Amazon Easy Storage Service (Amazon S3).
- Exclua o
Knowledge-Analystfunção do IAM. - Exclua a conexão do AWS Glue e a fonte de dados do Athena.
- Exclua o trabalho do AWS Glue, se você tentou o script Python como um trabalho do AWS Glue.
Conclusão
Nesta postagem, demonstrei como usar funções de definidor de IAM entre contas com Visualizações do catálogo de dados do AWS Gluecomo criar e atualizar ATHENA e SPARK dialetos usando o Catálogo de Dados CriarTabela() e AtualizarTabela() APIs. As visualizações do Knowledge Catalog multidialeto permitem compartilhar um subconjunto de dados de diferentes tabelas usando permissões do Lake Formation, incluindo controle de acesso baseado em LF-Tags. As funções do definidor entre contas oferecem suporte a arquiteturas de malha de dados de várias contas para que as funções IAM do produtor possam executar os pipelines de CI/CD em sua conta. Incentivamos você a experimentar o recurso e compartilhar seus comentários nos comentários.
Agradecimentos: Gostaria de agradecer a todos os membros da equipe que trabalharam para adicionar suporte do AWS SDK para a criação ATHENA e SPARK dialetos juntos para visualizações do AWS Glue – Daniil Arushanov, Wyatt Hawes, Yuxi Wu, Santhosh Padmanabhan e Karthik Devaraj.

