内容概述
在 2022 的最后一个双周里,GreptimeDB 团队与社区共同努力,完成了很多具有挑战性的任务:
迁移至 Arrow/Parquet 的官方版本,从而可以和 DataFusion 的最新功能保持同步;
重构优化了 gRPC 的接口,对开发者更为友好;
LogStore 实现了针对本地磁盘的 Compaction 功能,进一步优化存储引擎;
最后,GreptimeDB 终于有了自己的皮肤,Dashboard for GreptimeDB。🎉🎉🎉
社区贡献者名单
祝贺以下各位在过去 2 周内成为我们活跃的贡献者:
以上各位的贡献,慷慨有义,彰显实力,非常感谢。有了你们,以及跟你们一样有开源精神的朋友,GreptimeDB 一定会越来越好。
PR 亮点
db#753
迁移 Arrow/Parquet 到官方实现。现在,datafusion 的 arrow2 分支已不再维护,所以我们决定切换到 arrow,这样我们就可以跟上最新的 datafusion 版本了,这是一个巨大挑战的任务,很高兴我们完成了。
db#490
我们的 gRPC 接口需要重构,现在有一些设计不太好的地方。例如:
我们 gRPC 实现中使用的 "object" 和 "expr" 名称本身不清楚;
gRPC 对象与其他协议结果和请求之间的约定很繁琐且麻烦;
很难使用 gRPC CLI 工具进行调试;
等等。
这是一项大任务,我们把它分解成几个子任务,我们已经接近完成它了。
db#740
LogStore 是 GreptimeDB 的 WAL 组件,这个 PR 针对本地磁盘版本实现了 Compaction。简单说,LogStore 会启动一个后台任务,定期扫描所有 regions 中已被成功 flush 的数据对应的日志条目,然后回收日志条目以释放磁盘空间。
新鲜事
GreptimeDB 的 Dashboard 开源了,并且在快速的迭代完善,我们每周会定期将构建好的 docker 镜像上传到 docker hub 中,欢迎大家使用,也欢迎有兴趣的朋友来一起完善,具体可见:https://github.com/GreptimeTeam/dashboard
GreptimeDB 安装版本已经在 AUR 发布,ArchLinux 用户可以以 systemd 服务的方式安装 GreptimeDB。注意,GreptimeDB 项目还处于高速开发期,每周会有大量的更新,推荐暂时用于测试环境。
Good first issue
db#768 分布式查询语句支持 limit
这个 issue 尝试解决 GreptimeDB 的分布式版本的一个查询优化问题:limit
未能 pushdown 到数据节点。这是因为我们还未完成基于 [Substrait](https://substrait.io/ Substrait: Cross-Language Serialization for Relational Algebra) 对 limit
进行序列化和反序列化。快速浏览一下 Substrait 的 specification,发现 limit
和 Substrait 类型之间并没有一一对应的关系。也许我们需要利用 Substrait 的 extension 去实现 limit
。
db#602 创建数据库内部健康指标的系统表
这是我们上期就希望有贡献者来认领的 issue,是 GreptimeDB 自身监控能力从无到有的一步,我们依然期望把这个任务交给社区的朋友来完成,所以在双周报中再次招募,具体的细节可以查看 issue#602 本身或上期双周报内容
关于 Greptime
Greptime 格睿科技专注于为可观测、物联网及车联网等领域提供实时、高效的数据存储和分析服务,帮助客户挖掘数据的深层价值。目前基于云原生的时序数据库 GreptimeDB 已经衍生出多款适合不同用户的解决方案,更多信息或 demo 展示请联系下方小助手(微信号:greptime)。
欢迎对开源感兴趣的朋友们参与贡献和讨论,从带有 good first issue 标签的 issue 开始你的开源之旅吧~期待在开源社群里遇见你!添加小助手微信即可加入“技术交流群”与志同道合的朋友们面对面交流哦~
Star us on GitHub Now: https://github.com/GreptimeTeam/greptimedb
Twitter: https://twitter.com/Greptime
Slack: https://greptime.com/slack