项目简介
本项目是面向半结构化数据的多维数据库系统,专为处理和存储高能事件数据而设计。基于HBase和FITS(Flexible Image Transport System)格式,提供高效的数据导入、查询和管理功能,借助多维查询和索引技术,能快速处理和分析大规模事件数据。
项目的主要特性和功能
- 多维数据存储:支持半结构化数据的存储与查询,适用于高能物理事件数据处理。
- 高效数据导入:具备并行数据导入功能,可快速加载大规模数据。
- 灵活查询接口:支持Shell查询和编程API查询,满足不同场景的数据访问需求。
- Restful API:提供HTTP接口,便于远程查询和管理数据库。
- 协处理器支持:通过HBase协处理器,实现高效的查询和数据处理逻辑。
- 一致性哈希路由:采用一致性哈希算法进行负载均衡,确保数据分布均匀和系统稳定。
安装使用步骤
假设用户已下载本项目的源码文件。
1. 配置实验环境
编辑配置文件 ./config.properties
,配置HBase和HDFS的相关参数,如Zookeeper地址、HBase根目录等。
2. 编译打包
使用Maven进行项目编译和打包:
bash
mvn package -Dmaven.test.skip=true
打包完成后,生成 target/eventdb-1.0.0.jar
。
3. 第一次运行
初始化数据库:
bash
./eventdb init
4. 新建数据表
创建一个新的eventdb格式的数据表:
bash
./eventdb createTable tableName initialSplitNumber
其中,tableName
是数据表名称,initialSplitNumber
指定数据表的初始分区数量。
5. 导入数据
执行以下命令导入高能fits数据:
bash
./eventdb insertHeFits /path/of/fitsfile tableName threadNumber
其中,/path/of/fitsfile
可以是fits文件或文件夹,tableName
是之前新建的eventdb数据表,threadNumber
是并行导入的线程数。
6. Shell查询
运行以下命令进入Shell查询界面:
bash
./eventdb HeFitsQuery tableName
在Shell界面中输入查询命令,如:
bash
time = timeStart ~ timeEnd & [detID | channel | pulse | eventType] = start ~ end | value1, value2 ...
输入 quit
退出Shell界面。
7. 编程API查询
使用Java API进行查询,示例如下: ```java import org.osv.eventdb.fits.HeQueryClient;
HeQueryClient client = new HeQueryClient("HeFits0301"); byte[] events = client.query("time = 178890900 ~ 178891500 & detID = 8 & eventType = 1"); ```
8. Restful API查询
启动HTTP服务:
bash
./eventdb server 8081
使用以下URL进行查询:
http://host:8081/he/tableName?time=178797000~178797005&detID=1,2
返回CSV格式的查询结果。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】