spark-sql导入大批量数据
来源:7-4 -目标
weibo_飞的猪头_0
2018-05-13
老师您好, 现在mongodb存储大量的冷数据, 平时很少用到, 硬盘占用500G左右, 索引(订票日期)就需要占用13G的内存, 而且还在不断增加。
目前, 个人觉得使用mongodb存储这类数据比较昂贵,考虑将这些数据以订票日期作为分区使用列式存储到hdfs上, 在需要查询的时候使用sqark-sql将其取出。现在有2个问题
如何进行数据迁移,可否使用spark-packages网站上mongodb的外部数据源读取成dateframe, 然后回写到hdfs。或者将mongodb数据导出成json文件(不确定并行度),然后sqark-sql读取回写。个人感觉第一种还要好一些, 可以使用sqark中spark.default.parallelism的并行粒度,可以并行导出,像这种大量数据转换的问题, 老师是怎么处理的。
数据迁移到hdfs之后, 相比于以前节省了内存。同时列式的存储,分区的设置, 可以读取更少的数据, 同时可以利用sqark进行多任务并行处理, 理论时候在查询性能上比以前更好或者不相上下.
写回答
1回答
-
首先:你的这个做法应该是可行的。
对于冷数据来说,一般都是要定期备份走的,不会长期放在集群上的。
spark对接mongodb,可以直接使用packages里面的处理是没有问题的。
迁移到hdfs之后,可以采用列式存储+压缩的方式来提升各方面的性能
012018-05-14
相似问题