0

私は InfiniDB を使用して、多くの行 (約 1 億から 5 億) を約 5000 未満のグループに集約しています。(ほとんどのクエリでは、1 億から 5 億行がフィルター処理されるため、集計はより少ない行で機能します)

これは Web サイトの旅行検索エンジンのプロトタイプとして使用され、「特定の人数の部屋のすべての組み合わせについて、宿泊施設ごとに最適な価格を教えてください」と考えることができます。

最適な価格の組み合わせを見つけるために、テーブルを数回自己結合する必要があるまでは正常に機能しています (論理フィルターで既に削減されているため、結合ごとの組み合わせの数も削減されます)。

テーブルの内容を異なるテーブルに分割することは可能であり、許容できるパフォーマンスで動作していますが、infinidb (または列指向データベース全般) がこの問題の最善の解決策であるかどうか自問しています。

代替手段は何ですか?すべての map/reduce メカニズム (mongodb、hadoop) ははるかに遅くなると思いますか、それとも見逃している点はありますか?

2 ~ 5 台以上のサーバーは必要ありません。

明確にするために、「これは完璧だ!」とは思わない。答えますが、代替案の良いヒントです。また、infinidb は私のシナリオでは悪い解決策だと思います。

考えてくれてありがとう!

4

1 に答える 1

1

自己結合を使用しても、300 億行を超えるテーブルを持つ 9 台のマシンでスケーリングされた infinidb 3 を問題なく使用しました。

ddl + dql の例を教えてください。多分私はクエリを改善するためにあなたを助けることができます.

Infinidb を使用する前に、hbase / cassandra / mongodb とテクノロジーを試しましたが、気に入らなかったのです。5 億行の場合、これを 1 日に 2 ~ 3 回行う必要がある場合は、単純な Mysql を使用できます。

于 2012-11-17T18:31:58.463 に答える