我有幾十個傳感器(可以說是100,000)。每個傳感器以(timestamp, value)
的形式定期或不定期地產生定時值。步長可能小於1秒,因此在一年的過程中,對於特定傳感器可能會有數百萬個(timestamp, value)
對,從而形成每個傳感器的時間序列。用戶可以針對這種時間序列的傳感器請求時間段(from, to)
的值。
在一個表(sensor_id, timestamp, value)
將填補表數十億每月值/行存儲所有的值。這蓋過傳統的開源數據庫系統(MySQL和PostgreSQL)。
我想到的創建每個傳感器的時間序列(timestamp, value)
和參考表,在我的傳感器表(sensor_id, sensor_name, sensor_table_name)
。所以會有每個一些百萬行10萬臺。
我可以獲取直接在我的傳感器直接使用sensor_table_name
列中的值或做我必須做兩個查詢,一個得到sensor_table_name
和一個得到數值超出該表?
看看[這個問題](http://stackoverflow.com/questions/5772699/postgresql-dynamic-table-access)。它應該涵蓋你的情況。 –
您是否對PostgreSQL進行了測試,因爲它是「開箱即用」的,或者您調整了服務器;分區表;使用適合於超大型數據庫(VLDB)的硬件,包括快速磁盤和額外的表空間;考慮將SSD用於某些索引或較小的表格;等等? –
開箱即用;不幸的是不能改變硬件。你認爲PostgreSQL能以一種有用的方式處理例如600億個表項嗎? – AME