2009-06-04 64 views
9

我試圖找出存儲100個通道的25 Hz浮點數據的可能方法。這將導致78,840,000,000個數據點每年如何存儲多年價值100 x 25 Hz時間序列 - Sql Server或時間序列數據庫

理想情況下,所有這些數據可以有效地用於Web站點和工具,如Sql Server報告服務。我們知道關係數據庫在處理這種規模的時間序列方面很差,但尚未確定具有說服力的時間序列特定數據庫。

關鍵問題是高效存儲的壓縮,同時還提供簡單高效的查詢,報告和數據挖掘。

  • 你將如何處理這些數據?

  • Sql Server中有哪些功能或表設計可以處理如此數量的時間序列數據?

  • 如果沒有,是否有任何第三方擴展Sql服務器有效地處理龐大的時間序列?

  • 如果沒有,是否有時間序列數據庫專門處理這些數據,但通過Sql,.Net和Sql Reporting服務提供自然訪問?

謝謝!

+0

數據點有多大? – cgp 2009-06-04 16:47:59

+0

樣本的數據類型是什麼?樣品/進料速率是固定的還是變化的?你需要存儲樣本時間還是可以推斷?什麼樣的數據被採樣? – RBarryYoung 2009-06-04 16:55:51

+0

假定32位浮點。可能會有一些優化,但如果我們不必處理頭疼,那將是完美的。 – Duncan 2009-06-04 17:26:46

回答

1

我想通過日期來劃分表格,以便將數據分割成每行216,000,000行的小部分。

假設您不需要全年的統計數據,這很容易被索引所利用。

說,查詢「給我一個平均的給定小時」將是一個秒的問題。

+0

感謝您的回答。 使用sql server分區或只是多個表?如果有多個表,是否有任何設計模式可以輕鬆處理跨表的查詢? – Duncan 2009-06-09 06:34:04

+0

@Duncan:SQL Server分區將是最好的,但我不知道它允許多少個分區。對於多個表,您可以運行一個調度程序來重新創建視圖爲SELECT * FROM table_20090609 UNION ALL SELECT * FROM table_20090608等。不要忘記在表中包含分區列。 – Quassnoi 2009-06-09 07:41:54

1

我想你需要隨機訪問數據系列。我已經用於降雨量數據表的想法是將整個數據集細分爲較小的一部分,爲每幾分鐘甚至一分鐘創建一個條目。 然後你可以從db中彈出這個仍然很大的數組,並直接訪問所需的部分,你可以找到時間偏移和字節偏移量之間的直接關聯。

1

您所描述的功能集適用於分析立方體。從微軟退房分析服務,如果您在科技世界的那個部分是:

http://msdn.microsoft.com/en-us/library/ms175609(SQL.90).aspx

至於模型你所描述的,你需要實現一個金博爾模式(標準數據倉儲模式)與時間維度。我遇到了這個存儲媒體日誌文件的問題。

祝你好運。

0

你有

A. 365×24×100 = 876000個小時信號每年(所有通道)

B.每個信號包括3600 * 25 = 90000個數據點

怎麼樣,如果你將數據存儲爲每個信號一行,用於彙總/查詢統計信息目前支持使用情況列,而壓縮信號的blob爲未來的?

1

您可以檢查出Infobright的社區或企業版,我想。 它是面向列的存儲設計,用於分析目的和大型(現有的安裝高達30 TB,因爲他們說)數據和良好的壓縮率。

數據加載器也相當快和連接器存在ETL工具(拓藍,水壺等)。

提供社區版基於GNU GPL條款免費的,但只允許通過本地加載器添加數據。企業版支持通過DML單行添加/更新。

,您可以與支持MySQL連接的所有工具都使用它的另一個好處。

列方向允許您在每個需要的聚合級別(我使用日期,星期數,月數和季度)上添加日期組件的列以獲得更好的性能,但是如果沒有它,它也是很好的。

我通過mysql的接口和python(numpy的)腳本爲某種ETL的使用它爲分析目的,其中R如數據分析工具業務交易數據的相對較小(但)量。

缺點: 缺少官方utf-8支持,按功能值彙總(選擇月份(從...開始的日期))還未實現(計劃:2009年7月,AFAIK),但我使用ETL。

鏈接:http://www.infobright.org/Download/ICE/

0

您是否考慮過HBASE或打開TSDB。您還可以看看卡桑德拉

0

如果它只是浮點數據,TSDBs將爲您提供更好的性能。時間序列壓縮算法不同,因此您可以獲得更好的存儲和查詢速率。