我们有一些相当大的数据集(用户事件和服务器日志信息 - >100 GB),这对于数据处理来说变得相当笨重。我看到了很多关于 NoSQL/Hadoop 等的活动,我想知道 SV 对配对解决方案有何看法。绝对理想的情况是:
- 我们的实时 MySQL 和 NoSQL/Hadoop 服务器之间类似“主从”的同步,但是又足够不同,因此我们可以构建自定义索引等。
- 能够在极短的时间内在 NoSQL/Hadoop 上运行标准聚合结果,例如:
- 对于 sum(*),event_type = 'blarg',在'日期 1'和'日期 2'之间,耗时小于 1 秒
- 给我在任意时间段内针对此页面及其子页面的所有搜索词(我们记录的)及其数量
- 更新开发人员机器的简单方法(<10 分钟)。
有什么想法吗?我们围绕 MySQL 尝试了许多解决方案,但没有一个能完美地满足所有这些要求。
答案1
MongoDB 很简单,现在具有自动分片功能。它的磁盘使用效率不高,因此您需要为其提供大量磁盘空间。它可以处理查询,但除非您希望它扫描数十亿条记录,否则它将需要索引。我们所做的是将摘要实际存储在 Mongo 中,因为如果您知道您的查询,您可以围绕它构建优化的数据结构并实现极高的效率。
您是否尝试过将 Infobright 与 MySQL 结合使用?它可以自动压缩,而且速度很快。对您来说,它应该足够了。
答案2
您需要自己编写某种适配器!