當前位置: 華文星空 > 心靈

填補市場空白,Apache TsFile 如何重新定義時序數據管理

2024-03-25心靈

剛剛過去的 2023 年,國產開源技術再次獲得國際認可。

2023 年 11 月 15 日,經全球最大的開源軟體基金會 ASF 董事會投票決議,時序數據檔格式 TsFile 正式透過,直接晉升為 Apache Top-Level 計畫(TLP),成為繼時序資料庫 Apache IoTDB 之後,Apache 時序數據領域第二個 Top-Level 計畫。

TsFile 由時序資料庫 Apache IoTDB 計畫團隊開發,是一種專門用於時序數據管理的檔格式,同時也是 IoTDB 的底層儲存格式。

自計畫成立以來,TsFile 社群發展迅速,在來自天謀科技、清華大學、華為、eBay、東方國信、用友等企業貢獻者的共同努力下,於今年 2 月 20 日正式釋出了 1.0.0 版本。據悉,Apache TsFile 1.0.0 版本支持多種數據型別、編碼演算法、壓縮演算法以及多種寫入、查詢模式。

TsFile 1.0.0 版本內容

事實上,TsFile 的意義,不僅僅在於其晉升為 Apache TLP 證明著國內開源計畫的實力,更重要的是,TsFile 填補了時序數據領域的一項市場空白。

TsFile:為時序數據管理提供統一格式

時序數據即時間序列數據,是指帶時間標簽(按照時間的順序變化,即時間序列化)的數據,其來源多元、數據量龐大,可廣泛套用於物聯網、智慧制造、金融分析等領域。在數據驅動的當下,時序數據的重要性不言而喻。

盡管時序數據如此普遍且重要,但長期以來,時序數據的管理都缺乏標準化的檔格式。

當前企業會面臨著多種時序數據的儲存格式,如自訂格式的 CSV、自訂的二進制格式,或者使用 Parquet、ORC 等通用檔格式,這導致時序資料來源的統一管理和匯聚十分復雜。

同時,通用檔格式沒有針對時間、裝置、測點等時序數據特有的數據概念,可能導致主鍵資訊儲存冗余,並缺乏時序數據場景常用索引,使得快速定位與查詢數據效能受限。

這便是 TsFile 針對這一市場空白,希望實作的價值:為時序數據提供統一和標準化的格式。IoTDB 團隊在構思 TsFile 結構時,便考慮了幾個關鍵因素:

時序模型:專門為物聯網設計的數據模型,每個時間序列與特定裝置相關聯,所有裝置透過分層結構相互連線;

高壓縮比:為時間序列量身客製的列式儲存格式,將數據按裝置進行組織,並保證每個序列的數據連續儲存,最小化儲存空間;

高效寫入:數據可以按塊寫入,能夠達到最大吞吐;

高效存取:為時間、裝置、物理量構建了相關索引結構,實作快速數據檢索。

TsFile 的幾大特性

下面具體了解一下 TsFile 的效能亮點。

相比其他檔格式,TsFile 透過自研實作了時序數據高效率管理、高靈活傳輸,並支持多類軟體深度整合。其特性包括:

可獨立使用:可以使用 SDK 直接讀寫 TsFile,使得一些輕量級的數據讀寫場景成為可能。

高效儲存和壓縮:TsFile 采用先進的壓縮技術,可最大限度地減少儲存需求磁盤空間消耗並提高系統效率,從而減少磁盤空間消耗和最佳化數據管理。相比通用檔格式,壓縮比可提升 20% 以上。

靈活的後設資料管理架構:與傳統寫入方式不同,TsFile 支持靈活的後設資料管理,無需預定義後設資料即可實作數據寫入。這種適應力結合時序數據的動態特性,簡化了數據寫入和管理過程。結合列式數據寫入模式,相比通用檔格式,寫入吞吐可提升 2-3 倍。

