Sql-Server
用於分析的數據儲存
我必須儲存一些數據用於分析目的。
- 數據源每月產生 2TB 數據。
- 數據按月(非實時)收集。
- 數據是完全結構化的。
- 有 100 多個不同的數據列。
- SQL 的可用性很重要。
- 工程師/開發人員資源有限。
我計劃使用 Postgres(可能帶有面向列的擴展),但是對於這樣的數據量(每年超過 20TB)是不可行的。我還對 Hadoop/Spark 進行了研究,但是,它看起來有點龐大(考慮到數據是完全結構化的)。我不考慮基於雲的解決方案以及昂貴的解決方案(最好是免費許可)。
您能否建議使用哪種數據儲存來儲存大量結構化數據以進行分析?
除了 Danielle 和 JD 提出的建議之外,我建議您檢查數據的表示方式和頻率。
例如,如果數據以 JSON 或 XML 格式傳輸,便於傳輸和處理,則大小會很大(例如數字字元串與浮點數或整數)。此外,可以將字元串標識符(例如序列號、信用卡號)製成 PK/FK 關係,從而節省空間。
您的數據採樣頻率可能高於實際可用的頻率。例如,如果您以 10 個樣本/秒的速度獲取天氣數據,但您的分析只有 1 小時的解析度,那麼您的天氣數據比您可以使用的要多得多。也許將數據重新採樣到較低頻率(例如平均值和標準偏差,低通濾波器)並儲存可能是更好的解決方案。您始終可以存檔原始數據——存檔儲存一年的數據並不是很昂貴。
我會在帶有 SQL Enterprise Edition 的集群上使用可用性組。你可以有分區表。由於數據不是實時的,您可以有維護視窗,您可以在其中輸入臨時表中的數據(可能是一天的數據),如果您需要清除一些數據,您可以輕鬆擺脫一個舊分區。
如果您有復雜的報告,可以在輔助可讀節點上完成。設置起來相當複雜。
這裡有幾個連結: