Databend 旨在成為一個 開源、彈性、可靠 的無服務器數倉,查詢快如閃電,與 彈性、簡單、低成本 的雲服務有機結合。數據雲的構建,從未如此簡單!
Databend 對 Rust 社區的意義
Databend 的團隊成員大多有豐富的數據庫/數據平台開發及開源協作經驗。我們選用 Rust 來開發高性能、高可靠的下一代數據雲服務。
- 打造 Rust 數倉領域的頭號種子選手,展示 Rust 的魅力,推動 Rust 在數據庫領域的進一步應用。
- 持續推動 Rust 在數據治理/數據庫/雲原生等領域的發力,改善生態和工具。
- 為廣大 Rustacean 提供更多學習/練手/就業機會,也為社區培養一批數據庫開發能手。
Databend 和 Rust 生態的緊密聯系
從 Databend 社區建立的第一天起,我們就抱有“從社區中來,到社區中去”的信念,積極擁抱開源和 Rust 生態。
課程
自 8 月起,Databend 和 Rust 中文社區、知數堂一道,啟動了面向 Rustacean 和數據庫開發人員的公開課計划。
Rust 培養提高計划
- 認識面向基礎架構語言 Rust :https://www.bilibili.com/video/BV1mg411778g
- 理解 Rust 的所有權 :https://www.bilibili.com/video/BV1264y1i7U9
- 通過實戰理解 Rust 宏 | 90 分鍾讓你深入理解 Rust 宏:https://www.bilibili.com/video/BV1Yb4y1U7r1
- 通過 Datafuse 理解全鏈路跟蹤:https://www.bilibili.com/video/BV1YA411c7ia
- Rust 異步編程入門 - Futures:https://www.bilibili.com/video/BV1mf4y1N7MJ
- Tokio 入門之運行時介紹:https://www.bilibili.com/video/BV1oy4y1G7jC
- 深入了解 Rust 閉包:https://www.bilibili.com/video/BV1Zf4y1J7jq
- 利用 Tokio 實現一個高性能 Mini Http Server:https://www.bilibili.com/video/BV143411q79B
- 基於 Axum-web 和 MySQL 開發短鏈服務:https://www.bilibili.com/video/BV143411q79B
- 使用 Redis 給短鏈服務加速:https://www.bilibili.com/video/BV1iQ4y1B7qX
- 使用 Rust 開發動態鏈接庫並在 Golang 中使用:https://www.bilibili.com/video/BV1WT4y1o72d
- 初探 Rust 微服務架構:https://www.bilibili.com/video/BV1jL4y1B7rK
- 探討 Rust 異步編程框架 Mio:https://www.bilibili.com/video/BV1P3411k7tL
Databend 專欄
- 新一代雲原生數倉 Databend 架構及現狀:https://www.bilibili.com/video/BV1dh411b7Vv
- Databend 產品如何做測試品控:https://www.bilibili.com/video/BV1CL411G7TW
Databend 對 Rust 上游貢獻
Databend 的成功離不開 Rust 生態的繁榮和高質量的上游項目,Databend 社區也會不定期向上游提供補丁,為共築更好的 Rust 生態而努力。
- 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 共識算法實現
- 修復:重啟時 NonVoter 應該保持其身份而不是轉為 Follower
- 一系列額外的修復,列在 https://github.com/async-raft/async-raft/issues/132#issuecomment-915853535
- 由於 async-raft 原庫的維護狀態並不好,特別維護 datafuse-extras/async-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 社區是由每一個關注者、開發者、使用者共同建設的平台,在未來我們也會持續完善回饋機制,幫助每個社區成員能夠在社區建設過程中獲得成長與進步。
- 建立和健全開發者成長體系,為 Rustacean 提供學習、實踐、創新的平台
- 持續輸出高質量 Rust + 數據庫 課程,邀請行業專家分享開發實踐經驗,宣傳 Databend 生態中的優質項目
- 為重要的上下游項目和優質開發者提供贊助、培訓等機會,以鼓勵其在開源和生態中的貢獻
Databend 名字淵源於相對論。由於物質的存在,時間和空間會發生彎曲,這就是相對論的 Time Bend 。我們期望 Databend 的出現可以讓用戶重新審視數據,從而挖掘數據中存在的更大價值, 同時讓用戶大數據這個領域中:Make life easier 。
歡迎加入 Databend 社區,與我們一道,用 Rust 構建下一代的數據雲服務。
如果想了解更多,可以關注公眾號: Databend