我需要一个系统来读取S3存储桶以进行分析。存储桶分为年/月/日/小时,其中每个小时文件夹包含很多压缩文件,总计超过2GB。
这是要使用boto3在Python中编写脚本的东西吗?寻找任何一般方向。
Amazon Athena可以跨Amazon S3中存储的多个文件运行类似SQL的查询。
可以使用gzip压缩文件。实际上,Athena将在压缩文件上运行得更快,更便宜,因为您只需为从磁盘扫描的数据量付费。
Amazon S3中给定文件夹(路径)中的所有文件必须采用相同格式。例如,如果它们是gzip格式的CSV文件,则所有文件必须具有相同顺序的相同列数。
然后,您可以在Amazon Athena中使用CREATE TABLE,该表定义了数据文件中的列以及数据的位置。这是最难的部分,因为您必须正确定义格式。
然后,您可以运行SQL SELECT命令来查询数据,该数据将应用于指定文件夹中的所有文件。
将来,如果要添加或删除数据,只需更新文件夹的内容。该SELECT
命令始终在运行该命令时查看该文件夹中的文件。
鉴于您需要“对customer_id的不同值进行计数,并在所有文件中按item_id对它们进行分组”,将类似于:
SELECT
item_id,
COUNT(DISTINCT customer_id)
FROM table
GROUP BY 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句