2014-09-25 75 views
2

我有一個傳感器網絡,今天每天發送大約20,000個JSON消息,現在我正在將它們發送到第三方工具進行分析,但爲了將來更好地保護我想將這些值存儲在數據庫中,我可以使用另一個UI工具進行分析。 我想保留至少2年的歷史數據,可能更多。 訪問數據要快(如選擇兩個時間戳之間的傳感器和價值觀,並以圖表顯示)什麼數據庫來存儲傳感器數據(JSON)

所以我想我應該去什麼樣的數據庫進行;一個正常的SQL RDMS? (例如MySQL)或noSQL DB(無偏好)。 你可以給一些關於數據庫選擇的指導嗎?

傳感器展示自己在與啓動:

{ 
    "MonitoredSensors": 
    [ 
     {"DeviceId":"12","Name":"Freezer","Service":"urn:micasaverde-com:serviceId:EnergyMetering1","Variable":"Watts"}, 
     {"DeviceId":"14","Name":"Server","Service":"urn:micasaverde-com:serviceId:EnergyMetering1","Variable":"Watts"}, 
     {"DeviceId":"103","Name":"EnergyMeter","Service":"urn:micasaverde-com:serviceId:EnergyMetering1","Variable":"Watts"}, 
     {"DeviceId":"103","Name":"EnergyMeter","Service":"urn:micasaverde-com:serviceId:EnergyMetering1","Variable":"KWH"}, 
     {"DeviceId":"89","Name":"TV","Service":"urn:micasaverde-com:serviceId:EnergyMetering1","Variable":"Watts"}, 
     {"DeviceId":"101","Name":"Living Room Light","Service":"urn:micasaverde-com:serviceId:LightSensor1","Variable":"CurrentLevel"} 
    ], 
    "Time":1411328122, 
    "Version":"0.0.2" 
} 

每個傳感器值的報道:

{ 
    "SensorValue": 
    { 
     "DeviceId":89, 
     "NewValue":"161", 
     "Time":1411596034, 
     "Variable":"Watts", 
     "Version":"0.0.2" 
    } 
} 

感謝您的任何建議

+1

@ 4integrator你可能想知道,StackOverflow Netiquette不鼓勵基於觀點的問題。您甚至可能會面對這些帖子的一些版主活動。如果您決定重新編輯和修改您的問題,則可能會添加一些量化目標,以便任務可以衡量 - 即,我想要在500-750毫秒內處理任意深度的特設圖表歷史時間序列。我目前的實現是... <_ code-snippet _> ...它產生的圖形不可接受的延遲3秒。 - 請儘量展示您已投入的努力和S/O幫助 – user3666197 2014-09-25 13:40:00

+0

您應該查看[Vertica](http://www.vertica.com/industries/sensor-analytics/)。儘管這是相對較少的消息。 – Kermit 2014-09-25 14:39:07

回答

0

Bascially任何普通的RDBMS應該能夠對付它容易。如果您只需執行幾個不同的分析,則可以使用「實體化視圖」使其更快。

如果你不想反序列化JSON數據,只是拋出原始JSON到你可以一起去數據庫:

  • MongoDB的 - 這讓你很容易,幾乎類似於SQL的查詢和會快速一旦你已經定義了正確的索引
  • CouchDB/CouchBase - 它與RDBMS的物化視圖類似,只是原始的JSON。缺點是您將無法運行您尚未創建任何視圖的查詢。
0

我同意@peter可能任何RDBMS都可以處理20000 * 365 * 2〜1460萬條記錄做分析。

最重要的是,你提到了JSON記錄。我認爲這裏的假設是JSON記錄的格式可能與不同的傳感器不同或隨時間而改變。

對於 「半結構化」 數據集看看

  1. AVRO - https://avro.apache.org/
  2. 實木複合地板 - https://parquet.apache.org/

格式,可以嵌入類JSON格式和支持Schema Evolution

Althoug AVRO和地板都沒有數據庫,但也有不少 「數據庫」,與兩個AVRO和木地板等dataformats中本身工作:

  • 星火
  • 蜂巢
  • 帕拉

僅舉幾例。以上三種情況都非常具有可擴展性,以防萬一以後您決定每天流20k或20m的信息。