Apache HoraeDB 快速入门及最佳实践
1. 项目介绍
Apache HoraeDB(incubating) 是一款高性能、分布式、云原生的时间序列数据库。它设计用于处理大量时间序列数据,提供高并发读写能力和低延迟查询。HoraeDB 支持 Rust 和 SQL,适合 IoT 数据库、时序分析和其他对时间戳数据存储有需求的应用场景。
2. 项目快速启动
2.1 环境准备
确保您的环境中已经安装了 Docker,这是运行 HoraeDB 的基本要求。
2.2 单节点运行
使用以下命令通过 Docker 启动一个 HoraeDB 的服务器实例:
docker run -d --name horaedb-server \
-p 8831:8831 \
-p 3307:3307 \
-p 5440:5440 \
ghcr.io/apache/horaedb-server:nightly-20231222-f57b3827
2.3 集群模式
要部署多节点集群,修改 Docker Compose 文件并启动服务:
docker-compose -f docker/docker-compose.yaml up
2.4 操作示例
创建表
curl --location --request POST 'http://127.0.0.1:5440/sql' \
-d 'CREATE TABLE `demo` (
`name` string TAG,
`value` double NOT NULL,
`t` timestamp NOT NULL timestamp KEY (t)
) ENGINE=Analytic with (enable_ttl="false")'
插入数据
curl --location --request POST 'http://127.0.0.1:5440/sql' \
-d 'INSERT INTO demo (t, name, value) VALUES (1702224000000, "horaedb", 100)'
查询数据
curl --location --request POST 'http://127.0.0.1:5440/sql' \
-d 'SELECT * FROM `demo`'
删除表
curl --location --request POST 'http://127.0.0.1:5440/sql' \
-d 'DROP TABLE `demo`'
3. 应用案例和最佳实践
在 IoT 场景中,HoraeDB 可用于实时监控设备状态,收集传感器数据并进行分析。最佳实践包括定期清理过期数据以保持存储效率,以及合理设计时间序列索引来优化查询性能。
4. 典型生态项目
- InfluxDB IOx: 作为另一个开源时间序列数据库,InfluxDB IOx 提供了类似的功能,两者在某些场景下可互补或互换。
- TiKV: 一个分布式的事务性键值存储系统,可作为 HoraeDB 在分布式环境中的基础组件。
- 其他支持 HoraeDB 的集成工具: 如数据分析平台、可视化工具等,这些工具能够与 HoraeDB 结合,构建更完整的解决方案。
本文提供了 Apache HoraeDB 的快速入门指南和简单应用场景介绍。深入了解其特性和功能,您可以参考官方文档、参与社区讨论或开发贡献。祝您使用愉快!