1、背景
隨著計算機(jī)處理器的高速發(fā)展,存儲系統(tǒng)與處理器之間的速度差異,已經(jīng)成為了制約整個系統(tǒng)性能的嚴(yán)重瓶頸。邊緣計算在數(shù)據(jù)存儲和處理方面具有較強(qiáng)的實時性需求,相比現(xiàn)有的嵌入式存儲系統(tǒng)而言,邊緣計算存儲系統(tǒng)更加具有低延時、大容量、高可靠性等特點。
邊緣計算的數(shù)據(jù)特征具有更高的時效性、多樣性,以及關(guān)聯(lián)性,需要保證邊緣數(shù)據(jù)連續(xù)存儲和預(yù)處理,因此如何高效的存儲和訪問連續(xù)不斷的實時數(shù)據(jù),是邊緣計算中存儲系統(tǒng)設(shè)計需要重要關(guān)注的問題。
2、原則
根據(jù)Redis Labs發(fā)布的白皮書:How to Select right database In IoT(https://redislabs.com/docs/4-steps-select-right-database-iot-solution/),基于以上,邊緣場景下數(shù)據(jù)庫需要具備以下特點:
- Real-time data streaming(支持實時數(shù)據(jù)流處理)
- Data filtering and aggregation(支持?jǐn)?shù)據(jù)過濾和聚集)
- Near-zero latency read operations(讀操作接近零延遲)
- Instant analytics(即時分析)
- High availability(高可用)
- Geo distribution(地理分布式)
- Schema flexibility and many more(模式靈活等)
3、數(shù)據(jù)庫排名
截至2020 April,DB-Engines上數(shù)據(jù)庫排名(https://db-engines.com/en/ranking)

下面列出幾種典型數(shù)據(jù)庫(時序數(shù)據(jù)庫、文檔數(shù)據(jù)庫、內(nèi)存數(shù)據(jù)庫)的特點進(jìn)行對比:

4、RedisEdge
RedisEdge: The edge computing database for the IoT edge(https://redislabs.com/redis-enterprise/redis-edge/)
RedisEdge是一個專為物聯(lián)網(wǎng)(IoT)邊緣的苛刻條件而構(gòu)建的多模型數(shù)據(jù)庫。它每秒可以接收數(shù)百萬次寫操作,延遲<1ms,占用空間非常?。?lt;5MB),因此它很容易運(yùn)行在各種邊緣設(shè)備和傳感器上,從基于ARM32到x64的硬件。RedisEdge集成開源Redis(版本5,支持Redis Streams)與RedisAI和RedisTimeSeries模塊,并使用RedisGears用于模塊間通信。
- Redis 5.0版本,內(nèi)置的Set、List、Hash等數(shù)據(jù)結(jié)構(gòu)可用作實時內(nèi)存數(shù)據(jù)庫,用來存儲邊緣網(wǎng)關(guān)采集到的設(shè)備實時數(shù)據(jù)。
- Redis 5.0版本的Redis Streams數(shù)據(jù)結(jié)構(gòu),可用做消息中間件,把采集到的設(shè)備實時數(shù)據(jù)轉(zhuǎn)發(fā)給其他邊緣計算軟件組件。
- RedisTimeSeries是Redis的一個模塊,可用作時間序列數(shù)據(jù)庫,在邊緣計算網(wǎng)關(guān)斷網(wǎng)的情況下,能夠離線保存需要上傳到云端的設(shè)備歷史數(shù)據(jù)。同時也有歷史數(shù)據(jù)降采樣、壓縮、聚合的功能。
- RedisAI是Redis的一個模塊,用于執(zhí)行深度學(xué)習(xí)模型,在邊緣側(cè)調(diào)用PyTorch、Tensorflow和ONNXRuntime等深度學(xué)習(xí)工具。
- RedisGears是Redis的一個模塊,類似MapReduce的分布式動態(tài)執(zhí)行框架,可以用來在分布式的邊緣計算節(jié)點或者霧計算節(jié)點上運(yùn)行Serverless無服務(wù)程序代碼。
image.png
RedisEdge的出現(xiàn)可以很好的消除IoT邊緣環(huán)境下應(yīng)用的復(fù)雜度。目前RedisEdge已經(jīng)與EdgeX Foundry和微軟Azure IoT Edge平臺集成。
image.png
https://wiki.edgexfoundry.org/display/FA/Geneva+Release
EdgeX Foundry從Geneva版本默認(rèn)的數(shù)據(jù)庫將采用Redis(目前使用的是MongoDB),我這里進(jìn)一步修改為使用redisedge鏡像


RedisEdge支持原生Redis支持的所有數(shù)據(jù)結(jié)構(gòu),包括新的Redis Streams數(shù)據(jù)結(jié)構(gòu),這為應(yīng)用開發(fā)人員提供了靈活性和簡單性。



5、Azure SQL Database Edge
Azure SQL Database Edge: A data engine optimized for IoT workloads on edge devices
Azure SQL Database Edge是一個優(yōu)化的關(guān)系數(shù)據(jù)庫引擎,適用于IoT和IoT邊緣部署。 它是一個容器化應(yīng)用程序,可以運(yùn)行在基于ARM64或x64的處理器上,其啟動內(nèi)存占用小于500 MB。目前支持運(yùn)行在Linux上(未來計劃推出一個基于Windows的版本)。 Azure SQL Database Edge提供了流、處理和分析關(guān)系和非關(guān)系(如 JSON、圖形和時間序列數(shù)據(jù))的功能,這使得它成為各種現(xiàn)代 IoT 應(yīng)用程序的正確選擇。
Azure SQL Database Edge基于最新版本的Microsoft SQL Server數(shù)據(jù)庫引擎構(gòu)建,它提供了業(yè)界領(lǐng)先的性能、安全性和查詢處理功能。 由于Azure SQL Database Edge構(gòu)建在Microsoft SQL Server和Microsoft Azure SQL Database的同一引擎上,它提供了相同的T-SQL編程表面積,使應(yīng)用程序或解決方案的開發(fā)更輕松、更快速,同時使應(yīng)用程序物聯(lián)網(wǎng)邊緣設(shè)備、數(shù)據(jù)中心和云之間的可移植性。

Azure SQL Database Edge White Paper

6、ObjectBox DB
ObjectBox與EdgeX集成方案,https://objectbox.io/edgex/
https://github.com/objectbox/edgex-objectbox



7、Raima Database Manager? (RDM)
Raima Database Manager (RDM)?是專為物聯(lián)網(wǎng)和邊緣市場開發(fā)的嵌入式、跨平臺、占用空間小的數(shù)據(jù)庫。它快速而持久,且專門針對性能和可靠性進(jìn)行了優(yōu)化。

https://raima.com/raima-database-manager/
8、C-treeEDGE
https://www.faircom.com/products/c-treeedge-iot-database

http://blog.sina.com.cn/s/blog_15b0b4e450102yikw.html
9、TDengine


