Databend 社區積極擁抱 Rust 生態(202111回顧)


Databend 旨在成為一個 開源、彈性、可靠 的無服務器數倉,查詢快如閃電,與 彈性、簡單、低成本 的雲服務有機結合。數據雲的構建,從未如此簡單!

Databend 對 Rust 社區的意義

Databend 的團隊成員大多有豐富的數據庫/數據平台開發及開源協作經驗。我們選用 Rust 來開發高性能、高可靠的下一代數據雲服務。

  1. 打造 Rust 數倉領域的頭號種子選手,展示 Rust 的魅力,推動 Rust 在數據庫領域的進一步應用。
  2. 持續推動 Rust 在數據治理/數據庫/雲原生等領域的發力,改善生態和工具。
  3. 為廣大 Rustacean 提供更多學習/練手/就業機會,也為社區培養一批數據庫開發能手。

Databend 和 Rust 生態的緊密聯系

從 Databend 社區建立的第一天起,我們就抱有“從社區中來,到社區中去”的信念,積極擁抱開源和 Rust 生態。

課程

自 8 月起,Databend 和 Rust 中文社區、知數堂一道,啟動了面向 Rustacean 和數據庫開發人員的公開課計划。

Rust 培養提高計划

Databend 專欄

Databend 對 Rust 上游貢獻

Databend 的成功離不開 Rust 生態的繁榮和高質量的上游項目,Databend 社區也會不定期向上游提供補丁,為共築更好的 Rust 生態而努力。
file

  • advisory-db - 為發布在 crates.io 的 Rust crate 制作的安全咨詢數據庫
  • 為 RUSTSEC-2020-0009 添加 flatbuffers 補丁版本
  • arrow-rs & arrow-flight & parquet - Apache Arrow / Parquet 的官方 Rust 實現,Databend 早期的重要依賴
    • 為 sort 添加 limit 選項
    • 受 RUSTSEC-2020-0009 影響,更新 flatbuffers 到最新版本
    • prettytable-rs 處於未維護狀態,替換為 comfy-table
    • 更新 prost 到 0.8 ,以及相應的 tonic 更新
    • 更新 prost 到 0.9 ,以及相應的 tonic 更新,修復 error
  • arrow2 & arrow-format & parquet2 - 使用 transmute-free 操作重寫的 Arrow 和最快也最安全(unsafe free)的 Parquet 實現
    • 為 merge sort 添加 limit 選項
    • 改進 sort
    • 添加 wrapping_cast 提高 cast 性能
    • 添加對 BinaryArray 的計算支持
    • prettytable-rs 處於未維護狀態,替換為 comfy-table
    • 更新 prost 到 0.8 ,以及相應的 tonic 更新
    • 更新 prost 到 0.9 ,以及相應的 tonic 更新,修復 error 及 clippy lints
  • async-raft - 基於 tokio 的異步 raft 共識算法實現
  • cargo-license - 用於查看依賴所采用許可協議的實用工具
    • 更新依賴以避免沖突,修復 clippy lints
  • clickhouse-srv - 用於編寫可以充當 ClickHouse 服務器的綁定
    • 該項目由 Databend 團隊成員開發並維護。
    • 目前已經合並到 Databend 項目,位於 common/clickhouse-srv
  • float-cmp - 浮點數近似比較
    • 指定 num-traits 的最小版本,並修復 clippy lints,以幫助上游依賴通過 minver test
  • hashbrown - 高性能 HashMap ,目前也是標准庫的一部分
    • 更新 rand 到 0.8.3
  • lru-rs - Lru Cache 實現
    • 更新 hashbrown 到 0.11.2 ,修復 clippy lints
  • mockall - 用於方便編寫測試的實用庫
    • 更新受 RUSTSEC-2020-0095 影響的依賴
  • msql-srv - 用於編寫可以充當 MySQL / MariaDB 服務器的綁定
    • 修復 COM_FIELD_LIST 的相應
    • 同步依賴到最新版本,修復測試中的依賴
    • 增加基本的 AuthPlugin 支持
    • 查詢進度信息統計
    • 部分補丁正在試圖合並到上游,目前可以先在 datafuse-extras/msql-srv 試用
  • pprof - CPU / 應用程式性能測試工具
    • 更新 prost 到 0.8 ,以及相應的 tonic 更新
    • 更新 prost 到 0.9 ,以及相應的 tonic 更新,修復 clippy lints
  • ritelinked - 快速 & 好用的 LinkedHashMap & LinkedHashSet 實現
    • 該項目由 Databend 團隊成員開發並維護。
    • 目前位於 ritelabs/ritelinked
  • sqlparser-rs - 可拓展的 SQL 詞法分析器和語法解析器
    • 使用返回 error 替代 panic
    • 添加基於 honggfuzz 的模糊測試工具
    • 支持 tinyint
    • datafuse-extras/sqlparser-rs 目前包含一些 Databend 定制的特性
      • 支持 INSERT FORMAT
      • 支持 cast(a, b)
      • 使函數支持參數
      • 支持 substring(string, start, length) 語法
  • structopt-toml - structopt 的 TOML 默認值加載工具
    • failure 處於未維護狀態,替換為 anyhow

Databend 的社區建設計划

Databend 社區是由每一個關注者、開發者、使用者共同建設的平台,在未來我們也會持續完善回饋機制,幫助每個社區成員能夠在社區建設過程中獲得成長與進步。

  1. 建立和健全開發者成長體系,為 Rustacean 提供學習、實踐、創新的平台
  2. 持續輸出高質量 Rust + 數據庫 課程,邀請行業專家分享開發實踐經驗,宣傳 Databend 生態中的優質項目
  3. 為重要的上下游項目和優質開發者提供贊助、培訓等機會,以鼓勵其在開源和生態中的貢獻

Databend 名字淵源於相對論。由於物質的存在,時間和空間會發生彎曲,這就是相對論的 Time Bend 。我們期望 Databend 的出現可以讓用戶重新審視數據,從而挖掘數據中存在的更大價值, 同時讓用戶大數據這個領域中:Make life easier 。

歡迎加入 Databend 社區,與我們一道,用 Rust 構建下一代的數據雲服務。

如果想了解更多,可以關注公眾號: Databend


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM