• 开源之夏 2023 | Databend 社区项目总结与分享


    开源之夏是由中科院软件所“开源软件供应链点亮计划”发起并长期支持的一项暑期开源活动,旨在鼓励在校学生积极参与开源软件的开发维护,培养和发掘更多优秀的开发者,促进优秀开源软件社区的蓬勃发展,助力开源软件供应链建设。

    官方网站 开源软件供应链点亮计划-开源之夏2023

    在开源之夏 2023 活动中,Databend 社区共发布两个项目,一个顺利结项,并在开源之夏结业项目中进行展示,可以访问 开源之夏2023 - 结项公示 查看。

    另一个项目未能按照时间计划推进相关工作,项目经由社区接手完成。

    项目 1:实现 Databend UDF Server

    该项目的主要目标是实现一个 Databend UDF Server,允许用户创建、删除和执行 UDF。

    • 撰写 UDF Server 的 RFC。
    • 实现一个 MVP,提供创建、删除和执行 UDF 的功能,并编写相关测试。
    • 使用 Python 或其他语言创建示例。

    项目状态: 顺利结项

    学生姓名: 陈传乐

    跟踪问题: https://github.com/datafuselabs/databend/issues/12177

    对应提交: https://github.com/datafuselabs/databend/pull/12729

    相关介绍: 通过结合 Apache Arrow Flight API 实现 UDF Server ,用户可以使用自己喜爱的编程语言,来与 Databend 交互,从而拓展数据库的边界,实现更丰富和高效的数据工作流。文档位于:External Function | Databend 。

    经过进一步研发迭代,目前 databend-udf 已经发布 Python SDK 至 PyPI ,下面是一个使用 UDF 机制实现计算最大公约数的示例:

    1. from databend_udf import *
    2. @udf(
    3. input_types=["INT", "INT"],
    4. result_type="INT",
    5. skip_null=True,
    6. )
    7. def gcd(x: int, y: int) -> int:
    8. while y != 0:
    9. (x, y) = (y, x % y)
    10. return x
    11. if __name__ == '__main__':
    12. # create an external server listening at '0.0.0.0:8815'
    13. server = UDFServer("0.0.0.0:8815")
    14. # add defined functions
    15. server.add_function(gcd)
    16. # start the external server
    17. server.serve()

    项目 2:使用 Prometheus 重构 Databend 的 Metrics 组件

    使用 Prometheus(一个开源系统监控和警报工具包)重构 Databend 的 Metrics 组件。

    另外,本项目需要开发一个基于 Prometheus 的 macro 框架,以简化添加新 Metrics 的过程。

    项目状态: 由社区接手完成。

    跟踪问题: https://github.com/datafuselabs/databend/issues/12635

    对应提交: https://github.com/datafuselabs/databend/pull/12787

    相关介绍: metrics-rs 为不同的可观测性方案构建了一个通用的抽象层,支持包括 statsd、prometheus、new-relic 等在内的多种工具,但是 metrics-rs 无法很好地支持直方图统计之类的指标。

    如今,Prometheus 已成为可观测性领域的事实标准,使用原始的 Prometheus 客户端,而不是将指标推送给其他工具,会带来一些显而易见的好处:

    • 更好的性能:经过良好实现的观测指标的内存分配应该是 O(1) ,无需本地缓冲队列。
    • 减少抽象层:我们可以减少关于指标的抽象层,使代码路径更易于理解。
    • 更好的编码规范:目前我们在不同模块中有不同的指标标准实践,可以学习 Prometheus 社区的指标标准实践来统一我们的指标标准实践。

    现在,Databend 的可观测性指标已经完全迁移到 Prometheus 实现,在保持原有指标几乎不变的情况下,带来了更全面、更可靠的可观测性体验。

    结语

    今年是 Databend 社区第二次参与开源之夏活动,很高兴能够在活动中遇到富有热情和智慧的同学们。

    感谢所有参与项目的学生和社区成员的辛勤工作和付出! Databend 因你们而变得更加优秀。希望这些项目能够启发更多人参与到开源软件的开发中,并促进开源社区的繁荣和创新。

    如果你对 Databend 或其他开源项目感兴趣,欢迎加入相关社区,贡献自己的力量,共同推动开源软件的发展!祝愿大家能够在开源世界继续汲取养分,成长为技术大牛,继续引领开源浪潮。

    Connect With Us

    Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式数仓。期待您的关注,一起探索云原生数仓解决方案,打造新一代开源 Data Cloud。

    👨‍💻‍ Databend Cloud:https://databend.cn

    📖 Databend 文档:Databend

    💻 WeChat:Databend

    ✨ GitHub:https://github.com/datafuselabs/databend

  • 相关阅读:
    运筹学基础【四】 之 库存管理
    入坑KeePass(四)KeePass通过坚果云WebDav同步方法
    layui框架学习(45: 工具集模块)
    Apache 原生 Hadoop 运维命令
    【5 操作系统调度】
    1612A无线信道仿真器30MHz~6GHz
    视频降噪一些原理
    解决端口占用问题 Port xxxx was already in use
    【Leetcode】179. 最大数
    2022 IDC中国未来企业大奖优秀奖颁布,华为云数据库助力德邦快递获奖
  • 原文地址:https://blog.csdn.net/Databend/article/details/134559504