Skip to content

Latest commit

 

History

History
239 lines (146 loc) · 7.79 KB

README_CN.md

File metadata and controls

239 lines (146 loc) · 7.79 KB

README

color

License Language codeCov release

简体中文 | English

官网 | 文档 | 贡献指南 | RoadMap | 性能

Activity Trends of openGemini/openGemini - Last 28 days

关于openGemini

openGemini是一款云原生分布式时序数据库,主要面向物联网和运维监控场景,专注海量遥测数据的存储与分析,可广泛应用于物流、车联网、互联网、智能制造、现代农业、交通、能源、电力和医药等行业,具备卓越的读写性能和高效的数据分析能力,采用类SQL查询语言,无第三方软件依赖、安装简单、部署灵活、运维便捷。

如果您使用了openGemini,请让我们知道,点击提交使用信息

特性

与其他开源时序数据库相比,openGemini 具有以下优势:

  • 高性能

    高吞吐、高并发、低时延。支持数据高速写入,能够快速响应大量查询请求,参考性能报告

  • 高扩展

    采用MPP架构,支持分布式集群部署,集群组件可以随着业务的增长而灵活扩展,以满足更高的负载需求, 支持100+节点,参考架构设计

  • 高基数

    全新存储引擎,不受时间线数量限制,解决时序数据高基数带来的索引膨胀、内存资源占用过高、读写性能下降等问题,参考高基数存储引擎

  • 灵活部署

    支持单机和集群部署,支持虚拟机、物理机、容器、云等多种形态部署。提供一键容器化部署工具(openGemini-operator)和一键化普通安装部署工具(gemix

  • 高数据压缩率

    数据采用列式存储,不同数据类型采用专用数据压缩算法,数据压缩比高达15:1或者更高,参考数据压缩算法

  • 时序生态兼容

    兼容InfluxDB 1.x 版本的Line Protocol 、Influxql和API接口,兼容现有InfluxDB工具链(如SDK/telegraf..)

云原生场景支持

  • 容器化部署,openGemini-Operator 支持一键容器化部署

    image-20220927210909436
  • openTelemetry 后端存储, 简化系统架构

    image-20220927210909436
  • Prometheus 后端存储,支持远程 read/write,[WIP] 支持 PromQL

    image-20220927210909436
  • KubeEdge与openGemini集成, 更好管理边缘设备数据

    image-20220927210909436

应用场景

image-20220927211159737

快速开始

如需更详细的介绍,请访问官网用户指南

集群安装部署、扩节点等相关详细介绍见openGemini安装部署指南

本章节主要包含以下内容:

  • 如何编译openGemini源码
  • openGemini的启动和运行

编译环境信息

GO version v1.19+

Python version v3.7+

GO环境变量设置

打开 ~/.profile配置文件,在文件末尾添加如下配置:

export GOPATH=/path/to/dir
export GOBIN=$GOPATH/bin
export GO111MODULE=on
export GONOSUMDB=*
export GOSUMDB=off

编译

  1. 从 GitHub 克隆源代码
cd $GOPATH
mkdir -p {pkg,bin,src}
cd src
git clone https://github.com/openGemini/openGemini.git
  1. 进入主目录
> cd openGemini
  1. 编译
> export CGO_LDFLAGS="-Wl,-z,now -Wl,-z,relro -Wl,-z,noexecstack -fPIE -ftrapv"
> export CGO_CFLAGS="-fstack-protector-strong -D_FORTIFY_SOURCE=2 -O2"
> python build.py --clean

编译好的二进制在build目录中

> ls build
ts-cli  ts-meta  ts-monitor  ts-server  ts-sql  ts-store  

配置

配置文件放置在conf目录下,有关配置项的详细信息,请参见用户指南-->参考指南-->配置文件

运行openGemini

单机运行,数据目录默认为/tmp/openGemini,使用时请修改单机版的配置文件openGemini.single.conf,更换目录,否则可能产生有数据文件丢失的风险

> cd openGemini
> mkdir -p /tmp/openGemini
> sh scripts/install.sh

集群部署见用户指南

使用openGemini

使用客户端ts-cli连接openGemini

> ts-cli --host 127.0.0.1 --port 8086

登陆成功后显示如下信息

> ts-cli --host 127.0.0.1 --port 8086
openGemini CLI 0.1.0 (rev-revision)
Please use 'quit', 'exit' or 'Ctrl-D' to exit this program
>

创建数据库

> create database sensordb
> use sensordb

openGemini支持三种方式创建measurement数据表

  • 隐式创建,即写入数据时自动创建,默认按照时间分区
  • 显式创建,不指定分区键,效果与隐式创建一样
> create measurement sensor
  • 显式创建,指定分区键,数据存储时,会首先按照时间进行分区,再按照指定分区键进行二次分区。
> create measurement sensor with shardkey farmID

数据Schemaless写入(样例)

> insert sensor,farmID=f1,deviceID=d0 sensorID="s20",value=50.98

数据查询(样例)

> select * from sensor
name: sensor
+---------------------+----------+--------+----------+-------+
| time                | deviceID | farmID | sensorID | value |
+---------------------+----------+--------+----------+-------+
| 1657959880895515464 | d0       | f1     | s20      | 50.98 |
+---------------------+----------+--------+----------+-------+
5 columns,1 rows in set
Elapsed: 7.723332ms  

加入贡献

贡献指南

联系我们

  1. 加入微信交流群

    微信添加好友 xiangyu5632, 备注openGemini,我们会邀请您进群

  2. 扫描下方二维码关注openGemini公众号

img

  1. 社区邮箱

    [email protected]

  2. 邮件列表(mailing list)

  3. Slack

  4. Twitter

License

openGemini采用 Apache 2.0 license. 详细见 LICENSE .

第三方软件使用声明,见Open_Source_Software_Notice