Em Conceitos básicos do suporte de gravação do Apache Iceberg no Amazon Redshift – parte 1você aprendeu como criar Iceberg Apache tabelas e gravar dados diretamente de Redshift da Amazon para o seu lago de dados. Você configurou esquemas externos, criou tabelas em ambos Serviço de armazenamento simples da Amazon (Amazon S3) e Tabelas S3e executou operações INSERT enquanto mantinha a conformidade ACID (Atomicidade, Consistência, Isolamento, Durabilidade).
O Amazon Redshift agora oferece suporte a operações DELETE, UPDATE e MERGE para tabelas do Apache Iceberg armazenadas no Amazon S3 e em buckets de tabelas do Amazon S3. Com essas operações, você pode modificar dados em nível de linha, implementar padrões de upsert e gerenciar o ciclo de vida dos dados, mantendo a consistência transacional usando a sintaxe SQL acquainted. Você pode executar transformações complexas no Amazon Redshift e gravar resultados em tabelas do Apache Iceberg que outros mecanismos de análise gostam Amazon EMR ou Amazon Atenas pode consultar imediatamente.
Neste publish você trabalha com buyer e orders conjuntos de dados que foram criados e usados no mencionado anteriormente publicar para demonstrar esses recursos em um cenário de sincronização de dados.
Visão geral da solução
Esta solução demonstra operações DELETE, UPDATE e MERGE para tabelas Apache Iceberg no Amazon Redshift usando um padrão comum de sincronização de dados: manutenção de registros de clientes e dados de pedidos em tabelas de preparação e produção. O fluxo de trabalho inclui três operações principais:
- EXCLUIR – Remover registros de clientes com base em solicitações de cancelamento
- ATUALIZAR – Modificar informações existentes do cliente
- MESCLAR – Sincronize os dados do pedido entre as tabelas de preparação e de produção usando padrões de upsert

Figura 1: visão geral da solução
A solução usa uma tabela intermediária (orders_stg) armazenado em um bucket de tabela S3 para dados recebidos e tabelas de referência (customer_opt_out) no Amazon Redshift para gerenciar operações do ciclo de vida de dados. Com essa arquitetura, você pode processar alterações com eficiência e, ao mesmo tempo, manter a conformidade com ACID em ambos os tipos de armazenamento.
Pré-requisitos
Para este passo a passo, você deve ter concluído as etapas de configuração de Conceitos básicos do suporte de gravação do Apache Iceberg no Amazon Redshift – parte 1incluindo:
- Crie um knowledge warehouse do Amazon Redshift (provisionado ou Sem servidor)
- Configure a função do IAM necessária (
RedshifticebergRole) com permissões apropriadas - Crie um bucket do Amazon S3 e um bucket de tabela do S3
- Configurar o banco de dados do AWS Glue Information Catalog e configurar o acesso
- Configurar permissões do AWS Lake Formation
- Crie o
buyerTabela Apache Iceberg em buckets padrão do Amazon S3 com dados de amostra do cliente - Crie a tabela de pedidos Apache Iceberg em buckets de tabela do Amazon S3 com dados de pedido de amostra
- Armazém de dados do Amazon Redshift ativado p200 versão ou superior
Preparação de dados
Nesta seção, você configura os dados de amostra necessários para demonstrar as operações MERGE, UPDATE e DELETE. Para preparar seus dados, conclua as seguintes etapas:
- Faça login no Amazon Redshift usando Question Editor V2 com o usuário federado opção.
- Crie o
orders_stgecustomer_opt_outtabelas com dados de amostra:

Figura 2: conjunto de resultados order_stg

Figura 3: conjunto de resultados customer_opt_out
Agora você pode usar o orders_stg e customer_opt_out tabelas para demonstrar operações de manipulação de dados no orders e buyer tabelas criadas na seção de pré-requisitos.
MESCLAR
MESCLAR insere, atualiza ou exclui condicionalmente linhas em uma tabela de destino com base nos resultados de uma junção com uma tabela de origem. Você pode usar MESCLAR para sincronizar duas tabelas inserindo, atualizando ou excluindo linhas em uma tabela com base nas diferenças encontradas na outra tabela.
Para realizar uma operação MERGE:
- Verifique se os dados atuais no pedidos tabela para IDs de pedido 1014, 1015, 1016 e 1017. Você carregou esses dados de amostra em Parte 1:

Figura 4: dados de pedidos para pedidos existentes em pedidos_stg
O pedidos contém linhas existentes para os IDs de pedido 1014 e 1015.
- Execute o seguinte MESCLAR operação usando id_pedido como a coluna-chave para combinar as linhas entre os pedidos e pedidos_stg tabelas:
A operação atualiza as linhas existentes (1014 e 1015) e insere novas linhas para IDs de pedidos que não existem no pedidos tabela (1016 e 1017).
- Verifique os dados atualizados no pedidos mesa:

