1

MongoDB または HBase を使用して内部のリアルタイム分析システムを構築しようとしています (他のオプションも可能ですが、現在検討しているのはこれら 2 つです)。これら 2 つを選択した理由は次のとおりです。

  • 膨大な数のイベントを記録する予定であり、水平方向および垂直方向にスケーリングできるようにしたいと考えています。
  • 「ロングテール」のリクエスト (たとえば、「3 年前のこのアイテムの指標を教えてください」) を受け取るため、時間またはその他の値に関係なく、広い範囲でリアルタイムのクエリを実行する必要があります。

分析テーブルに MySQL を使用しようとしましたが、テーブルが非常に速く大きくなり、分析テーブルが MySQL システムの残りの部分の「自重」になることは望ましくありません。(誰かが洞察を持っている場合は、分析テーブルに MySQL やその他のソリューションを使用することについてアドバイスをお待ちしています。)

問題は、多くの場合、分析データ ストアと MongoDB/Hbase の両方でリアルタイムのルックアップと JOIN を実行する必要があるということです。たとえば、テーブルの「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にコピーすることを検討してください。

...広い範囲でリアルタイムのクエリを実行する必要があります... 「この項目の 3 年前の指標を教えてください」

これはとてつもない挑戦であり、これを行う「すぐに使える」ものを見つける可能性は低いことを認識してください.

「リアルタイム」という用語については、十分に注意する必要があります。「リアルタイムクエリ」ではなく「比較的応答性の高いクエリ」が必要なようです。これは、コストと使用する製品の両方に大きな影響を与えるため、「比較的応答性が高い」範囲を設定する必要があります。

于 2012-04-16T23:44:39.883 に答える