2012-01-06 9 views
0

ドキュメント(フィールド:ID、キーワード、タイムスタンプ付き)がシステムに追加されるほぼリアルタイムのシステムを設計する必要があります。要件は、最後のx分でシステムに追加された文書からトップkのキーワードを取得することです。典型的な文書追加速度は約100文書/秒であり、将来的に増加する可能性がある(従って、技術は水平にスケーラブルでなければならない)。リアルタイムデータ集約に使用する技術(SQL/NoSQL)

私はsolrの高書き込み/秒について少し気にしていますが、top-kキーワードを生成するために(shardingを使って)solr-facetsを使うことを考えています。もう1つの選択肢は、Cassandraを使用することですが、OrderPreservingPartitionerが負荷分散を困難にする可能性があるため、範囲問合せ(集約の計算)にどのようにスケーリングするかはわかりません。

答えて

1

これはComplex Event Processingのように聞こえますが、データベースや検索に問題はありません。リアルタイムでのキーワードトレンドやそれに類するものを取得するのと同じように、データを保持することについてはあまり気にしません。一部のベンダー/あなたが見たいと思いライブラリは(多くの省略で)です:

マイクロソフト/ .NET:

StreamInsight - MicrosoftのCEPは

Reactive Extensions for .NETを提供 - の.NETへの拡張ストリーム処理

のJava:

Esper - 非常に人気のあるOSS STREライブラリ

Stormを処理しています - ストリーム極めて大量のデータに拡大する可能性が高いのHadoopの処理、

サードパーティ/独自の(それらについて十分に知っていない、これらについてはコメントしません):

StreamBase

Aleri

+0

ちょっと興味がありますが、solr-facetsの問題は何ですか? –

+0

何も問題ありません。それはちょうど仕事のための適切なツールのように見えません。ファセット、AFAIK(そしてGrant Ingersollが私を訂正できるかもしれません)では、検索の属性によって検索結果を掘り下げています。これは、ウェブサイト上での商品検索のようなものに最適です。あなたはイベントの最後の数分間を気にします。その後、古いものを捨てます。 –

0

同時に使用するSQLとNoSQLの。

クエリにはsqlを使用し、複雑なデータにはnosqlを使用します。

x2コードを書きます。ニーズを念頭に置いてあらゆる問題を解決してください。

関連する問題