现在,在我目前的架构中,我有一个模块,负责从Cassandra写入/读取数据,以及负责下载数据的模块。最近我开始使用Datastax和Spark。我想对新获得的数据进行一些转换。什么是正确的解决这个问题?我是否使用我的模块存储数据并单独进行Spark计算,或者使用Spark Streaming将下载的数据直接发送到Spark并在作业中将原始数据和转换后的数据保存到Cassandra?我在股票报价上操作,因此不断下载大量数据并进行大量转换。
答案 0 :(得分:2)
在我看来,最好将它分开。
首先存储原始数据然后处理它 以后更容易扩展和维护每个组件。
例如:如果你想在你的下载模块中更改一些内容,比如添加新的下载源或修复bug,它就不会影响在spark中完成的数据处理,并且改变在spark上运行的代码中的某些内容将不会产生任何影响(或引入错误)您下载的原始数据。