无法通过Athena Hive数据连接器在Athena中读取Hive ACID表

0

【以下的问题经过翻译处理】 您好,我们正尝试将Athena用作我们的数据消费服务。我们已将大多数Hive数据库/表从外部Hive元存储迁移到了AWS Glue,除了那些具有Hive ACID表的数据库,因为Glue不支持Hive ACID表。为了从Athena读取Hive ACID表,我们根据这篇文章https://docs.aws.amazon.com/athena/latest/ug/connect-to-data-source-hive.html配置了Hive的Athena连接器,并使用了AthenaHiveMetastoreFunctionWithLayer jar。

当尝试使用新创建的Hive自定义目录从Athena查询Hive ACID表(基于ORC文件格式)时,我收到以下错误消息。

"HIVE_CURSOR_ERROR: Failed to read ORC file: s3://my-datalake-bkt-dev/test/acid/ug/base_0000002/bucket_00000"

看起来Athena无法读取Hive ACID文件格式。有人能帮帮我吗?

profile picture
专家
已提问 5 个月前5 查看次数
1 回答
0

【以下的回答经过翻译处理】 你好,

最新的Athena引擎v2使用的是Presto 0.217版本,不支持Hive ACID表。我尝试使用这篇文章[(https://aws.amazon.com/blogs/big-data/amazon-emr-supports-apache-hive-acid-transactions/)和这篇文章(https://docs.aws.amazon.com/athena/latest/ug/connect-data-source-sar-hive.html)进行测试,并得到以下错误:

HIVE_INVALID_BUCKET_FILES: Hive table 'default.acid_tbl' is corrupt. Found sub-directory in bucket directory for partition:

Presto似乎仅支持从Presto 331开始读取ACID表。

然而,根据这个文档,Athena确实通过AWS LakeFormation管理的表或Iceberg支持ACID事务。如果您打算将Hive ACID表迁移到AWS上,我建议您查看AWS LakeFormation管理的表功能,该功能使用了相同的Glue目录。

参考: AWS lakeformation受管表博客系列

https://aws.amazon.com/blogs/big-data/part-1-effective-data-lakes-using-aws-lake-formation-part-1-getting-started-with-governed-tables/

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则