我正在使用Apache(Kafka-Storm-Cassandra)进行实时处理。我面临的问题是我不能直接在Cassandra上使用聚合查询(可以使用Datastax,但它是付费服务).Moreover ,我也考虑过使用mongodb,但这对于更频繁的写入并不好。因此,我正在考虑在暴风雨中进行所有计算,并将其存储到Cassandra中,并按小时左右移动到mongodb以执行我的进一步分析。
这是正确的方法还是有更好的选择来实现这一目标?
Also, How can I export data directly from Cassandra to mongodb prefebly using JAVA?
提前致谢!!
答案 0 :(得分:4)
在不了解您的全部要求的情况下,无法预测的插入/更新量是一种好的还是坏的方法。 Mongo不太适合重写,但它可以支持相当不错的编号。插入物重要的是你每单位时间有多少写作,并根据你可以做出决定。
我已经看到Mongo在服务器类机器上平均每秒写入1000-2000次写入,平均耗时4-5ms。当然Cassandra可以通过保证金来打败它,但如果你需要执行任何聚合,那么Mongo有更好的框架和功能。
对于导出和导入,可以使用flat csv。 Cassandra可以将数据导出到csv,MongoDB可以使用导出/导入选项从csv导入数据。
检查MongoImport并从cassandra导出, 例子可能是,
copy employee (emp_id, dept, designation, emp_name, salary)
to 'employee.csv';