我在S3中有一个雅典娜数据表,它充当源表,列为id
、name
、event
。对于该表中的每个唯一name
值,我希望输出一个新表,其中包含与该name
值相对应的所有行,并将其保存到S3中的不同存储桶中。这将导致存储在S3中的n个新文件,其中n也是源表中唯一的name
值的数目。
我尝试过使用PARTITION BY
和CTAS查询Lambda中的单个雅典娜查询,但似乎无法得到我想要的结果。看起来AWS Glue可能能够得到我预期的结果,但我在网上读到它更昂贵,也许我可以使用Lambda获得我的预期结果。
如何存储一个新文件(最好是JSON格式),其中包含与每个唯一的name
对应的行( S3? )
最好是每天运行一次,以更新name
存储的数据,但目前主要关注的是上面的问题。
发布于 2020-02-25 01:51:49
当您编写星火/胶水代码时,需要使用name列对数据进行分区。但是,这将导致具有以下格式的路径
S3://桶名/文件夹/name=value/file.json
这将为每个名称值提供一组单独的文件,但如果您想作为一个单独的表访问该文件,则在抓取数据并通过雅典娜提供数据之前,您可能需要从键中去掉该=签名。
如果您确实使用lambda,则操作包括遍历数据,类似于glue所做的操作,并对数据进行分区。
我想这一切都取决于它需要处理的数据量。胶水,如果使用火花可能会有一点额外的启动时间。胶水蟒壳有较好的启动时间。
https://stackoverflow.com/questions/60201185
复制