随着 Apache Doris 在越来越多的公司中得到落地和运用,Apache Doris 的开发者和用户规模处于快速增长中,而诸多关于 Apache Doris 功能特性、开发计划、版本迭代等多方面的讨论,也发生在微信用户交流群、知乎、百度 AI 开放平台的 Doris 论坛、开源中国等各大技术论坛和社交媒体中。
作为 Apache Doris 开发团队,我们很欣喜地看到 Doris 开始被越来越多人知晓和认可。但与此同时,我们希望可以与社区开发者和用户建立更直接的沟通渠道,期待直面社区用户的需求与痛点,也期待可以帮助用户更清晰地了解 Apache Doris 的开发动态和后续计划,并帮助开发者更顺畅进行项目开发。因此在 2021 年 8 月 24 日,我们面向所有社区开发者和用户召开了第一期 Apache Doris 社区开发者会议。
在会议前一周,我们提前通过公众号发布了议题的征集活动,来自 百度智能云、蜀海、小米、字节、美团、网易有道 的多名开发者贡献了 12 个议题,其中社区建设方面的议题 4 个,功能研发方向议题 8 个,文末点击“阅读原文”或复制下方链接并在浏览器打开,即可查看详细议题内容 。
https://github.com/apache/incubator-doris/issues/6521
社区建设相关
01 新手任务
新手任务的目标是为了引入更多的开发者加入到社区建设中来。对于第一次参与开源贡献的开发者,可以从新手任务列表中选择一个练手,这样可以帮助开发者熟悉提交流程并感受到社区友好度。我们已经参考了 Apache Pulsar 、 Apache DolphinScheduler 等成熟项目,目前新手任务正在规划中,近期也会发布出来。
02 SIG(Special Interest Group)建设
社区各功能开发偏向于点对点模式,或者个人模式,希望按模块建立一些特殊兴趣小组,将 PR / Issue按照模块分类,发到对应的小组中,更方便地一起讨论相关问题,也使得对某些模块感兴趣的人可以关注到社区发展进度。
目前 Doris 其实已经建立了几个方向的 SIG ,包括 Doris Manager 、向量化执行引擎等,后续我们也会逐渐开放更多的 SIG ,欢迎更多对 Doris SIG 感兴趣的小伙伴参与进来,可以扫码或直接访问以下链接并提交信息,我们将尽快联系您~
扫码加入 Apache Doris SIG
03 文档建设
目前 Doris 文档的全面性是有一定缺失的,有些是因为开发的时候忘记补充文档,有些是因为功能迭代时没有及时更新文档,同时文档格式也存在一些问题,我们希望可以进行整体重构。
通过文档的整体重构,一方面可以帮助 Doris 来完善语法手册,另一方面这对于新手是一个比较友好的任务,可以帮助大家尽快熟悉 Doris 的功能,也能帮助大家尽快融入到社区里。我们在 Github 上新建了一个文档示例的 Issue,并把所有文档的空的框架搭建好了,只需要填充内容即可,希望能有更多想加入社区建设的小伙伴参与到文档建设中来。
04 回归测试
当前对于开发者提交的 PR ,社区只提供单元测试的检测和一个包含 100 多个 Case 的最小测试集来保证代码质量。虽然百度内部有完整的回归测试集会进行每日回归测试,但对于外部开发者暂不可见,因此不利于社区开发者进行测试。
后续我们将尝试提供一套回归测试框架,并能够支持开发者进行 Case 添加和完善,从而进一步保证代码质量。
功能开发相关
01 向量化执行引擎
通过向量化算子的改造,我们想显著提升 Doris 的查询性能。该工作涉及到所有算子及存储层的代码重构,并将会是今年社区的重点研发方向之一。
目前相关工作的第一阶段已经完成,可以实现单表的向量化执行操作。该版本预计会在 9 月份发布第一个版本。后续工作也在陆续开展中,预计将于 Q4 季度与大家见面。目前该工作的 SIG 已成立,如有参与意向,请与我们联系。
02 Doris Manager可视化运维监控平台
Doris Manager 主要定位是接入集群监控并支持一些运维类操作,比如集群部署向导、节点管理、滚动升级、在线扩缩容等。目前 Doris Manager 正处于紧锣密鼓的开发阶段,9 月份我们会先面向社区推出一版。欢迎有更多社区的小伙伴加入,尤其是前端开发同学。当然也欢迎大家反馈运维过程中的问题,我们可以进行产品化和功能化的抽象后,将其加入到 Doris Manager 的功能 List 中。
03 New Optimizer 查询优化器
查询优化器是 Doris 最重要的组成部分之⼀。当前的查询优化器框架存在一些层级设计不清晰以及扩展性较差等问题。我们希望年底可以推出第一版可运行的查询优化器,当前已经开展了一些框架设计的验证工作以及周边相关功能的开发,如统计信息的收集等。欢迎有查询优化器相关研发经验的同学联系我们。
最后希望大家一起参与进来。首先希望能给 New Optimizer 有奖征集一个新名字,能凸现 New Optimizer 的某种特质,⽐如最快、最精确的定位 Best Plan的能⼒。同时也诚招对 New Optimizer 有想法的热⾎⻘年⼀起合作,希望对 Optimizer 技术有强烈热情,如果理解 Cascades 理论,或者有其他开源产品如 Spark、Presto 优化器开发经验更好。我们也准备了一些比较简单的新手任务,希望大家能参与进来。
04 资源隔离
资源隔离也是非常多用户关心的功能,对于 MPP 架构的数据库而言,资源隔离是比较头疼的问题,因为 MPP 架构设计的初衷就是尽可能利用集群资源来处理查询任务,如果存在多个任务的话必定会发生资源抢占。
目前我们主要做了两部分的工作,一是资源标签,对 Doris 集群中的存储计算节点进行资源标签组的划分,从而可以在节点级别进行集群内资源的划分和隔离。二是对于单个 Query 的资源限制,通过参数来限制一个查询在单个节点的 CPU 使用资源的限制,比较适用于用户跑定时任务而对延迟不敏感的场景。这两部分工作已经开发完成了,最近就会合入社区。
05 Z-Order Indexing
Doris 目前的数据是按照前缀列排序存储的,因此在包含前缀查询条件时,可以在排序数据上进行快速的数据查找。但如果查询条件不是前缀列,则无法利用数据排序的特征进行快速数据查找。调研后,我们发现 Z-Order Indexing 可以解决这个问题,在看板类多列查询的场景可以起到很好过滤效果。目前算法基本开发完成,正在进行相关测试和验证工作。
同时,Z-Order 可能会带来一定的写入性能下降,虽然目前的测试结果发现性能影响不大,但是还需要进一步细化测试结论
06 PreparedStatement
Doris 当前不支持 Server 端的 Prepared Statement 操作。Prepared Statement 可以有效防止 SQL 注入问题,同时可以在一些场景下减少查询语句的重复解析开销。
对于 SQL 注入问题,因为绝大部分语言的 MySQL Driver 都支持在 Client 端进行 Prepared Statement 操作,因此可以解决大部分 SQL 注入的问题。
关于 Server 端的 Prepared Statement 操作,我们也会继续调研。
07 InternalErrorCode
目前 Doris 中的 ErrorCode 比较混乱,不太利于程序的访问和错误判断。后续我们将梳理错误码,形成更规范的错误信息展示。
08 导入性能优化
目前 Doris 的导入性能依然有很大优化空间,尤其在内存结构的生成、写盘阶段的优化。这方面有待进一步的分析。
以上是本期 Apache Doris 社区开发者会议总结的全部内容,开发者会议的回放视频我们已上传,后续召开开发者会议前我们将会提前向社区开放议题征集文档,欢迎大家持续关注。
视频回看地址
如果你对 Doris 的技术方向感兴趣,希望一同开发,或者有其他建议或意见,可以通过以下渠道参与:
1.订阅并发送邮件至 dev@doris.apache.org
以 Apache Way 的方式参与社区,订阅方式见官网:
http://doris.incubator.apache.org/master/zh-CN/community/subscribe-mail-list.html#_1-发送订阅邮件
邮件列表是 Apache 社区最常用的沟通方式。我们会积极回复邮件列表中的问题。
2.在 Doris 论坛发帖留言
在百度开发者社区 Doris 论坛 或 GitHub 论坛发帖留言讨论:
https://ai.baidu.com/forum/topic/list/209
https://github.com/apache/incubator-doris/discussions
我们也会不定期的将一些用户常见问题在论坛中进行汇总和答复,方便用户查找。
3. 微信公众号后台留言
直接在 ApacheDoris 微信公众号后台留言,您可以留下您的联系方式,我们将与您取得联系。
4. 加入 Baidu Doris 团队
Baidu Doris 团队主要负责 Doris 内核研发、商业化支持、云端服务和私有化部署。同时也负责维护 Doris 开源社区,欢迎有大数据系统内核研发经验的同学加入我们。您可以通过公众号后台留言或者发送简历至 talent-doris@baidu.com,我们虚位以待。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/138801.html