簡體   English   中英

創建聚合表的最佳方法是什么?

[英]What is the best approach to create aggregation tables?

我每1秒鍾收集一次數據,並將其存儲在hsqlDB中。 我需要在收集的數據中的每個指標上擁有聚合數據(每15秒,1分鍾等)。 什么是計算聚合值的最佳方法? 什么時候存儲在數據庫中? 我應該在線計算值,並在數據庫中每15秒存儲一次? 還是可以查詢數據庫以獲取最后的結果並計算它們的匯總值? 我應該使用小聚合(15秒)來計算大聚合(1分鍾)嗎? 有免費的Java工具嗎?

根據以前的經驗,我建議使用實時數據庫,該數據庫可能與處理時間序列的內置功能無關。 這樣,您應該能夠避免存儲計算出的聚合數據。 使用關系數據庫,您將很快獲得數百萬行的記錄,這些行將很難管理且訪問緩慢。 另一個選擇是對數據進行非規范化,並將每1小時的數據存儲在BLOB列(二進制格式)中的一行中。

您可以使用HSQLDB是MVCC模式進行並發讀寫。

如果原始數據表具有索引的時間戳列,則使用SELECT語句對范圍進行聚合計算非常快。 因為帶有聚合計算的SELECT語句是同時發生的,所以您可以使用單獨的線程每1秒和每15秒執行一次操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM