GreptimeDB v0.1 发布|原生支持 Python, PromQL 和对象存储
GreptimeDB 自去年 11 月开源以来,已经近 4 个月,虽然时间不长,但在社区的助力下,GreptimeDB 正一步步踏实地朝着目标前行,我们将之前设定的里程碑拆分成了 v0.1, v0.2 和 v0.3 三个小阶段,最终希望可以在 v0.3 交付一个单机可靠,分布式可用的产品。
v0.1 在一周多的收官工作(文档、测试)之后,今天终于可以宣布 GreptimeDB v0.1 Release 了,也想借此机会和大家分享一下过去几个月社区的成长以及对未来的规划。
社区
自开源以来,GreptimeDB 获得的关注超乎我们预期,在此特别感谢每个关注和帮助过 GreptimeDB 的朋友,社区的成长离不开大家的共创!
短短四个月内,Greptime 社区已经收获:
2.3k GitHub stars: 海内外的关注相当,中国 41%,海外 59%
491 PRs merged: 其中 60 个 PRs 来自外部贡献者,占 12.2%
10 个周边项目开源: 包含 dashboard, promql-parse, greptimedb-operator 等
16 篇文章: 包含原创技术文章 6 篇
18 位外部贡献者
1977 次下载
这些数字的背后是团队和社区的共同努力,是每个贡献者宝贵时间的付出,而这每一份贡献反映的是 GreptimeDB 每一个 feature, 每一次 refactor 和每一段 fix, 接下来,我们就看看 v0.1 的主要内容。
GreptimeDB v0.1
Features
Compaction
是的,作为一个 LSM Tree 架构怎能没有 Compaction,GreptimeDB 终于支持 Compaction 了。
支持对象存储
通过 OpenDAL, GreptimeDB 较容易地实现了对 S3 和 OSS 对象存储的支持。
支持使用 Python
引入 Python 脚本功能与 DataFrame API 以及第三方 Python 库的支持,可作为协处理器和用户自定义函数 (UDF) 使用。
原生支持 PromQL
PromQL 在云原生可观测领域已是公认使用最广泛的查询语言了。因此,尽管挑战很大,我们决定在 GreptimeDB 中原生支持 PromQL。目前我们已经初步实现了 PromQL 原生支持,尽管还不能通过官方兼容性测试中的所有 cases,但随着 GreptimeDB 0.1 版本发布,其已经初步可用。 对于这个兼容性测试,我们计划在 GreptimeDB v0.2 版本中通过一半以上的 test cases,在 v0.3 版本中通过 70% 以上。
Protocol
新版高性能通信协议
基于 Arrow Flight RPC 构建,相比原来的 gRPC 私有协议,现在更加简洁高效,也很方便多种语言利用 Arrow Flight 的 SDK 直接与 GreptimeDB 通信。对 Stream 的支持也更方便。
文档见: https://docs.greptime.com/developer-guide/how-to-write-sdk
MySQL & PostgreSQL 支持 TLS
为了数据的传输安全,MySQL 和 PostgreSQL 支持 TLS 是十分有必要的。另外与 HTTP 或 gRPC 不同,数据库协议有自己的 TLS 握手过程,因此我们在数据库这一层来实现支持了 TLS。
Clients
Refactor
Datafusion & Arrow 重构
GreptimeDB 最初重度使用了 arrow2,但是 datafusion 的 arrow2 分支已不再维护,所以我们决定切换到 arrow,这样我们就可以跟上最新的 datafusion 版本了,这是一个具有巨大挑战的任务,很高兴我们顺利完成了。
除了以上列出的内容外,我们还有大大小小的 PRs 491 个,包括了各种功能准备,重构,bug 修复和文档完善等。另外,我们也将自己的一些经验回馈到开源社区,包括向 DataFusion, sqlness, Parquet2, DataFusion-Substrait, RustPython, OpenDAL 等外部项目提交了贡献代码。
未来的计划
GreptimeDB
我们会按计划在 5 月份 release v0.3,目标是可达到单机可靠,分布式可用的程度。其中“可靠”主要体现在性能和稳定性上,但既然是单机,无论性能还是稳定性都是有一定上限,所以我们也会逐步完善分布式的版本。对于单机已经能满足要求的用户来讲,GreptimeDB v0.3 将会给到建议可用的单机版本。
而如果对可靠性和扩展性要求比较高的用户,我们也将在今年下半年完善分布式功能,计划年末提供分布式 GA 版本。
功能方面,我们还是会专注在数据的采集、存储和分析的生命周期,落地在用户实际场景问题,重点会在查询性能、存储降本和分布式方面,包括:
PromQL 查询性能优化
Python scripts 支持 MapReduce 框架,更高效地处理分布式计算
查询引擎的优化,向量化查询、智能索引和 Cost-Based Optimizer 等
存储和计算分离,存与算均可做到自动化伸缩
采用自适应压缩算法,一份数据支撑时序模型与分析模型的混合负载,降低存储成本
之所以将这些功能的优先级放在前面,也是在倾听了用户声音之后的结果,当然,如果你有其他想法或者建议,也欢迎随时通过 Slack,邮件,公众号留言等方式来与我们交流。
社区
好的项目离不开社区的帮助,我们将持续本着「开放」,「尊重」和「透明」的原则运营社区,认真对待每一个贡献者,每一个反馈。相信每一个参与者都希望项目可以长久的运作,从而触达更多人群,产生更深远的影响,所以我们也会接触更多的真实用户场景,将每个贡献落到实处。
同时,Greptime 团队也会更积极地参与到开源生态中,与更多的开源组织和项目合作共建,将我们的工作回馈到大社区中。计划中将会开展的内容包括:
完善开发者服务,包括开发文档、使用文档、项目进展等
定期举行线上线下的 Office Hour 和 Open Demo Day
在开发中不断总结技术经验,以博客文章、访谈、播课等多种形式在社区分享传播
与大社区联办 Meetup 分享开源经验并交流技术
如果你对上面任何的活动感兴趣,甚至对社区运营本身有想法,欢迎随时与我们交流。
Greptime 团队刚刚起步,特别感谢每一位贡献者的努力,我们将持续专注解决时序领域的数据处理问题,把每一个贡献的价值最终传递给用户!
关于 Greptime
Greptime 格睿科技于 2022 年创立,目前正在完善和打造时序数据库 GreptimeDB 和格睿云 GreptimeCloud 这两款产品。
GreptimeDB 是款用 Rust 语言编写的时序数据库。具有分布式,开源,云原生,兼容性强等特点,帮助企业实时读写、处理和分析时序数据的同时,降低长期存储的成本。
GreptimeCloud 基于开源的 GreptimeDB,为用户提供全托管的 DBaaS,以及与可观测性、物联网等领域结合的应用产品。利用云提供软件和服务,可以达到快速的自助开通和交付,标准化的运维支持,和更好的资源弹性。GreptimeCloud 近期将开放测试,欢迎关注公众号或官网了解最新动态!
公众号:GreptimeDB
GitHub: https://github.com/GreptimeTeam/greptimedb
Twitter: https://twitter.com/Greptime
Slack: https://greptime.com/slack
LinkedIn: https://www.linkedin.com/company/greptime/
评论