開源之夏(全稱(cheng):開(kai)源(yuan)(yuan)軟(ruan)件(jian)供應鏈(lian)點(dian)亮計(ji)劃(hua)——暑期 2022)是由中國(guo)科學(xue)(xue)院軟(ruan)件(jian)研究所(suo)與(yu) OpenEuler 社區共同(tong)主辦的(de)一項面(mian)向高校學(xue)(xue)生(sheng)的(de)暑期在線(xian)活動,旨在鼓勵在校學(xue)(xue)生(sheng)積極參與(yu)開(kai)源(yuan)(yuan)軟(ruan)件(jian)的(de)開(kai)發維護,促進優秀開(kai)源(yuan)(yuan)軟(ruan)件(jian)社區的(de)蓬勃發展(zhan)。

TDengine 社(she)區(qu)已加入(ru)開源軟件供(gong)應鏈點亮計(ji)劃(hua)。學生可以自(zi)由選(xuan)擇項(xiang)(xiang)目(mu),與(yu)社(she)區(qu)導師溝通實(shi)(shi)現(xian)方(fang)案并撰寫項(xiang)(xiang)目(mu)計(ji)劃(hua)書。被選(xuan)中的(de)(de)學生將在 TDengine 社(she)區(qu)導師(資深、高水平的(de)(de)程(cheng)(cheng)序員前(qian)輩)親自(zi)指導的(de)(de)機會,完(wan)成開發工作,并將成果貢獻給社(she)區(qu)。根據項(xiang)(xiang)目(mu)的(de)(de)難(nan)易程(cheng)(cheng)度和完(wan)成情況,參與(yu)并按(an)要求完(wan)成項(xiang)(xiang)目(mu)的(de)(de)同學,除(chu)了能(neng)獲得主辦方(fang)提(ti)供(gong)的(de)(de)獎金和證(zheng)書獎勵外,還(huan)能(neng)領取 TDengine 官方(fang)定制紀念品一份(fen)。表現(xian)優秀的(de)(de)同學,可以成為社(she)區(qu) Contributor,還(huan)可以被推薦至 TDengine 研發團(tuan)隊實(shi)(shi)習或(huo)成為全職員工。
學生指南:
TDengine 社區提供 4 個任務(wu),列表如下:
項目 1 – TDengine 客戶端代碼深度優化
項目描述:TDengine Database 整(zheng)體服務由 Server 和 Client 端組成。Client 端承擔了讀寫(xie)請求的(de)解析、拼(pin)裝、序列化、分布(bu)式(shi)訪問(wen)(wen)、Meta 緩存(cun)等(deng)重要職(zhi)責。在高(gao)并發高(gao)吞吐(tu)的(de)訪問(wen)(wen)過程中,這些功能(neng)(neng)的(de)實現(xian)方式(shi),將(jiang)會(hui)決定 TDengine 的(de)性(xing)(xing)能(neng)(neng)效(xiao)果。因此本(ben)次(ci)項目將(jiang)會(hui)通過探學習 TDengine Client 的(de)代碼(ma)結構(gou),通過 BPF 等(deng)工具,引入 Tracing,對(dui)每個核心技術點(dian)進行 Performance Analysis/Research/Coding/Testing,落(luo)地高(gao)性(xing)(xing)能(neng)(neng)的(de)實現(xian)方式(shi),從(cong)而提升 Client 的(de)整(zheng)體性(xing)(xing)能(neng)(neng)。你將(jiang)會(hui)有機會(hui)優(you)化整(zheng)個時序物聯網行業的(de)能(neng)(neng)效(xiao)。
項目難度:Advanced
項目主導師:陳偉燦
項目產出要求:
- client 代碼分析報告,包含代碼架構圖,功能清單,調用鏈關系
- 目標優化功能的性能分析報告
- 主流技術點的調研、分析與對比報告
- 編碼設計與編碼實現
- 測試方案、測試用例、對比測試報告
- 項目總結報告
項目技術要求:
- 熟悉各類排序算法、字符串匹配、正則表達式
- 熟悉隊列、哈希、堆、棧等數據結構
- 熟悉 Protobuf 等各類序列化技術
- 熟悉 Linux 內存分配原理及機制
- 熟悉同步/異步、阻塞/非阻塞等網絡概念,熟悉 socket 編程
- 掌握至少1種 C 的 unit test 方法
項目 2 – TDengine 流計算特性測試工具開發
項目描述:隨著數據(ju)時(shi)效性(xing)(xing)(xing)對企業(ye)的(de)(de)精細化運營越(yue)來越(yue)重要,“實(shi)(shi)時(shi)即未來”、“實(shi)(shi)時(shi)數倉”成為了近幾年炙手可熱的(de)(de)詞。流計(ji)算(suan)領域也在這幾年發(fa)生了巨大的(de)(de)變化, 但在這個領域中(zhong),還(huan)沒有(you)一(yi)個行業(ye)標準的(de)(de)基準測試(shi)(shi), 本項(xiang)目要求開發(fa)一(yi)個測試(shi)(shi)工具,能(neng)夠(gou)對 TDengine 流計(ji)算(suan)特(te)性(xing)(xing)(xing)的(de)(de)所(suo)有(you)功能(neng),在各種(zhong)使(shi)用場景中(zhong)進行測試(shi)(shi),保證 TDengine 流計(ji)算(suan)特(te)性(xing)(xing)(xing)的(de)(de)正確性(xing)(xing)(xing)和(he)健壯性(xing)(xing)(xing), 測試(shi)(shi)范圍包括并不(bu)限于(yu)功能(neng)、性(xing)(xing)(xing)能(neng)、穩定性(xing)(xing)(xing)測試(shi)(shi), 同時(shi)要保證能(neng)夠(gou)采集到相應(ying)的(de)(de)吞吐量、延遲(chi)、CPU 和(he)內存(cun)等信息。
項目難度:Advanced
項目主導師:賈靖斌
項目產出要求:
- 測試工具的設計文檔、代碼和使用手冊;
- 基礎場景的測試用例;
- 交付物全部提交到 TDengine 的 GitHub 倉庫。
項目技術要求:
- 測試工具能夠模擬生產者,產生數據流,寫入 TDengine;
- 測試工具能夠模擬消費者,從 TDengine 進行消費;
- 測試工具支持通過命令行參數,或配置腳本,獲取生產者的行為;
- 測試工具支持通過命令行參數,或配置腳本,獲取消費者的行為;
- 支持測試腳本控制該測試工具,對 TDengine 流計算特性的所有功能進行測試;
項目 3 – TDengine Visual Studio Code 插件開發
項目描述:完成 TDengine 的 Visual Studio Code 插(cha)件開(kai)發(fa),使用此插(cha)件中可以進行(xing) TDengine Database 連接、查詢(xun)、插(cha)入等(deng)常(chang)規(gui)操(cao)作。
項目難度:Advanced
項目主導師:霍立波
合作導師:桑樹多
項目產出要求:
- 可以正常使用的 Visual Studio Code 插件,通過此插件實現 TDengine 數據管理,并將源碼提交至 TDengine 的 GitHub 倉庫。
- 完整的軟件設計文檔及功能列表。
- 完整的部署文檔及使用說明。
項目技術要求:
- 編程可以選擇:TypeScript/JavaScript 進行開發。
- 基本功能要求:
- 通過界面配置數據庫連接參數。
- 導航欄可以查看數據庫、數據表列表。
- 雙擊數據表可以在主界面顯示數據表內容,并可以對列進行排序。
- 主界面可以執行 SQL 語句并顯示結果。
- 可選功能要求:
- 實現導入/導出,支持 SQL、CSV 等多種格式。
- 主界面可以添加數據。
項目 4 – 時序數據集建模
項目描述:選擇一個(ge)具有代表性的開放(fang)時序數據(ju)集(ji)(如天氣、股(gu)票、天文、地震),編寫(xie)從數據(ju)源定期(qi)同(tong)步數據(ju)的腳本,進行(xing)數據(ju)建(jian)模,編寫(xie)典型的查詢語句(ju)、通過(guo)可視化軟件(如 Grafana)進行(xing)展示。
項目難度:Basic
項目主導師:Pan Yang
項目產出要求:
- 項目設計文檔,包括產品設計和技術方案設計
- 開放數據集同步腳本
- 建模文檔、創建數據庫表的 SQL 文件
- 典型的查詢 SQL 文件
- 對接數據可視化軟件,可以進行數據的可視化展示
項目技術要求:
- TDengine 數據庫建模和查詢的基礎知識
- 建議選擇 Go、Python 語言
- 選擇一個流行的開源可視化軟件,如 Grafana
注冊報名
報名鏈接:
報名咨詢:



























