在MySQL和MongoDB/HBase上连接分析数据

问题描述:

我们正在寻找使用MongoDB或HBase构建内部实时分析系统(其他选项可能,但这些是我们现在正在考虑的两个)。我们选择了这些两个因为:在MySQL和MongoDB/HBase上连接分析数据

  • 我们将录制大量的事件,并希望能够以 的横向和纵向缩放。
  • 我们将得到“长尾”请求 - 例如,“给我三年前这个项目的指标” - 因此需要在大范围内进行实时查询,无论是时间还是其他值。

我们尝试将MySQL用于分析表,但表格速度非常快,我们不希望我们的分析表成为我们MySQL系统其余部分的“重量级”。 (如果任何人有洞察力,我可以建议使用MySQL或其他分析表解决方案。)

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

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

有没有办法做到跨越的MongoDB/HBase的和MySQL的JOIN ...

MongoDB的具有JOIN的绝对零支持。如果您使用MongoDB,基本上必须建立自己的连接系统。

HBase建立在Hadoop之上,理论上,some JOIN-like syntax is possible

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

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

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

您需要对“实时”这个术语非常审慎。这听起来像你想要“相对敏感的查询”而不是“实时查询”。您必须将“相对敏感”作为范围,因为这将大大影响您使用的成本和产品。

+0

对不起,当我说“JOIN”时,我非常肯定我必须做“应用程序级连接”,但是想知道其他人是否曾经这样做过。我意识到这必须是一个自定义构建。 – Suman 2012-04-17 14:12:20

+0

关于“相对敏感的查询”与“实时查询”:这是否取决于MongoDB/HBase /其他选择?或者关键的选择?还是其他因素? – Suman 2012-04-17 14:13:24

+0

其他方法,你必须选择你想要的查询类型,然后使用适当的工具。*“实时”*通常指*“过去15分钟发生了什么”*。但是你正在谈论的是从3年前用一些用户定义的字段获取数据。这是一个即席查询,并且与“实时”无关,您只需要该查询在合理的时间内做出响应。 – 2012-04-17 18:57:09