1

我们正在寻求使用 MongoDB 或 HBase 构建一个内部实时分析系统(其他选项可能,但这是我们现在正在研究的两个。)我们选择这两个是因为:

  • 我们将记录大量事件,并希望能够水平和垂直扩展。
  • 我们将收到“长尾”请求——例如,“给我三年前这个项目的指标”——因此需要在大范围内进行实时查询,无论是时间还是其他值。

我们尝试将 MySQL 用于分析表,但表变得非常快,我们不希望我们的分析表成为 MySQL 系统其余部分的“死重”。(如果有人有洞察力,我愿意接受有关使用 MySQL 或其他分析表解决方案的建议。)

所以,问题是:我们经常需要在我们的分析数据存储和 MongoDB/Hbase 中进行实时查找和联接。例如,我们将在分析中存储一个表的“id”,但是对于任何请求,我们都必须将它“加入”它,例如“内容”表的“标题”和“内容”字段mysql。

有没有办法在 MongoDB/HBase 和 MySQL 之间进行 JOIN,或者这是我们必须自定义构建到我们的应用程序中的东西?如果我们在应用程序中构建它,我们将如何处理跨 MySQL 和 MongoDB/HBase 的大型数据集的自定义 JOIN?

4

1 回答 1

2

有没有办法在 MongoDB/HBase 和 MySQL 之间进行 JOIN...

MongoDB 对 JOIN 的支持绝对为零。如果您使用 MongoDB,您基本上必须构建自己的联接系统

HBase 建立在 Hadoop 之上,理论上,一些类似 JOIN 的语法是可能的

然而,MySQL 和 HBase 之间的连接几乎可以肯定是自定义代码。您可能需要考虑将 MySQL 数据复制HBase。

...需要在大范围内进行实时查询... “给我三年前这个项目的指标”

认识到这将是一个巨大的挑战,而且你不太可能找到任何“开箱即用”的东西来为你做这件事。

您需要对“实时”一词非常谨慎。听起来您想要“相对响应的查询”而不是“实时查询”。您将必须确定“相对响应”的范围,因为这将极大地影响您使用的成本和产品。

于 2012-04-16T23:44:39.883 回答