如何明确指定要拆分的文件大小或文件数量?

0

【以下的问题经过翻译处理】 情况:如果只指定partition子句,会被分成多个文件。一个文件的大小小于 1MB(约 40 个文件)。

我在想什么f:我想在使用CTAS或INSERT INTO注册数据时明确指定要拆分的文件的大小或文件的数量。

我读过这篇文章:https://aws.amazon.com/premiumsupport/knowledge-center/set-file-number-size-ctas-athena/

问题:使用分桶方法(如上文所述)可以帮助我指定文件数或文件大小。但是,它还说“注意:分桶表不支持 INSERT INTO 语句”。我想每天使用 Athena 的 INSERT INTO 注册数据。

问题:在不影响搜索效率的情况下构建分区数据集市的最佳方法是什么?最好用 Glue 注册数据并将其保存为一个文件吗?

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

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

是的。您说得对,分桶表尚不支持 INSERT INTO。对于您想要指定存储桶数量/文件大小的用例,使用 Athena 存储桶是合适的,但缺点是无法使用 INSERT INTO 插入新的传入数据。

但是,我可以建议在 AWS EMR 上使用 S3distcp 实用程序将小文件合并为 ~128MB 大小,以解决您的小文件问题。您可以使用它将较小的文件组合成较大的对象。您还可以使用 S3DistCP 以优化的方式将大量数据从 HDFS 移动到 Amazon S3、从 Amazon S3 到 Amazon S3,以及从 Amazon S3 到 HDFS。

参考:

https://docs.aws.amazon.com/emr/latest/ReleaseGuide/UsingEMR_s3distcp.html

<https://aws.amazon.com/blogs/big-data/seven-tips-for-using-s3distcp-on-amazon-emr-to-move-data-efficiently-between-hdfs-and-amazon-s3 />

profile picture
专家
已回答 10 个月前

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

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

回答问题的准则