Nós recentemente anunciou suporte para Formação AWS Lake políticas de controle de acesso refinadas em Amazona atena consultas de dados armazenados em qualquer formato de arquivo compatível usando formatos de tabela como Apache Iceberg, Apache Hudi e Apache Hive. O AWS Lake Formation permite definir e aplicar políticas de acesso em nível de banco de dados, tabela e coluna para consultar tabelas Iceberg armazenadas no Amazon S3. O Lake Formation fornece uma camada de autorização e governança nos dados armazenados no Amazon S3. Esta capacidade requer que você atualize para Motor Athena versão 3.
Grandes organizações costumam ter linhas de negócios (LoBs) que operam com autonomia no gerenciamento de seus dados de negócios. Isso torna o compartilhamento de dados entre LoBs não trivial. Essas organizações adotaram um modelo federado, com cada LoB tendo autonomia para tomar decisões sobre seus dados. Eles usam o modelo publicador/consumidor com uma camada de governança centralizada que é usada para impor controles de acesso. Se você estiver interessado em aprender mais sobre arquitetura de malha de dados, visite Projetar uma arquitetura de malha de dados usando AWS Lake Formation e AWS Glue. Com o mecanismo Athena versão 3, os clientes podem usar os mesmos controles refinados para estruturas de dados abertos, como Apache Iceberg, Apache Hudi e Apache Hive.
Nesta postagem, nos aprofundamos em um caso de uso em que você tem um modelo produtor/consumidor com compartilhamento de dados habilitado para fornecer acesso restrito a uma tabela Apache Iceberg que o consumidor pode consultar. Discutiremos a filtragem de coluna para restringir determinadas linhas, filtragem para restringir o acesso no nível da coluna, evolução do esquema e viagem no tempo.
Visão geral da solução
Para ilustrar a funcionalidade de permissões refinadas para tabelas Apache Iceberg com Athena e Lake Formation, configuramos os seguintes componentes:
- Na conta do produtor:
- An Cola AWS Catálogo de dados para registrar o esquema de uma tabela no formato Apache Iceberg
- Lake Formation para fornecer acesso refinado à conta do consumidor
- Athena para verificar os dados da conta do produtor
- Na conta do consumidor:
- Gerenciador de acesso a recursos da AWS (AWS RAM) para criar um handshake entre o catálogo de dados do produtor e o consumidor
- Lake Formation para fornecer acesso refinado à conta do consumidor
- Athena para verificar os dados da conta do produtor
O diagrama a seguir ilustra a arquitetura.
Pré-requisitos
Antes de começar, certifique-se de ter o seguinte:
Configuração do produtor de dados
Nesta seção, apresentamos as etapas para configurar o produtor de dados.
Crie um bucket S3 para armazenar os dados da tabela
Criamos um novo bucket S3 para salvar os dados da tabela:
- No console do Amazon S3, criar um balde S3 com nome único (para este post, usamos
iceberg-athena-lakeformation-blog
). - Crie a pasta do produtor dentro do depósito para usar na tabela.
Registre o caminho do S3 armazenando a tabela usando o Lake Formation
Registramos o caminho completo do S3 em Lake Formation:
- Navegue até o console do Lake Formation.
- Se você estiver fazendo login pela primeira vez, será solicitado a criar um usuário administrador.
- No painel de navegação, em Registre-se e ingira, escolha Localizações de data lake.
- Escolha Registrar localizaçãoe forneça o caminho do bucket do S3 que você criou anteriormente.
- Escolha
AWSServiceRoleForLakeFormationDataAccess
para Função do IAM.
Para obter informações adicionais sobre funções, consulte Requisitos para funções usadas para registrar locais.
Se você habilitou a criptografia de seu bucket do S3, deverá fornecer permissões para que o Lake Formation execute operações de criptografia e descriptografia. Referir-se Registrando um local criptografado do Amazon S3 em busca de orientação.
- Escolha Registrar localização.
Crie uma mesa Iceberg usando o Athena
Agora vamos criar a tabela usando o Athena suportado pelo formato Apache Iceberg:
- No console Athena, escolha Editor de consultas no painel de navegação.
- Se você estiver usando o Athena pela primeira vez, em Configurações, escolha Gerencie e insira o local do bucket S3 que você criou anteriormente (
iceberg-athena-lakeformation-blog/producer
). - Escolha Salvar.
- No editor de consultas, insira a consulta a seguir (substitua o local pelo bucket do S3 que você registrou no Lake Formation). Observe que usamos o banco de dados padrão, mas você pode usar qualquer outro banco de dados.
- Escolha Execute.
Compartilhe a mesa com a conta do consumidor
Para ilustrar a funcionalidade, implementamos os seguintes cenários:
- Fornecer acesso às colunas selecionadas
- Forneça acesso às linhas selecionadas com base em um filtro
Conclua as seguintes etapas:
- No console do Lake Formation, no painel de navegação em Catálogo de dados, escolha Filtros de dados.
- Escolha Crie um novo filtro.
- Escolha Nome do filtro de dados, entrar
blog_data_filter
. - Escolha Banco de dados de destino, entrar
lf-demo-db
. - Escolha Tabela de destino, entrar
consumer_iceberg
. - Escolha Acesso em nível de coluna, selecione Incluir colunas.
- Escolha as colunas para compartilhar com o consumidor:
country, address, contactfirstname, city, customerid,
ecustomername
. - Escolha Expressão de filtro de linha, insira o filtro
country='France'
. - Escolha Criar filtro.
Agora vamos conceder acesso à conta do consumidor no consumer_iceberg
tabela.
- No painel de navegação, escolha Tabelas.
- Selecione a tabela consumer_iceberg e escolha Conceda na Opções menu.
- Selecionar Contas externas.
- Insira o ID da conta externa.
- Selecionar Recursos de catálogo de dados nomeados.
- Escolha seu banco de dados e tabela.
- Escolha Filtros de dados, escolha o filtro de dados que você criou.
- Escolha Permissões de filtro de dados e Permissões concedíveis, selecione Selecionar.
- Escolha Conceda.
Configuração do consumidor de dados
Para configurar o consumidor de dados, aceitamos o compartilhamento de recursos e criamos uma tabela usando AWS RAM e Lake Formation. Conclua as seguintes etapas:
- Faça login na conta do consumidor e navegue até o console de RAM da AWS.
- Debaixo Compartilhou comigo no painel de navegação, escolha Compartilhamento de recursos.
- Escolha seu compartilhamento de recursos.
- Escolha Aceitar compartilhamento de recursos.
- Anote o nome do compartilhamento de recurso a ser usado nas próximas etapas.
- Navegue até o console do Lake Formation.
- Se você estiver fazendo login pela primeira vez, será solicitado a criar um usuário administrador.
- Escolha Bases de dados no painel de navegação e escolha seu banco de dados.
- No Opções menu, escolha Criar link de recurso.
- Escolha Nome do link do recurso, insira o nome do seu link de recurso (por exemplo,
consumer_iceberg
). - Escolha seu banco de dados e tabela compartilhada.
- Escolha Crie.
Valide a solução
Agora podemos executar diferentes operações nas tabelas para validar os controles de acesso refinados.
Inserir operação
Vamos inserir dados no consumer_iceberg
tabela na conta do produtor e validar se a filtragem de dados funciona conforme o esperado na conta do consumidor.
- Faça login na conta do produtor.
- No console Athena, escolha Editor de consultas no painel de navegação.
- Use o SQL a seguir para gravar e inserir dados na tabela Iceberg. Use o Editor de consultas para executar uma consulta por vez. Você pode destacar/selecionar uma consulta por vez e clicar em “Executar”/“Executar novamente:
- Use o seguinte SQL para ler e selecionar dados na tabela Iceberg:
- Faça login na conta do consumidor.
- No editor de consultas do Athena, execute a seguinte consulta SELECT na tabela compartilhada:
Com base nos filtros, o consumidor tem visibilidade de um subconjunto de colunas e linhas onde o país é a França.
Atualizar/Excluir operações
Agora vamos atualizar uma das linhas e excluir uma do conjunto de dados compartilhado com o consumidor.
- Faça login na conta do produtor.
- Atualizar
city='Paris' WHERE city='Reims'
e exclua a linhacustomerid = 3;
- Verifique o conjunto de dados atualizado e excluído:
- Faça login na conta do consumidor.
- No editor de consultas do Athena, execute a seguinte consulta SELECT na tabela compartilhada:
Podemos observar que apenas uma linha está disponível e a cidade é atualizada para Paris.
Evolução do esquema: adicionar uma nova coluna
Vamos atualizar uma das linhas e excluir uma do conjunto de dados compartilhado com o consumidor.
- Faça login na conta do produtor.
- Adicione uma nova coluna chamada
geo_loc
na tabela Iceberg. Use o Editor de consultas para executar uma consulta por vez. Você pode destacar/selecionar uma consulta por vez e clicar em “Executar”/“Executar novamente:
Para dar visibilidade aos recém-adicionados geo_loc
coluna, precisamos atualizar o filtro de dados Lake Formation.
- No console do Lake Formation, escolha Filtros de dados no painel de navegação.
- Selecione seu filtro de dados e escolha Editar.
- Debaixo Acesso em nível de coluna, adicione a nova coluna (
geo_loc
). - Escolha Salvar.
- Faça login na conta do consumidor.
- No editor de consultas do Athena, execute o seguinte
SELECT
consulta na tabela compartilhada:
A nova coluna geo_loc
é visível e uma linha adicional.
Evolução do esquema: excluir coluna
Vamos atualizar uma das linhas e excluir uma do conjunto de dados compartilhado com o consumidor.
- Faça login na conta do produtor.
- Altere a tabela para eliminar a coluna de endereço da tabela Iceberg. Use o Editor de consultas para executar uma consulta por vez. Você pode destacar/selecionar uma consulta por vez e clicar em “Executar”/“Executar novamente:
Podemos observar que o endereço da coluna não está presente na tabela.
- Faça login na conta do consumidor.
- No editor de consultas do Athena, execute a seguinte consulta SELECT na tabela compartilhada:
O endereço da coluna não está presente na tabela.
Viagem no tempo
Agora mudamos a tabela do Iceberg várias vezes. A tabela Iceberg acompanha os instantâneos. Conclua as etapas a seguir para explorar a funcionalidade de viagem no tempo:
- Faça login na conta do produtor.
- Consulte a tabela do sistema:
Podemos observar que geramos vários instantâneos.
- Anote um dos
committed_at
valores a serem usados nas próximas etapas (neste exemplo,2023-01-29 21:35:02.176 UTC
). - Use a viagem no tempo para encontrar o instantâneo da tabela. Use o Editor de consultas para executar uma consulta por vez. Você pode destacar/selecionar uma consulta por vez e clicar em “Executar”/“Executar novamente:
limpar
Conclua as etapas a seguir para evitar cobranças futuras:
- No console do Amazon S3, exclua o depósito de armazenamento da tabela (para esta postagem, iceberg-athena-lakeformation-blog).
- Na conta do produtor no console do Athena, execute os seguintes comandos para excluir as tabelas que você criou:
- Na conta do produtor no console do Lake Formation, revogue as permissões para a conta do consumidor.
- Exclua o bucket do S3 usado para o local do resultado da consulta do Athena da conta do consumidor.
Conclusão
Com o suporte para políticas de controle de acesso refinadas entre contas para formatos como Iceberg, você tem a flexibilidade de trabalhar com qualquer formato suportado pelo Athena. A capacidade de executar operações CRUD em relação aos dados em seu data lake S3, combinada com controles de acesso refinados do Lake Formation para todas as tabelas e formatos compatíveis com o Athena, oferece oportunidades para inovar e simplificar sua estratégia de dados. Adoraríamos ouvir seus comentários!
Sobre os autores
Kishore Dhamodaran é arquiteto de soluções sênior na AWS. Kishore ajuda clientes estratégicos com sua estratégia empresarial de nuvem e jornada de migração, aproveitando seus anos de experiência no setor e na nuvem.
Jack Ye é engenheiro de software da equipe Athena Data Lake and Storage da AWS. Ele é um Apache Iceberg Committer e membro do PMC.
Chris Olson é um engenheiro de desenvolvimento de software na AWS.
Xiaoxuan Li é um engenheiro de desenvolvimento de software na AWS.
Rahul Sonawane é arquiteto principal de soluções analíticas na AWS com AI/ML e análise como sua área de especialidade.
- Conteúdo com tecnologia de SEO e distribuição de relações públicas. Seja amplificado hoje.
- Platoblockchain. Inteligência Metaverso Web3. Conhecimento Ampliado. Acesse aqui.
- Fonte: https://aws.amazon.com/blogs/big-data/interact-with-apache-iceberg-tables-using-amazon-athena-and-cross-account-fine-grained-permissions-using-aws-lake-formation/
- :é
- $UP
- 1
- 10
- 100
- 7
- a
- habilidade
- Sobre
- ACEITAR
- Acesso
- Conta
- em
- adicionado
- Adicional
- Informação adicional
- endereço
- admin
- adotado
- contra
- AI / ML
- Todos os Produtos
- permite
- Amazon
- Amazona atena
- analítica
- e
- apache
- arquitetura
- SOMOS
- ÁREA
- Arte
- AS
- At
- autorização
- disponível
- evitar
- AWS
- Formação AWS Lake
- Apoiado
- baseado
- entre
- negócio
- negócios
- by
- chamado
- CAN
- catálogo
- centralizada
- certo
- alterar
- acusações
- Escolha
- Cidades
- clique
- Na nuvem
- Coluna
- colunas
- COM
- combinado
- completar
- componentes
- cônsul
- consumidor
- ao controle
- controles
- país
- crio
- criado
- Criar
- criação
- Atravessar
- Clientes
- dados,
- lago data
- compartilhamento de dados
- estratégia de dados
- banco de dados
- decisões
- profundo
- mergulho profundo
- Padrão
- Desenvolvimento
- diferente
- discutir
- down
- Cair
- cada
- Mais cedo
- editor
- EMEA
- habilitado
- criptografada
- criptografia
- Motor
- engenheiro
- Entrar
- Empreendimento
- Éter (ETH)
- evolução
- exemplo
- esperado
- vasta experiência
- explorar
- externo
- Envie o
- filtro
- filtragem
- filtros
- Encontre
- Primeiro nome
- primeira vez
- Flexibilidade
- seguinte
- Escolha
- formato
- treinamento
- enquadramentos
- França
- da
- cheio
- funcionalidade
- futuro
- gerado
- ter
- OFERTE
- governo
- conceder
- orientações
- Ter
- ter
- ouvir
- ajuda
- Colméia
- HTML
- http
- HTTPS
- ID
- executar
- in
- Inc.
- indústria
- INFORMAÇÕES
- inovar
- interagir
- interessado
- IT
- viagem
- jpg
- lago
- Terreno
- camada
- aprendizagem
- Nível
- aproveitando
- LIMITE
- linhas
- LINK
- localização
- gosta,
- Lyon
- fazer
- FAZ
- gestão
- membro
- Menu
- migração
- modelo
- mais
- múltiplo
- nome
- Navegar
- Navegação
- você merece...
- Novo
- Próximo
- NYC
- observar
- of
- on
- ONE
- aberto
- dados abertos
- operar
- Operações
- oportunidades
- organizações
- Outros
- pão
- Paris
- caminho
- realizar
- permissões
- platão
- Inteligência de Dados Platão
- PlatãoData
- políticas
- Publique
- presente
- Diretor
- produtor
- fornecer
- fornece
- RAM
- Leia
- recentemente
- refletida
- cadastre-se
- registrado
- substituir
- exige
- recurso
- restringir
- restringido
- resultar
- Tipo
- papéis
- LINHA
- Execute
- mesmo
- Salvar
- cenários
- Seção
- selecionado
- senior
- conjunto
- Partilhar
- compartilhado
- compartilhando
- simplificar
- Instantâneo
- Software
- desenvolvimento de software
- Engenheiro de Software
- Soluções
- Especialidade
- SQL
- começado
- Passos
- armazenamento
- loja
- armazenadas
- Estratégico
- Estratégia
- Tanga
- tal
- ajuda
- Suportado
- .
- mesa
- Profissionais
- que
- A
- deles
- Este
- tempo
- viagem no tempo
- vezes
- timestamp
- para
- pista
- viagens
- para
- único
- Atualizar
- Atualizada
- atualização
- Estados Unidos
- usar
- Utilizador
- UTC
- VALIDAR
- Valores
- verificar
- versão
- visibilidade
- visível
- Visite a
- com
- Atividades:
- trabalho
- escrever
- anos
- investimentos
- zefirnet