

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á.

# Usando cargas de trabalho do Iceberg no Amazon S3
<a name="best-practices-workloads"></a>

Esta seção discute as propriedades do Iceberg que você pode usar para otimizar a interação do Iceberg com o Amazon S3.

## Evite o particionamento a quente (erros HTTP 503)
<a name="workloads-503"></a>

Alguns aplicativos de data lake executados no Amazon S3 manipulam milhões ou bilhões de objetos e processam petabytes de dados. Isso pode levar a prefixos que recebem um alto volume de tráfego, que normalmente são detectados por meio de erros HTTP 503 (serviço indisponível). Para evitar esse problema, use as seguintes propriedades do Iceberg:
+ `write.distribution-mode`Defina `hash` para `range` que o Iceberg grave arquivos grandes, o que resulta em menos solicitações do Amazon S3. Essa é a configuração preferida e deve abordar a maioria dos casos.
+ Se você continuar enfrentando erros 503 devido a um grande volume de dados em suas cargas de trabalho, você pode `write.object-storage.enabled` configurá-los no Iceberg. `true` Isso instrui o Iceberg a fazer o hash dos nomes dos objetos e distribuir a carga em vários prefixos aleatórios do Amazon S3.

Para obter mais informações sobre essas propriedades, consulte [Write properties](https://iceberg.apache.org/docs/latest/configuration/#write-properties) na documentação do Iceberg.

## Use as operações de manutenção do Iceberg para liberar dados não utilizados
<a name="workloads-unused-data"></a>

Para gerenciar tabelas do Iceberg, você pode usar a API principal do Iceberg, os clientes do Iceberg (como o Spark) ou serviços gerenciados, como o Amazon Athena. [Para excluir arquivos antigos ou não utilizados do Amazon S3, recomendamos que você use somente o Iceberg APIs native [para remover instantâneos, remover](https://iceberg.apache.org/docs/latest/maintenance/#expire-snapshots)[arquivos de metadados antigos](https://iceberg.apache.org/docs/latest/maintenance/#remove-old-metadata-files) e excluir arquivos órfãos.](https://iceberg.apache.org/docs/latest/maintenance/#delete-orphan-files)

Usar o Amazon S3 APIs por meio do Boto3, o Amazon S3 SDK ou o AWS Command Line Interface (AWS CLI), ou usar qualquer outro método que não seja do Iceberg para sobrescrever ou remover arquivos do Amazon S3 de uma tabela Iceberg leva à corrupção da tabela e a falhas de consulta.

## Replique dados em Regiões da AWS
<a name="workloads-replication"></a>

Ao armazenar tabelas do Iceberg no Amazon S3, você pode usar os recursos integrados no Amazon S3, [como replicação entre regiões (CRR) e pontos de acesso multirregionais (MRAP), para replicar](https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html) [dados em várias regiões](https://docs.aws.amazon.com/AmazonS3/latest/userguide/MultiRegionAccessPoints.html). Regiões da AWS O MRAP fornece um endpoint global para que os aplicativos acessem buckets S3 localizados em vários. Regiões da AWS O Iceberg não oferece suporte a caminhos relativos, mas você pode usar o MRAP para realizar operações do Amazon S3 mapeando buckets para pontos de acesso. O MRAP também se integra perfeitamente ao processo de replicação entre regiões do Amazon S3, o que introduz um atraso de até 15 minutos. Você precisa replicar os arquivos de dados e metadados.

**Importante**  
Atualmente, a integração do Iceberg com o MRAP funciona somente com o Apache Spark. Se você precisar fazer o failover para o secundário Região da AWS, planeje redirecionar as consultas do usuário para um ambiente Spark SQL (como o Amazon EMR) na região de failover.

Os recursos CRR e MRAP ajudam você a criar uma solução de replicação entre regiões para tabelas Iceberg, conforme ilustrado no diagrama a seguir.

![\[Replicação entre regiões para tabelas Iceberg\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/apache-iceberg-on-aws/images/cross-region-replication.png)


Para configurar essa arquitetura de replicação entre regiões:

1. Crie tabelas usando a localização do MRAP. Isso garante que os arquivos de metadados do Iceberg apontem para o local do MRAP em vez do local físico do bucket.

1. Replique arquivos Iceberg usando o Amazon S3 MRAP. ****O MRAP oferece suporte à replicação de dados com um contrato de nível de serviço (SLA) de 15 minutos. O Iceberg impede que as operações de leitura introduzam inconsistências durante a replicação.

1. Disponibilize as tabelas AWS Glue Data Catalog na região secundária. Você pode escolher entre duas opções:
   + Configure um pipeline para replicar os metadados da tabela Iceberg usando a replicação. AWS Glue Data Catalog Esse utilitário está disponível no repositório de [replicação do GitHub Glue Catalog e do Lake Formation Permissions](https://github.com/aws-samples/lake-formation-pemissions-sync). Esse mecanismo controlado por eventos replica tabelas na região de destino com base nos registros de eventos.
   + Registre as tabelas na região secundária quando precisar fazer o failover. Para essa opção, você pode usar o utilitário anterior ou o [procedimento register\$1table](https://iceberg.apache.org/docs/latest/spark-procedures/#register_table) do Iceberg e apontá-lo para o arquivo mais recente. `metadata.json`