用户代表變身核心貢獻者!
2026 年 1 月 12 日,經時序數據庫 Apache IoTDB 社區投票,重慶中冶賽迪的時振宇成為 Apache IoTDB Committer。深耕數據庫領域多年,兼具 IoTDB 開發者與用户雙重視角的他,將如何解讀 IoTDB 的技術迭代、產品化路徑與開源模式?

時振宇
我是時振宇,算是數據庫行業摸爬滾打多年的 “老兵” 了。我的職業生涯起步於 IBM,在那裏做 DB2 數據庫的研發與客户支持工作。離開 IBM 後,我加入浪潮數據庫團隊,2024 年底,我回到重慶中冶賽迪工作。因為工作需要深入研究與應用 IoTDB,我正式加入 IoTDB 開源社區,開始提交 PR,一步步從社區參與者成長為 Committer。
關於 Apache IoTDB
最開始你是怎麼了解到 Apache IoTDB 這個項目的?
其實早在浪潮工作期間,我就已經關注到了 Apache IoTDB。當時看到兩個非常具備含金量的國際數據庫基準測試性能排行榜,benchANT 和 TPCx-IoT,IoTDB 在排行榜中展現出的高吞吐量、高壓縮比、低查詢延遲的優異成績,讓我印象非常深刻。也正是這次線上的 “初見”,讓我記住了這個在時序數據庫領域實力突出的開源項目。
是什麼讓你最終選擇參與到 Apache IoTDB 這個項目中?
一方面是工作的需求,另一方面則是我個人的主動選擇。從技術層面來説,IoTDB 的軟件開發流程非常規範,從需求分析、架構設計,到代碼編寫、測試驗收,每一個環節都有清晰的標準和流程。在這樣一套成熟的體系下做開發,能讓人少走很多彎路,心裏特別踏實。
更重要的是,社區對新人的態度特別友好,不管是遇到技術難題還是協作問題,只要在社區提問,都會得到資深開發者耐心細緻的解答。這種包容開放的氛圍,讓我決定深入參與這個項目。
在 Apache IoTDB 中主要負責哪一部分的內容?
我主要參與了下面三個模塊的工作:
-
存儲引擎內存表優化:對內存表的底層結構進行改造,使其支持多 TVList 模式,提升讀寫併發場景下的數據寫入和查詢吞吐量。
-
查詢寫回功能實現:在表模型下開發了 SELECT INTO 語法支持,可以直接將查詢結果寫入另一張表,無需額外編寫數據導出和導入的腳本。
-
公用表表達式功能開發:實現了表模型下的 WITH CLAUSE 語法支持,允許在 SQL 語句中定義一個臨時結果集合,這個集合可以在當前 SQL 語句範圍內被多次引用,減少重複計算,優化查詢效率。
在參與 IoTDB 項目建設的過程中,對 IoTDB 有哪些新的認識?
我認為,數據庫作為支撐各行業系統運行的核心基礎軟件,穩定性和可靠性就是它的生命線,而這背後必須依靠一套超嚴苛的質量保障體系來支撐。
IoTDB 的需求文檔和設計文檔都做得相當紮實。需求文檔裏不只是簡單羅列功能點,還包含大量真實的客户應用場景案例,各種參數配置和邊界條件都標註得清清楚楚,讓開發者能精準把握用户的真實需求。部分設計文檔還會直接附上研發階段的性能測試結果,直觀展示方案的可行性和優勢。
另外,IoTDB 的敏捷開發實踐也遠超我的預期,甚至比很多大公司做得都要到位。在原廠團隊成立的公司,天謀科技的層面,產品組、研發組、測試組會形成跨團隊的協同迭代流程,確保用户需求能夠快速響應、高效落地。在研發組內部,也建立了 “設計文檔-代碼開發-自主測試” 的迭代機制,既保證了開發效率,又能牢牢守住代碼質量的底線。
有什麼參與貢獻過程中的故事分享?
我印象最深的是公用表表達式(CTE)功能的開發經歷。這個功能的初版需求很明確,就是支持 With Clause 語法,但不要求實現 CTE 物化。畢竟在業內,不少知名的數據庫產品也沒有支持這個特性,所以初版開發的難度不算大,大概幾周時間就完成了。
但在功能評審環節,社區的幾位資深開發者和同學都提出了建議,希望支持 CTE 物化功能,這樣在比如複雜嵌套查詢的場景中,能帶來非常明顯的性能提升,也更能滿足用户的實際需求。實現這個功能之後,我們又進一步加入了非關聯子查詢常量摺疊的功能,讓查詢邏輯更加精簡高效。
這次改動讓開發週期拉長了好幾個月,但整個過程讓我真切感受到了 Apache IoTDB 團隊精益求精的產品態度。社區裏的每一次功能優化,都不是為了炫技,而是實實在在衝着解決真實客户的痛點去的,從來不會無的放矢。
是什麼讓你能一直堅持參與 Apache IoTDB 項目,最終成為 Committer 呢?
一方面是公司的大力支持,公司鼓勵我參與 IoTDB 開源項目,不僅為我提供了充足的時間和資源,還鼓勵我將項目經驗反哺到公司的業務實踐中。
另一方面源於我個人的興趣,我也算半個 geek,一直對數據庫技術抱有濃厚的熱情。IoTDB 在時序數據庫領域取得的成績讓我很好奇這樣一個產品的架構和技術,也很想和社區的小夥伴一起,推動這個優秀的開源項目不斷向前發展。
關於開源社區
之前有過參與開源社區的經驗嗎?對開源/開源社區有什麼新的認識嗎?
我之前有過一些零散的開源社區接觸經歷,比如參加過 PingCAP 的開發者大會,也嘗試過提交一些簡單的代碼。但後來因為在 IBM 的工作重點轉向了非數據庫領域,所以沒能堅持下來,也沒能成為正式的 Committer。
這次深入參與 IoTDB 開源項目,讓我對開源和開源社區有了全新的、更深刻的認識。一個開源項目能夠長期穩定運行,靠的從來不是某幾個人的 “高光時刻”,而是一羣志同道合的開發者日復一日的默默付出。開源也絕不僅僅是代碼的開放,更意味着一種持續的責任與投入:要及時響應社區用户的 issue 反饋,保障大家的使用體驗;要嚴謹細緻地 review 每一份貢獻 PR,守住項目的代碼質量底線;還要耐心引導新貢獻者融入社區,維繫社區的活力與生命力。
這些工作往往瑣碎且耗時,但正是這些看似平凡的付出,才構築起了開源項目的堅實根基。
你覺得開源社區對 Apache IoTDB 的“加成”是?
我認為開源社區對 IoTDB 的 “加成” 主要體現在兩個核心方面:
第一是提升產品信任度。開源模式讓 IoTDB 的源碼完全公開,用户和開發者可以隨時查看、審計代碼,直觀地瞭解產品的技術架構和代碼質量。這種透明性帶來的信任度,是任何單純的商業宣傳都無法比擬的。
第二是驅動產品持續進化。開源社區就像一個 “智慧蓄水池”,不僅有全球的開發者來貢獻代碼、優化功能,還有大量來自不同行業的用户在實際使用中反饋真實的需求和問題。這些來自一線的聲音,讓 IoTDB 能精準把握行業痛點,跟着真實場景不斷迭代完善,始終保持技術領先性。
有沒有給想要參與 Apache IoTDB 開源社區貢獻的小夥伴一點小建議?
有三個小建議:
-
從簡入手,積累 PR 經驗:剛入門的小夥伴,可以優先選擇簡單的任務作為切入點,比如小 Bug 修復、文檔優化等等。這些任務既能幫助大家快速熟悉社區的協作流程和代碼規範,又能積累 PR 提交經驗,建立參與貢獻的信心。
-
研讀歷史代碼,學習優秀實踐:社區裏資深開發者的歷史代碼,是最好的學習教材。通過研讀這些代碼,可以深入理解 IoTDB 的架構設計思路、編碼規範和性能優化技巧,能讓自己的技術能力實現快速提升。
-
藉助 AI 工具,提升貢獻效率:可以合理利用 Claude Code、Cursor 等 AI 工具,輔助自己進行代碼理解和測試用例編寫。這些工具能有效降低貢獻門檻,讓你用更短的時間完成對社區的高效貢獻。
成為 Committer 的感言!
我想由衷地感謝社區裏每一位幫助過我的夥伴,在我從社區新人一步步成長為 Committer 的過程中,離不開大家的耐心指導和信任認可。這份榮譽,不僅是對我過去工作的肯定,更是我未來前行的動力。
接下來,我會帶着這份責任,繼續深耕 IoTDB 的研發工作,為項目添磚加瓦,貢獻自己的一份力量。同時,我也希望更多對數據庫技術、對開源項目感興趣的小夥伴加入 IoTDB 社區。在這裏,你不僅能提升技術能力,還能結識一羣志同道合的夥伴,一起打造更優秀的時序數據庫產品!