Phoenix on HBase性能测试报告
∙目的
∙软件版本
∙硬件环境
∙测试工具
∙测试说明
o素材
∙场景
o数据写入
oK-V(RowKey)查询
o即席查询
o并发查询
∙结果与分析
o数据写入
oK-V(RowKey)查询
o即席查询
o并发查询
∙结论
∙测试中发现的“特点”
目的
测试phoenix引擎在hbase上的数据查询与数据写入的性能,探索phoenix的特性和限制
软件版本
phoenix-4.8.0-HBase-1.1
HBase-1.1.6
硬件环境
四台配置相同的PC机搭建HBase集环境,其中一台做HMaster,另外三台做Region
部件 | 规格 |
CPU | Intel(R) Core(TM) i7-4820K CPU @ 3.70GHz 1U * 4Core |
MEM | 64G |
测试工具
squirrel-sql-3.5.3
apache-jmeter-3.0
测试说明
使用基于jdbc连接的squirrel-sql-3.5.3进行单用户下的sql性能测试
使用基于jdbc连接的apache-jmeter-3.0进行多线程并发测试
素材
Reinfo表(测点基础信息表)
列名 | 类型 | 注释 | 是否主键 |
Data_id | bigint | 测点ID | PKhbase的特性有哪些 |
DataName | varchar(300) | 测点名 | |
DataType | varchar(100) | 测点的数据类型 (电压、电流、有功、无功等) | |
byzid | varchar(300) | 变电站编号 | |
orgid | varchar(300) | 组织机构编号 | |
应用场景:仅用于存放测点的档案信息,用于查询范围的条件检索过滤时使用
测试数据规模:5千
CurrData表(当日数据表)
列名 | 类型 | 注释 | 是否主键 |
Data_id | bigint | 测点ID | PK |
date_time | DATE | 时点 (2016-09-19 00:00,2016-09-19 00:01 ... 2016-09-19 23:59) | PK |
data | float | 测试值 | |
name | varchar(300) | 测点名(根据reinfo冗余字段) | |
DataType | varchar(100) | 测点的数据类型 (电压、电流、有功、无功等)(根据reinfo冗余字段) | |
byzid | varchar(300) | 变电站编号(根据reinfo冗余字段) | |
orgid | varchar(300) | 组织机构编号(根据reinfo冗余字段) | |
应用场景:按测点编号进行查询,每次通常查询1个测点的数据,但有时也会查询几个测点的数据
测试数据规模:7百万
HisData(历史数据表)
列名 | 类型 | 注释 | 是否主键 |
Data_id | bigint | 测点ID | PK |
date_time | DATE | 时点 (2016-09-19 00:00,2016-09-19 00:01 ... 2016-09-19 23:59) | PK |
data | float | 测试值 | |
name | varchar(300) | 测点名(根据reinfo冗余字段) | |
DataType | varchar(100) | 测点的数据类型 (电压、电流、有功、无功等)(根据reinfo冗余字段) | |
byzid | varchar(300) | 变电站编号(根据reinfo冗余字段) | |
orgid | varchar(300) | 组织机构编号(根据reinfo冗余字段) | |
应用场景:按测点编号进行查询,每次通常查询1个测点的数据,但有时也会查询几个测点的数据
测试数据规模:5千万
场景
数据写入
评估数据写入的性能,分别对数据导入和数据插入两种方式评测。
数据导入:将文本文件数据装载至目标表。
数据插入:使用dml插入数据至目标表。
评估并发写的效率
CASE 1:数据导入
##命令示例
./psql.py hostname-2 -t CURRDATA /home/currdata1.csv
CASE 2:数据插入
/*语句示例*/
upsert into currdata select * from currdata1;
/*currdata1与currdata结构一致*/
K-V(RowKey)查询
根据表的主键(PK)进行K-V查询,场景主要有:单测点单日,单测点多日,多测点单日,多测点多日
CASE 1:单测点单日
/*sql示例*/
select data_id,date_time,data from hisdata where data_id=104708704221266921 and date_time<=TO_DATE('2016-09-20', 'yyyy-MM-dd') and date_time>=TO_DATE('2016-09-20', 'yyyy-MM-dd') order by date_time;
CASE 2:单测点多日
/*sql示例*/
select data_id,date_time,data from hisdata where data_id=104708704221266921 and date_time<=TO_DATE('2016-09-20', 'yyyy-MM-dd') and date_time>=TO_DATE('2016-09-18', 'yyyy-MM-dd') order by data_id,date_time;
CASE 3:多测点单日
/*sql示例*/
select data_id,date_time,data from hisdata where data_id>=104708704221266921 and data_id <=104708704221266931 and date_time<=TO_DATE('2016-09-17', 'yyyy-MM-dd') and date_time>=TO_DATE('2016-09-17', 'yyyy-MM-dd') order by data_id,date_time;
CASE 4:多测点多日
/*sql示例*/
select data_id,date_time,data from hisdata where data_id>=104708704221266921 and data_id <=104708704221266930 and date_time<=TO_DATE('2016-09-21', 'yyyy-MM-dd') and date_time>=TO_DATE('2016-09-18', 'yyyy-MM-dd') order by data_id,date_time
即席查询
模拟OLAP环境下的ad hoc查询,包括聚集查询,连接查询,明细查询等
CASE 1:带过滤条件和排序操作的明细查询
/*sql示例*/
select data_id,date_time,data from hisdata where byzid='0001303' and orgid='8000041' an
d date_time<=TO_DATE('2016-09-20', 'yyyy-MM-dd') and date_time>=TO_DATE('2016-09-18', 'yyyy-MM-dd') order by data_id,date_time
CASE 2: 全表聚合查询
/*sql示例*/
select count(*) from hisdata
CASE 3:关联查询
/*sql示例*/
select count(*) from hisDATA c,REINFO r where c.data_id=r.data_id
CASE 4:带过滤条件的聚合查询
/*sql示例*/
select byzid,orgid,max(data),min(data),avg(data) from hisdata where DATATYPE='无功' an
d date_time<=TO_DATE('2016-09-20', 'yyyy-MM-dd') and date_time>=TO_DATE('2016-09-18', 'yyyy-MM-dd') group by byzid,orgid
并发查询
采用k-v查询的sql示例作为并发查询的测试素材
结果与分析
数据写入
写入时长:
记录行 | 720w*1 | 720w*2 | 720w*4 |
数据文件大小 | 350mb*1 | 350mb*2 | 350mb*4 |
并行度(进程数) | 1 | 2 | 4 |
CASE 1:数据导入 | 201s | 247s | 282s |
CASE 2:数据插入 | 92s | 132s | 158s |
写入效率:
记录行 | 720w*1 | 720w*2 | 720w*4 |
数据文件大小 | 350mb*1 | 350mb*2 | 350mb*4 |
并行度(进程数) | 1 | 2 | 4 |
CASE 1:数据导入 | 1.74mb/s | 2.83mb/s | 4.96mb/s |
CASE 2:数据插入 | 3.8mb/s | 5.3mb/s | 8.8mb/s |
结果分析:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论