Java 如何将数据从Cassandra导出到mongodb?

Java 如何将数据从Cassandra导出到mongodb?,java,mongodb,cassandra,export,apache-storm,Java,Mongodb,Cassandra,Export,Apache Storm,我正在使用Apache(Kafka Storm Cassandra)进行实时处理。我面临的问题是,我无法直接在Cassandra上使用聚合查询(可以使用Datastax,但它是一项付费服务)。此外,我还考虑使用mongodb,但它不适合更频繁的写入。所以,我想在storm中进行所有计算,并将其存储到Cassandra中,然后每小时将其移动到mongodb,以执行进一步的分析 这是正确的方法还是有更好的选择来实现这一点 Also, How can I export data directly fr

我正在使用Apache(Kafka Storm Cassandra)进行实时处理。我面临的问题是,我无法直接在Cassandra上使用聚合查询(可以使用Datastax,但它是一项付费服务)。此外,我还考虑使用mongodb,但它不适合更频繁的写入。所以,我想在storm中进行所有计算,并将其存储到Cassandra中,然后每小时将其移动到mongodb,以执行进一步的分析

这是正确的方法还是有更好的选择来实现这一点

Also, How can I export data directly from Cassandra to mongodb prefebly using JAVA?

提前谢谢

在不了解您的全部需求的情况下,插入/更新的数量无法预测这是一种好方法还是坏方法。Mongo不太适合大量写入,但它可以支持大量插入。所以重要的是你每单位时间有多少次写作,你可以据此做出决定

我见过Mongo在服务器级机器上每秒写入1000-2000次,平均速度为4-5ms。当然,Cassandra比它略胜一筹,但如果您需要执行任何聚合,那么Mongo具有更好的框架和功能

对于导出和导入,可以使用平面csv。 Cassandra可以将数据导出到csv,MongoDB可以使用导出/导入选项从csv导入数据

检查并确认是否从卡桑德拉出口, 例如

copy employee (emp_id, dept, designation, emp_name, salary)
 to 'employee.csv';

谢谢你的回复。我需要设计一个系统,跟踪电子商务网站上的用户活动。写入的数量将完全取决于网站上的用户流量。因此,目前我不确定每秒写入的数量。您不需要确切的数量。您可以在一段时间(一天或一周)内监控流量,然后您可以了解高峰小时负载是多少。如果您的应用程序不够大,那么我认为您的写入速度将低于每秒100-200次。如果是这样的话,那么MongoDB就足够了。这将节省导出/导入时间,并允许聚合查询。但请记住,如果您在工作时间运行聚合查询,您的查询时间/处理时间将增加,并可能影响性能。最好的方法是隔夜或在负载最小的情况下处理聚合查询。目前,我们只有很少的客户端(只有2个),因此此时的写入次数较少。但我们希望有更多的客户端,所以我们不希望达到需要回滚和破坏现有系统的程度。聚合查询将由客户端运行,以检查该页面上的分析报告(类似于google analytics report),因此这不在我们的控制之下。据我了解,到目前为止,我认为最好的设计是创建一个MongoDB服务器集群。虽然目前您有2个用户,但假设将来它会增加到1K-10K用户,但仍然基于分布,我认为每秒插入/更新不会增加1000。这意味着您的insert/update is问题在相当长的一段时间内得到了解决(如果增加的值超过了假定值,则需要增加集合的集群大小/分区)。在群集中,仅将某些副本用于具有中间同步因子的聚合查询,这不会因为同步问题而增加此副本服务器的开销。这将为您的分析报告查询提供服务。我希望你能理解我的设计建议。