0

私は、センサー (水質汚染関連の活動) からデータを収集し、特定のイベントで特定のセンサーのデータを処理することを決定するクラウドベースのシステム (IaaS) を作成しようとしています。データの特徴は次のとおりです。 1. 各センサーのデータは、数日に 1 回 (月に 6 回まで) 送信されます。このような「セッション」には約 20 分かかり、メッセージは 5 秒ごとに送信されます) 3. 1 秒あたり 30,000 メッセージのレートを処理するシステムを構築しています。4. データの処理はリアルタイムであってはなりません。「セッション」が終了してから約 10 分で処理を行います。5. セッションの 90% は面白くなく、終わったらすぐに捨てることができます。

1 秒あたり 5000 メッセージを生成するツールを作成し、シナリオに最適なデータベースを見つけようとしています。これらは私が試してみようと考えているデータベースです:

  1. Cassandra - セッションごとにキーのメモリ コレクションを保存します。キーは、cassandra に保存されているメッセージ用です。不正な読み取りを含むメッセージを検出したら、「セッション」内の他のすべてのメッセージをプルして処理する必要があります (つまり、cassandra への 50 ~ 100 のリクエスト)。ここでの私の懸念は、書き込みパフォーマンスに関するものです (多くの読み取り操作と書き込み操作があるため) + 不要なセッションの 90% を削除するための適切な戦略がありません。

  2. Couchbase - センサー ID に従って「セッション」ごとにドキュメントを保存し、各メッセージをドキュメントに追加します。不適切な読み取りを含むメッセージを検出したら、ドキュメントの要求を 1 回送信するだけで済みます。ここでの私の懸念は、読み取りパフォーマンスに関するものです。

  3. Redis - Cassandra のように使用します。パフォーマンスは最高になると思いますが、メモリ制限に達しないように、データのシャーディングとレプリケーションを自分で処理する必要があります

どのオプションが最も適切かを知りたい

ありがとう

4

2 に答える 2

2

登録 Redis – DAAS (Data as a Service) の使用を検討できます。このサービスは、すべてのインスタンス、クラスター、スケーリング、データの永続性、および高可用性の設定を管理します。一例は、Redis Labs による Redis Cloudです。

于 2015-05-10T07:17:16.680 に答える
-1

これは興味深いものです。CAP 定理の基本に進み、一貫性、可用性、分断耐性の必要性に基づいて 1 つの DB を選択しようとするとします。

高い一貫性と可用性を得るには、MySQL、PostgreSQL、Greenplum、Vertica、Neo4J を選択してください。

高可用性と分断耐性の場合 - Cassandra、Voldemort、Dynamo、CouchDB、Riak を使用

高い一貫性と分断耐性の場合 - HBase、Redis、MongoDB、BerkeleyDB、BigTable を使用

だから私の投票はここでカサンドラです。

于 2015-05-07T00:11:47.433 に答える