

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

# Trabalhando com tabelas Iceberg usando o Athena SQL
<a name="iceberg-athena"></a>

O Amazon Athena fornece suporte integrado para o Apache Iceberg e não exige etapas ou configurações adicionais. Esta seção fornece uma visão geral detalhada dos recursos suportados e orientações de alto nível sobre o uso do Athena para interagir com as tabelas Iceberg.

## Compatibilidade de versões e recursos
<a name="athena-version"></a>

### Suporte à especificação da tabela Iceberg
<a name="athena-table-spec"></a>

A especificação da tabela Apache Iceberg especifica como as tabelas Iceberg devem se comportar. O Athena oferece suporte ao formato de tabela versão 2, portanto, qualquer tabela Iceberg que você criar com o console, a CLI ou o SDK usa essa versão inerentemente.

[Se você usa uma tabela Iceberg criada com outro mecanismo, como o Apache Spark no Amazon EMR ou AWS Glue, certifique-se de definir a versão do formato da tabela usando as propriedades da tabela.](https://iceberg.apache.org/docs/latest/configuration/#reserved-table-properties) Como referência, consulte a seção [Criando e escrevendo tabelas Iceberg](iceberg-spark.md#spark-create-data) anteriormente neste guia.

### Suporte ao recurso Iceberg
<a name="athena-feature"></a>

Você pode usar o Athena para ler e gravar em tabelas Iceberg. Quando você altera os dados usando as `DELETE FROM` instruções`UPDATE`, e`MERGE INTO`, o Athena suporta somente o merge-on-read modo. Essa propriedade não pode ser alterada. Para atualizar ou excluir dados com copy-on-write, você precisa usar outros mecanismos, como o Apache Spark no Amazon EMR ou. AWS Glue A tabela a seguir resume o suporte aos recursos do Iceberg no Athena.


<table>
<thead>
  <tr><th colspan="2"></th><th colspan="2">Suporte DDL</th><th colspan="2">Suporte a DML</th><th>AWS Lake Formation para segurança (opcional)</th></tr>
</thead>
<tbody>
  <tr><td></td><td>Formato da tabela</td><td>Create table</td><td>Evolução do esquema</td><td>Leitura de dados</td><td>Gravação de dados</td><td>Controle de acesso de linha/coluna</td></tr>
  <tr><td rowspan="2">Amazon Athena</td><td rowspan="2">Versão 2</td><td rowspan="2">✓</td><td rowspan="2">✓</td><td rowspan="2">✓</td><td>XC opy-on-write</td><td>✓</td></tr>
  <tr><td>✓ M erge-on-read</td><td>✓</td></tr>
</tbody>
</table>


**nota**  
O Athena não oferece suporte a consultas incrementais.
No Athena, as operações de atualização, exclusão e mesclagem sempre usam como padrão a mesclagem na leitura (MoR), independentemente de qualquer configuração de cópia na gravação (CoW) nas propriedades da tabela, porque o CoW não é suportado.

## Trabalhando com mesas Iceberg
<a name="athena-tables"></a>

Para começar rapidamente a usar o Iceberg no Athena, consulte a [seção Introdução às tabelas do Iceberg no Athena](getting-started.md) SQL, anteriormente neste guia. 

A tabela a seguir lista as limitações e recomendações.


| **Cenário** | **Limitação** | **Recomendação** | 
| --- |--- |--- |
| Tabela de geração de DDL | As tabelas de iceberg criadas com outros mecanismos podem ter propriedades que não estão expostas no Athena. Para essas tabelas, não é possível gerar o DDL. | Use a instrução equivalente no mecanismo que criou a tabela (por exemplo, a `SHOW CREATE TABLE` instrução do Spark). | 
| Prefixos aleatórios do Amazon S3 em objetos que são gravados em uma tabela Iceberg | Por padrão, as tabelas do Iceberg criadas com o Athena têm `write.object-storage.enabled` a propriedade ativada. | Para desativar esse comportamento e obter controle total sobre as propriedades da tabela Iceberg, crie uma tabela Iceberg com outro mecanismo, como o Spark no Amazon EMR ou. AWS Glue | 
| Consultas incrementais | Atualmente, não há suporte no Athena. | Para usar consultas incrementais para permitir pipelines incrementais de ingestão de dados, use o Spark no Amazon EMR ou. AWS Glue | 