有大约6百万条记录的数据集。每个记录具有相同数量的字段。有8个领域共:针对特定需求的最佳SQL NoSQL解决方案?
ID Title Color Date1 Date2 Date3 Date4...
应该有由标题和所有日期字段(或在RDBMS而言,“列”)来过滤这些记录的方式。
数据的大小并不是很大,几千兆字节。我们没有很长的文本字段等(我们在架构创建过程中摆脱了它们,所以现在我们在数据集中只有非常重要的字段)。
后台读取&写入数据相当密集。我们真的希望尽可能加快读取\写入(并按字段进行过滤)。目前我们使用的是Postgres,我们喜欢它的可靠性,但看起来并不是很快。是的,我们做了一些调整和优化,增加了索引,将它安装在32GB内存的机器上,并设置了所有必要的设置。换句话说,它可行,但我仍然相信它可能会更好。我们需要的是速度:按日期和标题过滤记录应该快速,非常快。数据插入可能会比较慢。后端过滤所有未处理的记录,处理它,并设置日期标记(处理日期时间)。每5-10秒就会有大约50个后端“工人”执行,因此数据库应该能够执行得非常快。我们也做一些数据库迭代(一种map \ reduce作业),所以数据库解决方案应该能够执行这种类型的任务(这里RDBMS并不是很好)。
我们没有加入,数据已经针对大数据解决方案进行了优化。只有一个'大桌子'。
而且我们希望在单个节点上或许多小型实例上运行它。数据并不重要。但是我们希望避免使用昂贵的解决方案,所以我们正在寻找一种SQL或NoSQL解决方案,这种解决方案在相同便宜的硬件上执行速度会比Postgres快。
我记得大约一两年前我尝试过MongoDB。从我记忆中来看,过滤并不是那么快。卡桑德拉更好,但我记得它只能执行一小部分过滤查询。 Riak很好,但只适用于拥有很多机器的大集群。这是我非常基本的经验,如果你们知道这些解决方案中的一个表现出色,请写下。或建议另一种解决方案
谢谢!
“数据量不是很大,几千兆字节。” - 这对Postgres来说很小。它可以(并且确实)处理数千次更大的数据库而没有任何性能问题。坚持你目前使用的是什么;只是学会更好地使用它。 –