Figura 5: dados mesclados sobre pedidos deorders_stg
O MESCLAR operação executa as seguintes alterações:
- Atualiza linhas existentes – Os IDs de pedido 1014 e 1015 foram atualizados total_pedido_amt e total_pedido_imposto_amt valores do pedidos_stg mesa
- Insere novas linhas – Os IDs de pedido 1016 e 1017 são inseridos porque não existem no pedidos mesa
Isso demonstra o padrão upsert, onde MESCLAR atualiza ou insere linhas condicionalmente com base na coluna-chave correspondente.
ATUALIZAR
ATUALIZAR modifica linhas existentes em uma tabela com base em condições ou valores especificados de outra tabela.
Atualize o buyer Tabela Apache Iceberg usando dados do customer_opt_out Tabela nativa do Amazon Redshift. O ATUALIZAR operação usa o cust_rec_upd_ind coluna como um filtro, atualizando apenas as linhas onde o valor é ‘Y’.
Para realizar uma operação UPDATE:
- Verifique a corrente
customer_namevalores para IDs de cliente 13 e 14 emcustomer_opt_outebuyer(carregou esses dados de amostra em Parte 1) tabelas:

Figura 6: verifique os dados de clientes existentes em customer_opt_out

Figura 7: verifique o nome do cliente existente para clientes de customer_opt_out
- Execute o seguinte ATUALIZAR operação para modificar nomes de clientes com base no
cust_rec_upd_inddecustomer_opt_out:
- Verifique as alterações para os IDs de cliente 13 e 14:

Figura 8: nomes de clientes atualizados na tabela de clientes
O ATUALIZAR operação modifica o customer_name valores baseados na condição de junção com o customer_opt_out mesa. Os IDs de cliente 13 e 14 agora têm nomes atualizados (Customer13 Albon e Customer14 Oscar).
EXCLUIR
EXCLUIR take away linhas de uma tabela com base em condições especificadas. Sem um ONDE cláusula, EXCLUIR take away todas as linhas da tabela.
Excluir linhas do buyer Tabela Apache Iceberg usando dados do customer_opt_out Tabela nativa do Amazon Redshift. O EXCLUIR operação usa o opt_out_ind coluna como filtro, removendo apenas as linhas onde o valor é ‘Y’.
Para executar uma operação DELETE:
- Verifique os dados do indicador de opt-out no
customer_opt_outmesa:

Figura 9: verificar registros de clientes para cancelamento
- Verifique os dados atuais do cliente para os IDs de cliente 9 e 12:

Figura 10: verifique os dados dos clientes existentes na tabela de clientes para cancelamento
- Revise o plano de execução da consulta:

Figura 11: plano de consulta para a consulta DELETE. O plano de execução mostra verificações do Amazon S3 em busca de tabelas no formato Apache Iceberg, indicando que o Amazon Redshift take away linhas diretamente do bucket do Amazon S3.
- Execute o seguinte EXCLUIR operação:
- Verifique se as linhas foram removidas:

Figura 12: conjunto de resultados da tabela de clientes para cancelamento de cliente após exclusão
A consulta não retorna nenhuma linha, confirmando que os IDs de cliente 9 e 12 foram excluídos com êxito do buyer mesa.
Melhores práticas
Depois de realizar vários ATUALIZAR ou EXCLUIR operações, considere executar a manutenção da tabela para otimizar o desempenho de leitura:
- Para tabelas do AWS Glue – Use otimizadores de tabela AWS Glue. Para obter mais informações, consulte Otimizadores de tabela no Guia do desenvolvedor do AWS Glue.
- Para tabelas S3 – Use operações de manutenção de tabelas S3. Para obter mais informações, consulte Manutenção de tabelas S3 no Guia do usuário do Amazon S3.
A manutenção de tabelas mescla e compacta arquivos de exclusão gerados por operações Merge-on-Learn, melhorando o desempenho da consulta para leituras subsequentes.
Conclusão
Você pode usar o suporte do Amazon Redshift para operações DELETE, UPDATE e MERGE em tabelas Apache Iceberg para criar arquiteturas de dados que combinem o desempenho do warehouse com a escalabilidade do knowledge lake. Você pode modificar os dados no nível da linha enquanto mantém a conformidade com ACID, oferecendo a mesma flexibilidade com tabelas do Apache Iceberg que você tem com tabelas nativas do Amazon Redshift.
Comece: