0

多数のセンサーを含むハードウェア プラットフォームからアップロードされた大量の生データを処理する Web アプリケーション (Java バックエンド) があります。

現在、生データがアップロードされ、データが解凍されてPostgresqlデータベースに「テキスト」フィールドとして保存されているため、ユーザーはログインしてデータのさまざまなグラフ/チャートを生成できます(JSチャートライブラリクライアントサイドを使用)。

文字列の例...

[45,23,45,32,56,75,34....]

配列には通常、約 300,000 の値が含まれますが、センサーが記録している時間の長さによっては最大 1,000,000 になる可能性があるため、格納される文字列のサイズは数百キロバイトになる可能性があります

1 日あたりのアップロード数は 200 までしかないため、現時点では問題なく機能しているようですが、アプリケーションのスケーラビリティとデータのバックアップ機能を検討しているため、このデータを保存するための代替手段を検討しています。

DynamoDB は、アップロードの詳細を SQL テーブルに保存し続け、配列を取得するために呼び出される URL エンドポイントを保存することができるので、私にとっては素晴らしいオプションのように見えました....しかし、アイテムのサイズが 64kb に制限されていることに気付きました。

これを行うには100万通りの方法があると確信しているので、これをSOコミュニティに公開して、Webサービスまたはローカルに保存された他の人が推奨するものを聞きたいと思います....パフォーマンス、スケーラビリティ、保守性などを考慮して...

前もって感謝します!

アップデート:

上記のデータを明確にするために、X値は配列内の位置としてタイムサンプリングされるため、「Y」値にすぎません....したがって、タプルとして保存することには利点があるとは思いません。

4

4 に答える 4

0

Couchbase と ElasticSearch のタプルを試すことができます。Couchbase は、非常に高速なドキュメント指向の NoSql データベースです。CBの場合、数千回の挿入操作が正常です。アイテムのサイズは 20MB に制限されています。「get」操作のパフォーマンスは数万です。欠点が 1 つあります。id でしかデータをクエリできません (「ビュー」はありますが、それらをプロットに適応させるのは難しすぎると思います)。この欠点を補うことができるのは、あらゆるクエリを非常に高速に実行できる ElasticSearch です。Couchbase と ElasticSearch のフォーマット データは json-document です。

于 2013-11-11T02:30:34.150 に答える
0

このような文字列を保存する場合は、おそらくS3 (配列文字列を含む 1 つのオブジェクト) を使用することをお勧めします。この場合、バケットの
バージョン管理を有効にすることで、すぐに使用できる「バックアップ」が得られます。

于 2013-11-11T09:44:52.143 に答える
0

私はちょうどGoogle Cloud Datastoreに出くわしました。これは、最大1Mb(インデックスなし)の単一アイテムの文字列を保存できるもので、Dynamoの優れた代替手段のようです

于 2013-11-11T09:11:18.500 に答える