欢迎参与 8 月 1 日中午 11 点的线上分享,了解 GreptimeDB 联合处理指标和日志的最新方案! 👉🏻 点击加入

Skip to content
On this page
双周报
2023-2-8

Greptime 双周精选 (1 月 16 日-2 月 5 日)| 初步支持 PromQL | 支持 OSS 存储

在过去的两周,GreptimeDB 依旧非常活跃,在带来新功能的同时,也和社区的贡献者们一起推动 GreptimeDB 成为一个更好的产品,再次感谢大家!

内容概述

作为一个成长中的开源项目,GreptimeDB 的进展离不开来自全球的社区贡献者们,感谢各位!

以下是这段时间较为重要的 PR 总结:

  • 新增 CREATE TABLE(Multi Region) 的负载均衡策略

  • 初步支持使用 PromQL 作为原生语句查询

  • 支持 OSS 对象存储

社区贡献者名单

在过去的两周里,共有 3 位贡献者,累计 12 个 PR 被成功合并,还有很多待合并的 PR。

祝贺以下各位在过去 2 周内成为我们活跃的贡献者:

过去三周社区的贡献者十分活跃,总共有 6 个 PR 被合并,另有两个新的贡献者 @wanglei4687@jun0315 首次提交 PR,欢迎加入 Greptime 社区。

特别感谢我们活跃的贡献者 @Zheming Li,在过去一个月持续提交 PR 并成功合并了其中 3 份 👍。感谢各位的支持,希望 GreptimeDB 能和大家一同成长!

PR 亮点

db#596

现在GreptimeDB 只支持 SQL 和 gRPC 协议来查询数据。PromQL 在云原生可观测领域已经成为了一种既定事实上的标准查询语言。

我们希望在 GreptimeDB中原生支持 PromQL,我们会在这个月发布 GreptimeDB v0.1,届时 PromQL 的支持将达到初步可用,欢迎使用。

db#874

新增 CREATE TABLE(Multi Region) 的负载均衡策略,支持基于 Load 选择可用节点(LoadBasedSelector),相比较默认策略 LeaseBasedSelector 可做到相对更均衡的负载分配。

支持通过启动命令指定 Selector,例如:

sql
cargo run -- metasrv start --selector LoadBased

db#911

支持阿里云 Object Storage Services/OSS 对象存储。之前 GreptimeDB 已经支持本地文件和基于 OpenDAL 的 Amazon S3 存储,现在 OSS 也支持了。

以上是本期《双周精选》的内容,欢迎关注公众号,我们会定期更新项目有关的进展,分享社区发生的新鲜事。同时,也可以通过各种方式参与 GreptimeDB 和其他相关项目。

Good first issue

db#855 移除 sql::error::Error 中不必要的 backtrace

sql::error::Error 中的大部分 backtrace 并没有必要,而且对性能有影响,因为当解析器解析到无效 SQL 的时候就会返回这些 backtrace。

这个 issue 比较简单,只需要将下面定义中的 backtrace 字段移除即可。 greptimedb/src/sql/src/error.rs: Line54-Line58

rust
UnsupportedDefaultValue {
    column_name: String,
    expr: Expr,
    backtrace: Backtrace,
},

greptimedb/src/sql/src/error.rs: Line71-Line83

rust
InvalidTimeIndex { sql: String, backtrace: Backtrace },

#[snafu(display("Invalid SQL, error: {}", msg))]
InvalidSql { msg: String, backtrace: Backtrace },

#[snafu(display("SQL data type not supported yet: {:?}", t))]
SqlTypeNotSupported {
    t: crate::ast::DataType,
    backtrace: Backtrace,
},

#[snafu(display("Failed to parse value: {}, {}", msg, backtrace))]
ParseSqlValue { msg: String, backtrace: Backtrace },

greptimedb/src/sql/src/error.rs: Line98-Line111

rust
InvalidDatabaseName { name: String, backtrace: Backtrace },

#[snafu(display("Invalid table name: {}", name))]
InvalidTableName { name: String, backtrace: Backtrace },

#[snafu(display("Invalid default constraint, column: {}, source: {}", column, source))]
InvalidDefault {
    column: String,
    #[snafu(backtrace)]
    source: datatypes::error::Error,
},

#[snafu(display("Unsupported ALTER TABLE statement: {}", msg))]
UnsupportedAlterTableStatement { msg: String, backtrace: Backtrace },

db#918 使用对象存储时开启 OpenDAL 的缓存层以加速查询

在 GreptimeDB 使用对象存储时(S3/OSS)开启 OpenDAL 的缓存层以加速查询。

OpenDAL 提供了一个 CacheLayer 可以用来在使用对象存储时缓存数据内容。这个 issue 主要是期望通过 CacheLayer 实现缓存机制,这样可以在使用 S3/OSS 对象存储时候有效提高查询的效率。

特别感谢 @e1ijh1 认领并且既快又好地搞定了这个 issue,未来我们也会在他的贡献基础之上为对象存储实现更灵活和高效的缓存机制。

新鲜事

  • 最近我们在为开源数据采集框架 Vector 开发一个 GreptimeDB 的扩展,它可以将任意 Vector 源的数据写入到 GreptimeDB。我们将在开发完成后提交这个扩展到 Vector 仓库。

以上是本期《双周精选》的内容,欢迎关注公众号,我们会定期更新项目有关的进展,分享社区发生的新鲜事。同时,也可以通过各种方式参与 GreptimeDB 和其他相关项目。

关于 Greptime

Greptime 格睿科技专注于为可观测、物联网及车联网等领域提供实时、高效的数据存储和分析服务,帮助客户挖掘数据的深层价值。目前基于云原生的时序数据库 GreptimeDB 已经衍生出多款适合不同用户的解决方案,更多信息或 demo 展示请联系下方小助手(微信号:greptime)。

欢迎对开源感兴趣的朋友们参与贡献和讨论,从带有 good first issue 标签的 issue 开始你的开源之旅吧~期待在开源社群里遇见你!添加小助手微信即可加入“技术交流群”与志同道合的朋友们面对面交流哦~

Star us on GitHub Now: https://github.com/GreptimeTeam/greptimedb

官网:https://greptime.cn/

文档:https://docs.greptime.cn/

Twitter: https://twitter.com/Greptime

Slack: https://greptime.com/slack

LinkedIn: https://www.linkedin.com/company/greptime/

加入我们的社区

获取 Greptime 最新更新,并与其他用户讨论。