2200W条数据测试phoenix查询性能
性能 查询 Phoenix
2023-09-27 14:19:45 时间
版本
hbase 1.3.5
phoenix 4.14.2-hbase 1.3
简介
这里的数据来源于网络,直接下载的用户电影打分数据,原数据集有2700W条,这里为了rowkey不重复,我将timestamp作为rowkey,最终获取到了2200W条数据
索引
这里一会儿要用上二级索引,所以这边先介绍一下,由于hbase中只能围绕rowkey设计来提高性能,但是我们引入了phoenix,可以将hbase和phoenix做关联表和关联视图,就可以引入二级索引了,效率确实提升很多
hbase配置
要打开二级索引,hbase-site.xml中需要打开配置
<property>
<name>hbase.regionserver.wal.codec</name>
<value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
</property>
异步构建索引
由于2200W数据量还是蛮大的,直接构建出错的概率高达100%,毕竟我本人就构建失败了,所以这里推荐异步构建的方式
create index rating_index_user_item_local on RATINGLOCAL("info"."userId","info"."movieId") include ("info"."rating") async;
执行上边的语句之后会在phoenix中生成一个索引,但是并没有什么用,可以相当于只声明了一个变量,我们还得给它赋值,需要再执行下边的语句
hbase org.apache.phoenix.mapreduce.index.IndexTool --data-table RATINGLOCAL --index-table RATING_INDEX_USER_ITEM_LOCAL --output-path ASYNC_IDX_LOCAL
这里异步构建会启动mapreduce,等着任务结束,没有报错,就说明成功了
测试结果
测试过程就不详细介绍了,直接上结果
查询类型 | 返回数据(条) | 耗时 |
---|---|---|
count | 1 | 40s |
单条件,非rowkey字段 | 10 | 40s |
单条件,rowkey字段 | 10 | 0.2s |
单条件,非rowkey字段,全局索引 | 10 | 0.3s |
单条件,非rowkey字段,本地索引 | 10 | 0.02s |
单条件,非rowkey字段,,全局索引 | 4k | 25s |
单条件,非rowkey字段,本地索引 | 4k | 18s |
相关文章
- 短链系统设计-场景需求及性能要求分析
- 模型压缩-方案(二)-剪枝【①训练一个基准模型;②、对权重值的幅度进行排序,去掉低于一个预设阈值的连接,得到剪枝后的网络;③、对剪枝后网络进行微调以恢复损失的性能;④、重复第②步】
- Oracle12c 性能优化攻略:攻略1-3: 匹配表类型与业务需求
- MySQL 性能调优之SQL
- 秒级SQL查询性能提升方案
- spring data mongodb 大数据量查询性能差的原因(20s 优化到2s)
- 强调单路性能/定位数据中心应用,AMD正式推出面向数据中心的处理器EPYC
- 为什么Windows文件系统压缩性能很烂?
- SQL Server查询性能优化——覆盖索引(一)
- 《OpenACC并行程序设计:性能优化实践指南》一 3.2 逐步性能提升
- sql server性能查询,连接数
- 2022-07-12 使用perf统计mysql执行的性能并生成火焰图
- 2023-04-19 mysql列存储-关于join查询结果出错和查询性能的问题-分析
- NVIDIA Tesla GPU系列P4、T4、P40以及V100参数性能对比
- NIO提升系统性能
- 【数据蒋堂】多维分析的后台性能优化手段
- 查询性能提升3倍!Apache Hudi 查询优化了解下?
- mysql查询INFORMATION_SCHEMA表很慢的性能优化
- 2019-6-11-C#-标准性能测试
- Linux性能测试分析命令_vmstat
- [Unity 3D] Unity 3D 性能优化 (一)