关注 GreptimeDB,了解更多技术干货👇
时间飞逝,转眼又到了一年岁末,GreptimeDB 也已经正式开源一周年了。在这一年里,我们一起经历了不少起起伏伏,也收获了许多宝贵的经验。今天,我们非常高兴地宣布,我们的开源时序数据库迎来了一个新的版本 GreptimeDB v0.5。
在此次迭代中,主要上线了 Remote WAL 和 Metrics Engine,为 GreptimeDB 实现健壮的分布式能力打下了好的基础并解决了监控场景下,大量小表所带来的资源开销。
Tips
接下来我们将介绍 GreptimeDB v0.5 的主要版本改进:
v0.5 功能上新
重点 Features
目前 GreptimeDB 的 WAL 基于本地存储,不具备完全的容灾能力。一个分布式的(Remote)WAL 是 GreptimeDB 实现 Region Migration、Region Rebalance、Region Split/Merge 等这些高阶分布式功能的基础,这些功能也是实现水平扩展和数据热点拆分的关键特性。
在可观测领域的时序数据库中,GreptimeDB 的设计侧重点与 Prometheus 或是 VictoriaMetrics 等时序数据库有一些区别,GreptimeDB 的表的概念是相对复杂和重量级的,需要占用较重的资源。这在需要创建海量小表的场景中让 GreptimeDB 默认引擎的表管理能力捉襟见肘。为了更高效地处理海量的小表,我们在 0.5 版本中引入了一个全新的引擎(Metrics Engine),它的主要目标是能处理大量的小表,特别适合像 Prometheus 指标那样的场景。通过利用合成的宽表,这个新 engine 提供指标数据存储和元数据复用的能力,“表”在它之上变得更轻量,它克服了现有 Mito 引擎的表过于重量级的一些限制。
PromQL 兼容性提高到了 82%
PromQL 有不错的进展,兼容性提高到了 82%,支持了 historgram_quantile 函数,对齐了 linear_regression 行为,也实现了 PromQL 的 AND 和 UNLESS 操作符。更多细节,可看 这里[2]。
Mito Engine 持续优化

支持在创建表时指定不同的存储后端
在以前,表只能存储在同一个存储后端中,现在 GreptimeDB 支持了在启动时配置多个不同的存储后端,并在建表时可以为表指定存储后端。举一个最简单的例子:我们可以将一张表存在本地,一张表存储在 S3 上。
支持嵌套的 Range 表达式
Select
round(max(a+1) Range '5m' FILL NULL),
sin((max(a) + 1) Range '5m' FILL NULL),
from
test
ALIGN '1h' by (b) FILL NULL;
Select round(x), sin(y + 1) from
(
select max(a+1) Range '5m' FILL NULL as x, max(a) Range '5m' FILL NULL as y
from
test
ALIGN '1h' by (b) FILL NULL;
)
;
新增 ALIGN TO 子句和 Interval 查询支持
SELECT
rate(a) RANGE (INTERVAL '1 year 2 hours 3 minutes')
FROM
t
ALIGN (INTERVAL '1 year 2 hours 3 minutes')
FILL NULL;
SELECT rate(a) RANGE '6m' FROM t ALIGN '1h' TO '2021-07-01 00:00:00' by (a, b) FILL NULL;
可用的 ALIGN TO 选项包括:
不使用 ALIGN TO (默认):对齐到 UTC 时间戳 0;
Now:对齐到当前 UTC 时间戳;
Timestamp:对齐到用户指定的特定时间戳。
有了 Remote WAL 作为基础,接下来我们计划实现 Region 的 Migration,Region Migration 可以帮助我们实现负载平衡,我们会支持通过管控 API 手动触发的 Region Migration,进一步的会实现自动的负载平衡调度。
对于最基础的 Mito Engine(事实上 Metrics Engine 也构建于它之上),我们仍然会对其持续优化,逐步去提升它的查询性能,近期的重点是优化它与对象存储之间的各种数据传输的延迟。
还有一个会大幅提升部分场景查询的重大 feature,倒排索引特性也在路上了,我们预计会在一月底之前发布它,我们可以在这里看到它的 最新进展[3]。
Reference
[1] https://github.com/influxdata/rskafka
[2] https://github.com/GreptimeTeam/greptimedb/issues/1042
[3] https://github.com/orgs/GreptimeTeam/projects/38/views/2

如果你有任何疑问或建议,欢迎扫描下方小助手微信私聊我们~

关于 Greptime
Greptime 格睿科技于 2022 年创立,目前正在完善和打造时序数据库GreptimeDB,格睿云 GreptimeCloud 和可观测工具 GreptimeAI 这三款产品。
GreptimeDB 是一款用 Rust 语言编写的时序数据库,具有分布式、开源、云原生、兼容性强等特点,帮助企业实时读写、处理和分析时序数据的同时,降低长期存储的成本。
GreptimeCloud 基于开源的 GreptimeDB,为用户提供全托管的 DBaaS,能够与可观测性、物联网等领域结合的应用产品结合。利用云提供软件和服务,可以达到快速的自助开通和交付,标准化的运维支持,和更好的资源弹性。
GreptimeAI 是为 LLM 应用量身定制的可观测性解决方案,开发者可以通过该方案全面、深入地了解应用的成本、性能、流量和安全情况,在保证低成本和高性能的同时提供高效可靠的分析能力,同时保留了时序数据库的灵活性。
GreptimeCloud 已正式公测,欢迎关注公众号或官网了解最新动态!
官网:https://greptime.cn/
GitHub: https://github.com/GreptimeTeam/greptimedb
文档:https://docs.greptime.cn/
Twitter: https://twitter.com/Greptime
Slack: https://greptime.com/slack
LinkedIn: https://www.linkedin.com/company/greptime/
往期精彩文章:


GreptimeDB 提供 Enterprise 企业版服务,如有需要请联系 info@greptime.com 或添加小助手微信(微信号:greptime).
👇 点击下方阅读原文,立即体验 GreptimeDB!





