我希望以这种方式存储针对流数据运行的连续查询的结果,以便将结果保存到分布式节点中以确保故障转移和可伸缩性。
Spark SQL专家可以了解一下 - (1)我应该选择哪个存储选项,以便OLAP查询更快 - (2)即使一个节点关闭,如何确保可用于查询的数据 - (3)内部Spark SQL如何存储结果集?
由于 Kaniska
答案 0 :(得分:1)
这取决于你能承受的延迟。
一种方法是使用Persist()
API将结果保存到HDFS / Cassandra中。如果您的数据很小,那么每个RDD的cache()
应该会给您带来好结果。
存储您的spark执行器所在的位置。例如:
tachyon
)来保存您的信息流(即信息流的每个RDD)并对其进行查询。postgres
或mysql
。这是许多方法中的首选方法,因为查询时间是一致且可预测的。如果结果不是更新但是分区(比如按时间),那么Greenplum
类似的系统也是一种选择。