Databend 社区积极拥抱 Rust 生态(202111回顾)

Databend 旨在成为一个 开源、弹性、可靠 的无服务器数仓,查询快如闪电,与 弹性、简单、低成本 的云服务有机结合。数据云的构建,从未如此简单! Databend 社区积极拥抱 Rust 生态(202111回顾)_第1张图片

Databend 对 Rust 社区的意义

Databend 的团队成员大多有丰富的数据库/数据平台开发及开源协作经验。我们选用 Rust 来开发高性能、高可靠的下一代数据云服务。 Databend 社区积极拥抱 Rust 生态(202111回顾)_第2张图片

  1. 打造 Rust 数仓领域的头号种子选手,展示 Rust 的魅力,推动 Rust 在数据库领域的进一步应用。
  2. 持续推动 Rust 在数据治理/数据库/云原生等领域的发力,改善生态和工具。
  3. 为广大 Rustacean 提供更多学习/练手/就业机会,也为社区培养一批数据库开发能手。

Databend 和 Rust 生态的紧密联系

从 Databend 社区建立的第一天起,我们就抱有“从社区中来,到社区中去”的信念,积极拥抱开源和 Rust 生态。

课程

自 8 月起,Databend 和 Rust 中文社区、知数堂一道,启动了面向 Rustacean 和数据库开发人员的公开课计划。 Databend 社区积极拥抱 Rust 生态(202111回顾)_第3张图片

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 生态(202111回顾)_第4张图片

  • 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 社区是由每一个关注者、开发者、使用者共同建设的平台,在未来我们也会持续完善回馈机制,帮助每个社区成员能够在社区建设过程中获得成长与进步。 Databend 社区积极拥抱 Rust 生态(202111回顾)_第5张图片

  1. 建立和健全开发者成长体系,为 Rustacean 提供学习、实践、创新的平台
  2. 持续输出高质量 Rust + 数据库 课程,邀请行业专家分享开发实践经验,宣传 Databend 生态中的优质项目
  3. 为重要的上下游项目和优质开发者提供赞助、培训等机会,以鼓励其在开源和生态中的贡献

Databend 名字渊源于相对论。由于物质的存在,时间和空间会发生弯曲,这就是相对论的 Time Bend 。我们期望 Databend 的出现可以让用户重新审视数据,从而挖掘数据中存在的更大价值, 同时让用户大数据这个领域中:Make life easier 。

欢迎加入 Databend 社区,与我们一道,用 Rust 构建下一代的数据云服务。

本文由博客一文多发平台 OpenWrite 发布!

你可能感兴趣的:(Databend)