高查詢效能:透過裝置、傳感器和時間維度索引,TsFile 實作了基於特定時間範圍的時序數據快速過濾和查詢。相比通用檔格式,查詢吞吐可提升 2-10 倍。

協同同步:TsFile 是時序資料庫 IoTDB 的底層儲存檔格式,可與 IoTDB 形成可插拔的存算分離架構。透過 TsFile,使用者可對 IoTDB 中的數據進行便捷的載入與匯出。同一個 TsFile 可以在嵌入式裝置、邊緣伺服器和雲節點中靈活部署和同步。

開放整合:TsFile 支持與 Spark、Flink 等大數據軟體建立無縫生態整合,從而確保跨不同數據處理環境的相容性和互操作性,實作時序數據跨生態深度分析。

TsFile 檔格式示意

基於時序數據特性的內核創新

在時序數據管理上,TsFile 之所以能實作上述這些功能,主要源於其在結構層面的多項創新。在此重點介紹 TsFile 采用的列式儲存檔結構、編碼和壓縮技術。

1. 列式儲存檔結構

下圖為 Apache TsFile 的檔結構。

Page:一段連續的時序數據,儲存的基本單元,按時間升序排序,時間戳和值各有單獨的列進行儲存。

Chunk:由同一序列的多個連續的 Page 組成,一個檔同一個序列可以儲存多個 Chunk。

ChunkGroup:由一個裝置的一至多個 Chunk 組成,多個 Chunk 可共享一列時間儲存(多值模型)。

Index:TsFile 末尾的後設資料檔包含序列內部時間維度的索引和序列間的索引資訊。

TsFile 檔結構

由於每列數據的同質性,TsFile 可實作更好的壓縮比;透過僅將必要的數據列載入到記憶體中,TsFile 可加快查詢速度;透過將數據組織成可管理的單元進行處理和檢索,TsFile 可提高可延伸性。

2. 編碼和壓縮技術

TsFile 透過采用二階差分編碼、遊程編碼(RLE)、位壓縮和 Snappy 等先進的編碼和壓縮技術,最佳化時序數據的儲存和存取,並支持對時間戳列和數據值列進行單獨編碼,以實作更好的數據處理效能。

其獨特之處在於編碼演算法專為時序數據特性設計,聚焦在時間內容和數據之間的相關性。此外,TsFile 結合了頻域編碼,利用量化和位寬縮減來高效儲存頻域數據,在不會影響數據準確性的情況下節省空間占用。

TsFile、Parquet 和 ORC 三種檔格式的比較

基於對時序數據套用需求的深刻理解,TsFile 有助於實作時序數據高壓縮比和即時存取速度,並為企業進一步構建高效、可延伸、靈活的數據分析平台提供底層檔技術支撐。

共創 Apache TsFile,共贏數據時代

透過上述介紹不難看出,基於時序數據特性,為時序數據管理量身客製的 TsFile 不僅在儲存方面具有優勢,也可提升時序數據的寫入、查詢、分析等多個核心環節的效能表現。這不僅可以幫助企業更好地控制部署成本,同時可以保障時序數據管理的靈活性與易用性。

從 IoTDB 的基礎元件到獨立計畫的發展歷程,也從側面證明著 TsFile 的國產技術研發成果,正在國際上對時序數據管理產生著重要影響力。此前,國際軟體領域媒體平台 The New Stack 專門采訪介紹了 TsFile 計畫。

數據時代,時序數據作為千行百業數位化轉型的核心要素,最佳化其管理方式勢在必行。

未來,圍繞時序數據管理,TsFile 將進一步最佳化效能和多語言支持,整合更多的編碼和壓縮方法,並開發更多基於 TsFile 的時序數據視覺化、解析和分析工具。

同時,隨著晉升為 Apache TLP 計畫,TsFile 希望與全球更多開發者合作,從底層檔技術角度,重新定義可靠、高效的時序數據管理方案,推動更多企業以時序數據價值為驅動,實作產能飛躍與業務創新。