|
由于受嵌入式設(shè)備資源的限制,SQLite憑借其輕小的優(yōu)勢在嵌入式系統(tǒng)的數(shù)據(jù)處理中獨(dú)占鰲頭,裝機(jī)總量超過千億臺,遠(yuǎn)遠(yuǎn)超過大家熟悉的MySQL, Oracle等數(shù)據(jù)庫。
但SQLite真的是嵌入式系統(tǒng)數(shù)據(jù)庫選型的最優(yōu)解嗎?未必。
在邊緣計算、物聯(lián)網(wǎng)網(wǎng)關(guān)、嵌入式系統(tǒng)中,數(shù)據(jù)往往是各種傳感器或設(shè)備采集的時序數(shù)據(jù),這些數(shù)據(jù)具有如下鮮明的特點(diǎn),1:數(shù)據(jù)是時序的,一定帶有時間戳;2:數(shù)據(jù)是結(jié)構(gòu)化的;3: 數(shù)據(jù)極少有更新或刪除操作;4:數(shù)據(jù)產(chǎn)生源是唯一的;5:相對互聯(lián)網(wǎng)應(yīng)用,寫多讀少;6:用戶關(guān)注的是一段時間的趨勢,而不是某一特點(diǎn)時間點(diǎn)的值;7: 數(shù)據(jù)是有保留期限的;8:數(shù)據(jù)的查詢分析一定是基于時間段和地理區(qū)域的;9:除存儲查詢外,還往往需要各種統(tǒng)計、插值和其他實(shí)時計算操作;10:數(shù)據(jù)流量平穩(wěn)。
SQLite是關(guān)系型數(shù)據(jù)庫,沒有利用上述數(shù)據(jù)特點(diǎn),因此在存儲、查詢數(shù)據(jù)的性能上嚴(yán)重不足,而且不提供插值、不提供流式計算、不提供數(shù)據(jù)生命周期管理、無賬號、無遠(yuǎn)程登錄等功能,也難實(shí)現(xiàn)邊云協(xié)同。隨著物聯(lián)網(wǎng)、工業(yè)互聯(lián)網(wǎng)的發(fā)展,SQLite的局限越來越明顯。
我們?nèi)缙谕瞥?u>ARM 32位版,為邊緣計算、嵌入式場景下時序數(shù)據(jù)的存儲、查詢、分析與計算提供一強(qiáng)大的工具,以解決流行的SQLite在該場景下的諸多不足,并且100%開源。
TDengine是濤思數(shù)據(jù)團(tuán)隊針對物聯(lián)網(wǎng)、工業(yè)互聯(lián)網(wǎng)數(shù)據(jù)特點(diǎn)而開發(fā)的一數(shù)據(jù)處理平臺,近期推出了ARM 32位版本,為邊緣計算、嵌入式場景下時序數(shù)據(jù)的存儲、查詢、分析與計算提供一強(qiáng)大的工具,以解決流行的SQLite在該場景下的諸多不足,并且100%開源。與InfluxDB, OpenTSDB等其他專業(yè)時序數(shù)據(jù)庫相比,除超強(qiáng)的插入、查詢性能外,TDengine還具有幾大優(yōu)勢,1:體量很小,安裝包不到1.3M;2:占用的CPU、內(nèi)存資源很少;3:數(shù)據(jù)壓縮率高,占用的存儲資源大幅減少。這幾大優(yōu)勢讓TDengine在資源緊張的嵌入式系統(tǒng)里如魚得水。
在2019年7月TDengine宣布開源后,獲得全球開發(fā)者的高度關(guān)注(GitHub Star超過1萬,F(xiàn)ork數(shù)超過2.9k),很多開發(fā)者希望濤思數(shù)據(jù)提供ARM 32位版本,以代替他們現(xiàn)在使用的SQLite。今天,濤思數(shù)據(jù)團(tuán)隊不負(fù)眾望,終于推出。
相比SQLite,TDengine具有哪些優(yōu)勢?
提供數(shù)據(jù)庫遠(yuǎn)程登錄功能:你可以使用TDengine shell程序從Windows、Linux系統(tǒng)通過網(wǎng)絡(luò)直接訪問數(shù)據(jù)庫,與使用MySQL沒有區(qū)別。
提供數(shù)據(jù)的生命周期管理:你可以設(shè)置數(shù)據(jù)保留時長,數(shù)據(jù)超過保留時長后,會被自動刪除,這樣不用擔(dān)心硬盤塞滿。
提供流式計算:通過連續(xù)查詢的方式,可以對一個或多個數(shù)據(jù)流進(jìn)行實(shí)時計算,包括數(shù)據(jù)降采樣、插值、多個數(shù)據(jù)流的聚合等等。
提供數(shù)據(jù)訂閱服務(wù):云端或其他設(shè)備可以訂閱嵌入式系統(tǒng)里存儲于TDengine里的符合過濾條件的數(shù)據(jù),不用自己再去實(shí)現(xiàn)斷點(diǎn)續(xù)傳,不用擔(dān)心網(wǎng)絡(luò)中斷等系列問題,很容易實(shí)現(xiàn)邊云協(xié)同。
支持更好的并發(fā):TDengine的服務(wù)是單個持久性進(jìn)程,對每個時間序列單獨(dú)建表,支持很好的并發(fā);而SQLite只提供數(shù)據(jù)庫級的鎖定,在并發(fā)的讀寫方面性能不是很好,數(shù)據(jù)庫可能會被寫操作獨(dú)占,從而導(dǎo)致其它讀寫操作阻塞或出錯。 |
|