大數據

阿里雲物聯網套件與雲數據庫

Apache IoTDB 是專為物聯網時序數據打造的數據庫,提供數據採集、存儲、分析的功能。IoTDB 提供端雲一體化的解決方案,在雲端,提供高性能的數據讀寫以及豐富的查詢能力,針對物聯網場景定製高效的目錄組織結構,並與 Apache Hadoop、Spark、Flink 等大數據系統無縫打通;在邊緣端,提供輕量化的 TsFile 管理能力,端上的數據寫到本地 TsFile,並提供一定的基礎查詢能力,同時支持將 TsFile 數據同步到雲端。

TsFile

TsFile 是為物聯網設備時序數據存儲定製的文件格式,整體以樹狀目錄結構組織,一個 TsFile 裡可存儲多個設備的數據,每個設備包含多個 measurment(指標)。如下圖,TsFile 裡包含兩個設備數據,標識分別為 d1、d2;每個設備包含 s1、s2、s3 三個監測指標。

TsFile 整體是一個多級映射表,TsFileMetaData ==> TimeSeriesMetadata ==> ChunkMetadata ==> Chunk。

TsFileMetadata 描述整個 TsFile ,包含格式版本信息, MetadataIndexNode 的位置,總的 chunk 數等元數據信息。

MetadataIndexNode 包含多個 TimeSeriesMetadata ,每個 TimeSeriesMetadata 指向一個設備的元數據信息 ChunkMetadata 列表;

ChunkMetadata 指向 ChunkHeader 位置,並對應最終的 Chunk Data。

查詢引擎

IoTDB 內置查詢引擎負責所有用戶命令的解析、生成計劃、交給對應的執行器、返回結果集。IoTDB 通過查詢引擎提供了 JDBC 訪問 API,簡單易用。

IoTDB> CREATE TIMESERIES root.ln.wf01.wt01.status WITH DATATYPE=BOOLEAN, ENCODING=PLAIN
IoTDB> CREATE TIMESERIES root.ln.wf01.wt01.temperature WITH DATATYPE=FLOAT, ENCODING=RLE

IoTDB> INSERT INTO root.ln.wf01.wt01(timestamp,status) values(100,true);
IoTDB> INSERT INTO root.ln.wf01.wt01(timestamp,status,temperature) values(200,false,20.71)

IoTDB> SELECT status FROM root.ln.wf01.wt01
+-----------------------+------------------------+
| Time|root.ln.wf01.wt01.status|
+-----------------------+------------------------+
|1970-01-01T08:00:00.100| true|
|1970-01-01T08:00:00.200| false|
+-----------------------+------------------------+
Total line number = 2

元數據管理

IoTDB 的元數據模型採用樹狀結構組織,一個實例包含多個 Storage Group (類似於 Namespace、Database 的概念),一個 Storage Group 裡包含多個 Device ,每個 Device 包含多個 MeasurementMeasurement 對應的時間序列數據最終存儲在 TsFile Chunk 裡。另外,為了方便數據過期,每個 Stroage Group 的數據會以時間範圍的形式切分存儲,默認以周為單位,使用不同的目錄存儲。

// Storage Group 分區存儲結構
data
-- sequence
---- [存儲組名1]
------ [時間分區ID1]
-------- xxxx.tsfile
-------- xxxx.resource
------ [時間分區ID2]
---- [存儲組名2]
-- unsequence

同步工具

IoTDB 支持在邊緣側、雲端部署,通常在邊緣側採集的數據有同步到遠端進一步分析處理的需求;IoTDB 提供了同步工具,支持將端/設備上的 TsFile 數據往雲端同步。

連接器

IoTDB 支持與現有的大數據處理系統,包括 Hive、Spark 等無縫連通,IoTDB 提供了 hive-tsfilespark-tsfilespark-iotdb 等連接器,讓 Hive、Spark 能直接訪問 tsfile 格式的數據,以及訪問 IoTDB 的數據。

總結

優勢

針對物聯網模型做了定製化,提供 JDBC 訪問方式,支持邊雲一體化部署。

存儲使用 Hadoop File system,並提供多種 connector,與現有大數據生態無縫打通。

開放的 TsFile 存儲格式,設備模型簡單易理解。

不足

IoTDB TsFile 的結構,目前僅有 java 版本,資源佔用方面對邊緣輕量級設備不友好,限制了其在端/設備側的應用。

雲端版本目前僅有單節點版本,無法滿足海量設備數據接入雲端的需求。

存儲上支持使用 HDFS 或 本地盤,通過使用 HDFS 來存儲可保證存儲層高可用,但計算層沒有進一步的高可用保障。

雲服務器ECS地址:阿里雲·雲小站

Leave a Reply

Your email address will not be published. Required fields are marked *