我有大量的json文件,总共> 100TB大小,每个json文件都是10GB bzip,每行包含一个json对象,它们存储在s3上
如果我想将json转换为csv(也存储在s3中),那么我可以直接将它们导入到redshift中,使用hadoop编写自定义代码是唯一的选择吗?
是否可以对json文件进行adhoc查询而不将数据转换为其他格式(因为我不想在每次需要进行查询时将它们转换为其他格式,因为源是生长)
答案 0 :(得分:3)
最快捷,最简单的方法是启动一个装有Hive的EMR集群来完成繁重的工作。通过使用JsonSerde,您可以轻松地将数据转换为csv格式。这只需要您将数据插入到JSON格式表中的CSV格式表中。
可以在这里找到处理JsonSerde的好教程:
http://aws.amazon.com/articles/2855
用于CSV格式的好库也是:
https://github.com/ogrodnek/csv-serde
EMR群集可能是短暂的,只有一个作业才需要,也可以跨越低成本的现场实例。
获得CSV格式后,Redshift COPY文档就足够了。