2016-12-16 117 views
0

我需要存儲時間序列數據,並且有特殊要求。假設我想每隔5分鐘爲我的業務存儲營業額。 E.g一個時間序列併發更新歷史數據的時間序列數據庫

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都非常專注於新數據總是基本上:現在,終值
  • 能夠自動更新或使用某種鎖定。兩個線程可能會獲得關於屬於同一個5分鐘時間間隔的銷售的饋送事件,並且他們需要能夠添加到存儲的值,而不會冒險覆蓋(取消)其他線程添加的內容。

如果TSDB可以從java操作,那將會很棒。

任何人都可以指出支持使用併發控制更新歷史數據的TSDB嗎?

+0

沒有看到任何東西在這裏,不能在一個標準的RDBMS來完成; SQL Server,Oracle,MySQL,Postgres;隨你選。 –

+0

我同意,可以使用任何通用數據庫來完成。但是有一個原因是爲時間序列數據創建了特殊的數據庫。它們(可能)更好地處理這類數據 - 執行得更好,更易於查詢知道數據結構,聚合,與UI工具輕鬆集成(例如,顯示圖形)等。但我們肯定會回退使用定製的通用數據庫,如果沒有符合我們需要的TSDB。只是探索我的選擇。 –

回答

0

大多數時間序列度量標準數據庫類似於日誌導向,不適用於事務性使用。大多數人永遠不會提供ACID合規性,因爲使用MySQL和PostgreSQL數據庫更好。

響尾蛇確實滿足您的要求,即2這是線程安全的 https://github.com/srotya/sidewinder