É possível usar o Athena para realizar consultas de leitura, viagem no tempo, gravação e DDL em tabelas do Apache Iceberg. As tabelas do Iceberg devem usar o formato Apache Parquet para dados e o catálogo do AWS Glue para sua metastore.
Apache Iceberg
Para obter mais informações sobre o Apache Iceberg, consulte https://iceberg.apache.org/
Considerações e limitações
O suporte do Athena para tabelas Iceberg tem as seguintes considerações e limitações:
-
Suporte à versão Iceberg — O Athena é compatível com o Apache Iceberg versão 1.4.2.
-
Tabelas somente com catálogo do AWS Glue: apenas tabelas Iceberg criadas com base no catálogo do AWS Glue de acordo com as especificações definidas pela implementação de código aberto do catálogo do Glue
são compatíveis com o Athena. -
Suporte de bloqueio de tabela apenas pelo AWS Glue: ao contrário da implementação de código aberto do catálogo do Glue, que oferece suporte ao bloqueio personalizado de plug-in, o Athena oferece suporte apenas ao bloqueio otimista do AWS Glue. Usar o Athena para modificar uma tabela do Iceberg com qualquer outra implementação de bloqueio causará perda de dados e quebra de transações.
-
Formatos de arquivo compatíveis: a versão 3 do mecanismo Athena oferece suporte aos formatos de arquivo do Iceberg apresentados a seguir.
-
Parquet
-
ORC
-
Avro
-
-
Metadados restritos do Iceberg: o Lake Formation não avalia as tabelas de metadados do Iceberg. Portanto, as tabelas de metadados do Iceberg serão restritas se houver algum filtro de linha ou célula do Lake Formation presente na tabela base ou se você não tiver permissões para visualizar todas as colunas na tabela base. Nesses casos, quando você consulta as tabelas de metadados do Iceberg
$partitions
,$files
,$manifests
e$snapshots
, a consulta falha e você recebe um erroAccessDeniedException
. Além disso, a coluna de metadados$path
tem as mesmas restrições do Lake Formation e falha quando selecionada pela consulta. Todas as outras tabelas de metadados podem ser consultadas independentemente dos filtros do Lake Formation. Para obter mais informações, consulte Tabelas de metadados. -
Tabelas Iceberg v2: o Athena só cria e opera tabelas Iceberg v2. Para saber a diferença entre as tabelas da v1 e v2, consulte Alterações de versão do formato
na documentação do Apache Iceberg. -
Exibição de tipos de hora sem fuso horário: a hora e o timestamp sem tipos de fuso horário são exibidos no UTC. Se o fuso horário não for especificado em uma expressão de filtro em uma coluna de hora, o UTC será usado.
-
Precisão dos dados relacionados ao timestamp: embora o Iceberg seja compatível com uma precisão de microssegundos para o tipo de dados de timestamp, o Athena é compatível apenas com a precisão de milissegundos para timestamps em leituras e gravações. Para dados em colunas relacionadas a horas gravadas durante operações de compactação manual, o Athena retém somente uma precisão de milissegundos.
-
Operações sem suporte: as seguintes operações do Athena não são compatíveis com tabelas Iceberg.
-
Visualizações: use
CREATE VIEW
para criar visualizações do Athena, conforme descrito em Trabalhar com visualizações. Se você tiver interesse em usar a especificação de visualização do Icebergpara criar visualizações, entre em contato com athena-feedback@amazon.com . -
Comandos de gerenciamento de TTF não compatíveis com o AWS Lake Formation: embora seja possível usar o Lake Formation para gerenciar permissões de acesso de leitura para TransactionTable Formats (TTFs), como Apache Iceberg, Apache Hudi e Linux Foundation Delta Lake, não é possível usar o Lake Formation para gerenciar permissões para operações como
VACUUM
,MERGE
,UPDATE
ouOPTIMIZE
com esses formatos de tabela. Para obter mais informações sobre a integração do Lake Formation com o Athena, consulte Usar o AWS Lake Formation com o Amazon Athena no Guia do desenvolvedor do AWS Lake Formation. -
Particionar por campos aninhados - A partição por campos aninhados não é suportada. A tentativa de fazer isso produz a mensagem
NÃO SUPORTADO:
particionar por campo aninhado não é suportado: column_name.nested_field_name
. -
Não é possível ignorar objetos do S3 Glacier: se os objetos na tabela do Apache Iceberg estiverem em uma classe de armazenamento do Amazon S3 Glacier, definir a propriedade da tabela
read_restored_glacier_objects
comofalse
não terá efeito.Por exemplo, suponhamos que você emita o seguinte comando:
ALTER TABLE
table_name
SET TBLPROPERTIES ('read_restored_glacier_objects' = 'false')Para tabelas do Iceberg e do Delta Lake, o comando gera o erro
Chave de propriedade da tabela não compatível:
read_restored_glacier_objects. Para tabelas do Hudi, o comandoALTER TABLE
não gera um erro, mas os objetos do Amazon S3 Glacier ainda assim não são ignorados. A execução de consultasSELECT
após o comandoALTER TABLE
continua a retornar todos os objetos.
Se quiser que o Athena ofereça suporte a recurso específico, envie comentários para athena-feedback@amazon.com