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.

  • Versão do leitor Delta Lake — O protocolo do leitor Delta Lake até a versão 3 é suportado.

  • Suporte a vetores de exclusão: o Athena oferece suporte à leitura de tabelas do Delta Lake com vetores de exclusão. Os vetores de exclusão são um recurso de otimização de armazenamento que pode ser ativado nas tabelas do Delta Lake. Para obter mais informações, consulte O que são os vetores de exclusão? na documentação do Delta Lake.

  • Mapeamento de colunas e timestampNtz — O mapeamento de colunas Delta, que permite que as colunas da tabela Delta e as colunas subjacentes do arquivo Parquet usem nomes diferentes, e o timestamp sem fuso horário (timestampNtz) são suportados.

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