openGemini 开源项目教程
项目介绍
openGemini 是一个专注于存储和分析大规模遥测数据的云原生分布式时间序列数据库。与其他时间序列数据库相比,openGemini 具有高性能、高并发和高可扩展性的优势。它支持多种部署方式,包括虚拟机、物理机、容器和云服务,并提供了 one-click 容器部署工具(openGemini-operator)和 one-click 普通安装部署工具(gemix)。
项目快速启动
环境准备
确保你的开发环境满足以下要求:
- GO 版本:v1.19+
- Python 版本:v3.7+
设置 GO 环境变量
打开 ~/profile
配置文件,并在文件末尾添加以下配置:
export GOPATH=/path/to/dir
export GOBIN=$GOPATH/bin
export GO111MODULE=on
export GONOSUMDB=*
export GOSUMDB=off
编译 openGemini
- 克隆源代码:
cd $GOPATH
mkdir -p [pkg bin src]
cd src
git clone https://github.com/openGemini/openGemini.git
- 进入 openGemini 主目录:
cd openGemini
- 设置编译环境变量并编译:
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
- 编译完成后,二进制文件位于
build
目录下:
ls build
应用案例和最佳实践
应用场景
openGemini 适用于多种应用场景,包括但不限于:
- 物联网(IoT)数据存储和分析
- 云原生环境中的监控和日志分析
- 边缘计算设备数据管理
最佳实践
- 容器化部署:使用 openGemini-operator 进行容器化部署,简化部署流程。
- 数据迁移:利用 InfluxDB v1.x Line Protocol 和 InfluxQL 读写 API,兼容现有 InfluxDB 工具链。
- 性能优化:根据具体应用场景调整配置参数,如查询优化、数据压缩等。
典型生态项目
兼容性
- InfluxDB 兼容:支持 InfluxDB v1.x Line Protocol 和 InfluxQL,兼容现有 InfluxDB 工具链。
- Prometheus 集成:作为 Prometheus 的后端存储,支持远程读写和 PromQL。
云原生支持
- openTelemetry 后端存储:简化架构,支持 openTelemetry 数据存储。
- KubeEdge 集成:与 KubeEdge 集成,更好地管理边缘设备数据。
通过以上模块的介绍,你可以快速了解并开始使用 openGemini 开源项目。希望这份教程对你有所帮助!