

# Consultar dados de tabelas do Iceberg
<a name="querying-iceberg-table-data"></a>

Para consultar um conjunto de dados Iceberg, use a instrução `SELECT` padrão, como a que se segue. As consultas atendem à [especificação de formato v2](https://iceberg.apache.org/spec/#format-versioning) do Apache Iceberg e realizam a mesclagem na leitura das exclusões de posição e igualdade.

```
SELECT * FROM [db_name.]table_name [WHERE predicate]
```

Para otimizar os tempos de consulta, todos os predicados são enviados para onde os dados residem.

Para obter informações sobre consultas de viagem no tempo e viagem nas versões, consulte [Executar consultas de viagem no tempo e viagem nas versões](querying-iceberg-time-travel-and-version-travel-queries.md).

## Criar e consultar visualizações com tabelas do Iceberg
<a name="querying-iceberg-views"></a>

Para criar e consultar visualizações do Athena em tabelas do Iceberg, use visualizações `CREATE VIEW` conforme descrito em [Trabalhar com visualizações](views.md).

Exemplo:

```
CREATE VIEW view1 AS SELECT * FROM iceberg_table
```

```
SELECT * FROM view1 
```

Se você tiver interesse em usar a [especificação de visualização do Iceberg](https://github.com/apache/iceberg/blob/master/format/view-spec.md) para criar visualizações, entre em contato com [athena-feedback@amazon.com](mailto:athena-feedback@amazon.com). 

## Consultar metadados de tabelas do Iceberg
<a name="querying-iceberg-table-metadata"></a>

Em uma consulta `SELECT`, é possível usar as seguintes propriedades após *table\$1name* para consultar metadados de tabela do Iceberg:
+ **\$1files**: mostra os arquivos de dados atuais de uma tabela.
+ **\$1manifests**: mostra os manifestos do arquivo atual de uma tabela.
+ **\$1history**: mostra o histórico de uma tabela.
+ **\$1partitions**: mostra as partições atuais de uma tabela.
+ **\$1snapshots**: mostra os snapshots de uma tabela.
+ **\$1refs**: mostra as referências de uma tabela.

### Exemplos
<a name="querying-iceberg-table-metadata-syntax"></a>

A instrução a seguir lista os arquivos de uma tabela do Iceberg.

```
SELECT * FROM "dbname"."tablename$files"
```

A instrução a seguir lista os manifestos de uma tabela do Iceberg.

```
SELECT * FROM "dbname"."tablename$manifests" 
```

A instrução a seguir mostra o histórico de uma tabela do Iceberg.

```
SELECT * FROM "dbname"."tablename$history"
```

O exemplo a seguir mostra as partições de uma tabela do Iceberg.

```
SELECT * FROM "dbname"."tablename$partitions" 
```

O exemplo a seguir lista os snapshots de uma tabela do Iceberg.

```
SELECT * FROM "dbname"."tablename$snapshots" 
```

O exemplo a seguir mostra as referências de uma tabela do Iceberg.

```
SELECT * FROM "dbname"."tablename$refs" 
```

## Usar o controle de acesso detalhado do Lake Formation
<a name="querying-iceberg-working-with-lf-fgac"></a>

A versão 3 do mecanismo do Athena é compatível com o controle de acesso detalhado do Lake Formation com tabelas do Iceberg, incluindo o controle de acesso de segurança em nível de coluna e de linha. Esse controle de acesso funciona com consultas de passagem de tempo e com tabelas que realizaram a evolução do esquema. Para obter mais informações, consulte [Controle de acesso detalhado do Lake Formation e grupos de trabalho do Athena](lf-athena-limitations.md#lf-athena-limitations-fine-grained-access-control).

Se a criação da sua tabela do Iceberg ocorreu exterior ao Athena, use o [SDK do Apache Iceberg](https://iceberg.apache.org/releases/), versão 0.13.0 ou superior, para que as informações da coluna da tabela do Iceberg sejam preenchidas no AWS Glue Data Catalog. Se a tabela do Iceberg não contiver informações de coluna no AWS Glue, você poderá usar a instrução [ALTER TABLE SET TBLPROPERTIES](querying-iceberg-alter-table-set-properties.md) do Athena ou o SDK do Iceberg mais recente para corrigir a tabela e atualizar as informações da coluna no AWS Glue. 