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

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
EXPERTE
gefragt vor 7 Monaten13 Aufrufe
1 Antwort
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
EXPERTE
beantwortet vor 7 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen