[英]Trending 100 million+ rows
我有一個系統,每秒記錄一些測量值。 存儲趨勢數據的最佳方法是什么,這些數據是與特定秒對應的值?
1 day = 86.400 seconds
1 month = 2.592.000 seconds
大約1000個值來跟蹤每秒。
目前,有50個表格對每個20列的趨勢數據進行分組。 這些表包含超過1億行。
TREND_TIME datetime (clustered_index)
TREND_DATA1 real
TREND_DATA2 real
...
TREND_DATA20 real
我會更改數據保存方法,而不是將'原始'數據保存為值,我將在數組中保存5-20分鍾的數據(內存,BL端),使用基於LZ的算法壓縮該數組,然后將數據存儲在數據庫為二進制數據。 此外,保存該二進制塊的Max / Min / Avg / etc ..信息會很好。
當您想要處理數據時,您可以在塊之后處理數據塊,並為此保留應用程序的低內存配置文件。 這種方法稍微復雜一些,但在內存/處理方面具有很高的可擴展性。
希望這可以幫助。
問題是數據庫架構嗎?
1秒到多個趨勢顯然首先會顯示一個帶有秒表外鍵的單獨表。 或者,如果“許多趨勢值”由列而不是行表示,則始終可以將列附加到秒表並產生空值。
你試過嗎? 表現差嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.