【发布时间】:2016-08-16 22:26:00
【问题描述】:
我正在处理传感器数据(时间序列)。一个表的列数为 3000。
例如:nodeid,timestamp,sen1,sen2,.....sen-n。 nodeid 和 timestamp 是主键,按时间戳排序。
记录数为10000。
当通过 cassandra datastax java 驱动程序 3.0 请求单列 (SELECT timestamp,sen1 FROM <table>) 的 SELECT 查询时,它会在 15 秒内回复;即,如果我想读取所有标签,则一次一个标签对于所有 3000 个标签大约需要 3000*15 秒 = 12 到 13 小时。 它位于具有 16GB RAM 的单节点集群上。
我为 JVM 分配了 10GB。仍然没有改变响应时间。我在创建表时使用了 LevelCompactionStragy。
硬件:Intel Core i7 和普通硬盘不是 SSD,8GB RAM 如何减少单节点集群上的读取或查询时间?
【问题讨论】:
-
您能提供硬件规格吗? CPU 核心数 ?旋转硬盘还是SSD?
-
一个节点集群是个坏主意。最好有一个 SQL 解决方案。如果您想真正测试 Cassandra,请尝试向集群中添加更多节点并多考虑架构。