我使用InfiniDB将许多行(大约1-5亿行)聚合到大约5000个组中。(在大多数查询中,过滤了1亿到5亿行,因此聚合将处理较少的行)
它被用作一个网站的旅游搜索引擎的原型,你可以把它想象成“为特定人数的所有房间组合给我最好的每间住宿价格”。
它工作得很好,直到我不得不多次自连接表,以找到最优的价格组合(它已经通过逻辑过滤器减少了,所以每个连接的组合数量也减少了)
对我来说,将表的内容拆分到不同的表中是可能的,而且性能还可以接受,但现在我在问自己,对于这个问题,infinidb (或一般的面向列的数据库)是否是最好的解决方案。
有哪些替代方案?我认为每种map/reduce机制(mongodb,hadoop)都会慢得多,或者是我遗漏了什么?
它不应该需要超过2-5台服务器。
明确地说:我不期望一个“这将是完美的!”答案,但对替代方案有很好的提示。我也认为infinidb对于我的场景来说是一个糟糕的解决方案。
谢谢你的想法!
发布于 2012-11-18 02:31:58
我在9台机器上使用了infinidb3,这些机器上的表有超过300亿行,没有任何问题,即使是自连接。
给我一个ddl + dql的例子。也许我可以帮你改进查询。
在Infinidb之前,我们尝试了hbase / cassandra / mongodb和技术,但我们不喜欢它。对于5亿行,如果每天不超过2-3次,您可以使用简单的Mysql。
https://stackoverflow.com/questions/13002237
复制相似问题