2016-12-16 8 views
0

私はtimeseriesデータを保存する必要があり、特別な要件があります。私は5分間隔で私のビジネスの売上高を保存したいと言いましょう。例えば1時系列 履歴データの同時更新を伴う季節のデータベース

Store#1 
1/12–2016 10:00–10:05: 100$ 
1/12–2016 10:05–10:10: 50$ 
… 

し、別の時系列は

Store#2 
1/12–2016 10:00–10:05: 10$ 
1/12–2016 10:05–10:10: 30$ 
… 

私が何かを売っている店でされたときに言って、データのフィードを取得します。たとえば、

Store#1,10:02:40,5$ 

このようなフィードイベントごとに、データベースを更新する必要があります。上記フィードイベント例えば、それは私がずっと後に、このフィードイベントを取得することがあり

db.series("Store#1").update(1/12–2016 10:00–10:05, add: 5$) 

になり、その後、1/12から2016 10時05分、私は「過去のデータ」を更新できるようにしたいです。

がTSDBのうちの多くがありますが、私は苦労私のニーズを満たすものを見つけるを持っています。特に

  • 履歴データを更新できること。それは、常に本質的であるTSDBの非常に新しいデータに焦点を当てているたくさんのように思える:今、最終値
  • アトミックに更新できること、またはロックのいくつかの種類を使用しました。 2つのスレッドは、同じ5分間隔で属する販売についてのフィードイベントを取得する可能性があり、他のスレッドが追加したものを上書き(キャンセル)するリスクを伴わずにストアド値に追加できる必要があります。

TSDBは、Javaから操作することができればそれは素晴らしいことです。

誰もが同時実行制御と履歴データの更新をサポートしているTSDBを指摘することはできますか?

+0

標準RDBMSで行うことができない、ここでは何も表示されません。 SQL Server、Oracle、MySQL、Postgres;好きなのを選びな。 –

+0

私は同意します。これは、汎用データベースを使用して行うことができます。しかし、時系列データ用に特別なデータベースが作成された理由があります。データの構造、集約、UIツール(グラフの表示など)との容易な統合などを知っている方が、この種のデータを処理する上で(潜在的に)優れています。ニーズに合ったTSDBがない場合は、カスタムの汎用データベースを使用します。私の選択肢を探っているだけです。 –

答えて

0

ほとんどの時系列メトリクスデータベースは、トランザクションの使用のために意味ログ指向ないようなものです。ほとんどの人は、データベースのようにMySQLとPostgreSQLを使う方が良いACID準拠を提供することはありません。

サイドワインダーはあなたの条件を満たしてい2すなわち、それは、スレッドセーフです https://github.com/srotya/sidewinder

関連する問題