统一的时间序列数据库,用于指标、日志和事件
简介
GreptimeDB是一个开源的统一时间序列数据库,适用于指标、日志和事件(追踪也在计划中)。它可以让你从边缘到云端,在任何规模下获得实时洞察。
为什么选择GreptimeDB
我们的核心开发者多年来一直在构建时间序列数据平台。基于我们的最佳实践,GreptimeDB诞生了,为您提供:
-
统一所有类型的时间序列
GreptimeDB将所有时间序列视为带有时间戳的上下文事件,从而统一了指标、日志和事件的处理。它支持使用SQL和PromQL分析指标、日志和事件,并通过连续聚合进行流处理。
-
云边协作
GreptimeDB可以部署在兼容ARM架构的Android/Linux系统以及各种供应商的云环境中。双方运行相同的软件,提供相同的API和控制平面,因此您的应用程序可以在边缘或云端运行而无需修改,数据同步也变得极其简单和高效。
-
云原生分布式数据库
通过利用对象存储(S3和其他),分离计算和存储,任意扩展无状态计算节点,GreptimeDB实现了无缝扩展。它还支持跨云部署,内置统一的数据访问层,覆盖不同的对象存储。
-
性能和成本效益
灵活的索引能力和分布式、并行处理查询引擎,有效解决高基数问题。针对时间序列数据优化的列式布局;压缩、存储在各种存储后端,特别是云对象存储,成本效率提高50倍。
-
兼容InfluxDB、Prometheus等协议
广泛采用的数据库协议和API,包括MySQL、PostgreSQL和Prometheus远程存储等。了解更多。
尝试GreptimeDB
1. GreptimePlay
直接在浏览器中试用GreptimeDB的功能。
2. GreptimeCloud
立即开始使用免费集群。
3. Docker镜像
在本地安装GreptimeDB,推荐通过Docker:
docker pull greptime/greptimedb
启动GreptimeDB容器:
docker run --rm --name greptime --net=host greptime/greptimedb standalone start
在文档中阅读更多关于安装的信息。
入门指南
构建
检查先决条件:
- Rust 工具链(nightly 版本)
- Protobuf 编译器(>= 3.15)
- Python 工具链(可选):仅在使用 PyO3 后端构建时需要。有关使用 PyO3 编译的更多详细信息,请参阅其文档。
构建 GreptimeDB 二进制文件:
make
运行独立服务器:
cargo run -- standalone start
扩展
仪表盘
SDK
- GreptimeDB Go 数据摄取器
- GreptimeDB Java 数据摄取器
- GreptimeDB C++ 数据摄取器
- GreptimeDB Erlang 数据摄取器
- GreptimeDB Rust 数据摄取器
- GreptimeDB JavaScript 数据摄取器
Grafana 仪表盘
我们的官方 Grafana 仪表盘位于 grafana 目录。
项目状态
当前版本尚未达到正式发布的标准。根据我们的 Greptime 2024 路线图,我们计划在 2024 年底前发布 v1.0 版本,实现生产级别的版本。加入我们
我们欢迎您测试和使用 GreptimeDB。一些用户已经在生产环境中采用了它。如果您有兴趣尝试,请使用最新的稳定版本。
社区
我们的核心团队很高兴看到您以任何方式参与。当遇到困难时,请尝试通过填写详细描述您尝试做什么以及出现了什么问题的 issue 来寻求帮助。如果您有任何问题或想参与我们的社区,请查看:
- GreptimeDB 社区 Slack
- GreptimeDB GitHub 讨论论坛
- Greptime 官方网站
此外,您还可以:
商业支持
如果您在组织中运行 GreptimeDB OSS,我们提供额外的企业附加功能、安装服务、培训和咨询。联系我们,我们将与您联系,提供更多关于商业许可的详细信息。
许可证
GreptimeDB 使用 Apache License 2.0 来平衡开放贡献和允许您以任何方式使用软件。
贡献
致谢
特别感谢所有推动 GreptimeDB 前进的贡献者。完整的贡献者列表请参阅 AUTHOR.md。
- GreptimeDB 使用 Apache Arrow™ 作为内存模型,Apache Parquet™ 作为持久化文件格式。
- GreptimeDB 的查询引擎由 Apache Arrow DataFusion™ 提供支持。
- Apache OpenDAL™ 为 GreptimeDB 提供了非常通用和优雅的数据访问抽象层。
- GreptimeDB 的元服务基于 etcd。
- GreptimeDB 使用 RustPython 进行实验性嵌入式 Python 脚本编写。