Consultar tabelas do Linux Foundation Delta Lake - Amazon Athena

Consultar tabelas do Linux Foundation Delta Lake

O Linux Foundation Delta Lake é um formato de tabela para análise de big data. É possível usar o Amazon Athena para ler tabelas Delta Lake armazenadas no Amazon S3 de forma direta, sem a necessidade de gerar arquivos de manifesto ou executar a instrução MSCK REPAIR.

O formato Delta Lake armazena os valores mínimo e máximo de cada arquivo de dados por coluna. A implementação do Athena usa essas informações para habilitar o salto de arquivos em predicados com a finalidade de eliminar arquivos indesejados da consideração.

Considerações e limitações

O suporte para o Delta Lake no Athena tem as limitações e considerações a seguir:

  • Somente tabelas com catálogo do AWS Glue: o suporte nativo do Delta Lake é compatível somente por meio de tabelas registradas no AWS Glue. Se você tiver uma tabela Delta Lake registrada em outro metastore, ainda poderá mantê-la e tratá-la como metastore principal. Como os metadados do Delta Lake são armazenados no sistema de arquivos (por exemplo, no Amazon S3) e não no metastore, o Athena requer somente a propriedade “location” no AWS Glue para ler as tabelas Delta Lake.

  • Somente versão 3 do mecanismo: as consultas do Delta Lake tem suporte somente na versão 3 do mecanismo do Athena. Você deve garantir que o grupo de trabalho criado esteja configurado para usar a versão 3 do mecanismo do Athena.

  • Nenhum suporte para passagem de tempo: não há suporte para consultas que usam as funcionalidades de passagem de tempo do Delta Lake.

  • Somente leitura: não há suporte para gravar instruções DML, como UPDATE, INSERT ou DELETE.

  • Compatibilidade com o Lake Formation: a integração com o Lake Formation está disponível para tabelas do Delta Lake com seu esquema sincronizado com o AWS Glue. Para obter mais informações, consulte Usar o AWS Lake Formation com o Amazon Athena e Configurar permissões para uma tabela do Delta Lake no Guia de desenvolvedor do AWS Lake Formation.

  • Suporte DDL limitado: as instruções DDL a seguir são compatíveis: CREATE EXTERNAL TABLE, SHOW COLUMNS, SHOW TBLPROPERTIES, SHOW PARTITIONS, SHOW CREATE TABLE e DESCRIBE. Para obter informações sobre como usar a instrução CREATE EXTERNAL TABLE, consulte a seção Conceitos básicos.

  • Não é possível ignorar objetos do S3 Glacier: se os objetos na tabela do Linux Foundation Delta Lake estiverem em uma classe de armazenamento do Amazon S3 Glacier, definir a propriedade da tabela read_restored_glacier_objects como false 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 comando ALTER TABLE não gera um erro, mas os objetos do Amazon S3 Glacier ainda assim não são ignorados. A execução de consultas SELECT após o comando ALTER TABLE continua a retornar todos os objetos.

Versionamento do Delta Lake e do Athena

O Athena não usa o versionamento listado na documentação do Delta Lake. Para determinar se as tabelas do Delta Lake são compatíveis com o Athena, considere estas duas características:

  • Versão do leitor: cada tabela do Delta Lake tem uma versão de leitor. Atualmente, a versão é um número de 1 a 3. Consultas que incluírem uma tabela com uma versão de leitor não compatível com o Athena apresentarão falhas.

  • Características da tabela: cada tabela do Delta Lake também pode declarar um conjunto de atributos de leitor/gravador. Como o Athena é compatível com o Delta Lake apenas para leitura, a compatibilidade do atributo de gravação de tabelas não se aplica. Porém, consultas em tabelas com atributos de leitura de tabela não compatíveis apresentarão falhas.

A tabela a seguir mostra as versões e os atributos do leitor de tabela do Delta Lake que são compatíveis com o Athena.

Tipo da consulta Versões de leitor compatíveis Atributos de leitor compatíveis
DQL (instruções SELECT) <= 3 Mapeamento de colunas, timestampNtz, vetores de exclusão
DDL <= 1 Não aplicável. Os atributos de leitor só podem ser declarados em tabelas com um leitor versão 2 ou superior.

Para criar uma tabela do Delta Lake no Athena com uma versão de leitor acima de 1, consulte Sincronizar metadados do Delta Lake.