每日使用Cassandra的数据更新数据库

时间:2017-09-01 00:36:56

标签: java database cassandra

如果我在服务器A上有一个Cassandra数据库,并且我在服务器B上有一个数据库,我想用我的Cassandra数据库每天更新一次数据,那么我应该用什么技术来完成这个?

我听到的任何讨论都围绕着选择HTTP流式传输或分页。

为什么人们建议使用HTTP流媒体或分页作为这样做的方法? 挑选是否有任何缺点或好处?

1 个答案:

答案 0 :(得分:2)

这是我的专业意见,但要回顾一下评论

  

服务器A上的cassandra数据库和服务器B上的数据库

无论你写什么,都必须能够与服务器B实际通信。因此,你只能使用你可以使用的工具/方法。

  

我想用我的cassandra数据库每天更新一次数据

长时间运行批处理作业并不理想,因为它们可能随时出现故障并需要重新启动。因此,我建议对cron,Oozie,Airflow等预定服务进行一次性操作。

  

http流媒体或分页

关于分页,这是一个合理的解决方案,但只是确保您的客户端支持它,如果它很慢,您可以设置多线程。

我个人对Cassandra没有任何经验,只有它才能流出来。而它正在使用Kafka的Spark Streaming。我很确定这是二进制协议,但不是http。我在Cassandra上找不到关于REST流的任何内容,但除非你真的擅长优化并发操作,否则将自己的REST端点放在Cassandra之上并不是一个好主意

回到工具/方法,我提到了Spark,我知道Cassandra有一个很好的Spark Connector,所以这是我的建议。如果您的数据库B使用JDBC,那么您可以直接从Spark加载数据,可能少于10行