Consultar tabelas do Linux Foundation Delta Lake
O Linux Foundation Delta LakeMSCK 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
ouDELETE
. -
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
eDESCRIBE
. Para obter informações sobre como usar a instruçãoCREATE 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
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.
Versionamento do Delta Lake e do Athena
O Athena não usa o versionamento
-
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 |
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 obter uma lista dos recursos de tabela do Delta Lake, consulte Valid feature names in table features
no GitHub.com -
Para ver uma lista dos atributos do Delta Lake por versão de protocolo, consulte Features by protocol version
no GitHub.com.
Para criar uma tabela do Delta Lake no Athena com uma versão de leitor acima de 1, consulte Sincronizar metadados do Delta Lake.