技术交流
Technical
the main title
2021-04-15 2557
对比二者在性能与功能上的差异。
l cpu: 2*10*2 Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
l 内存:512G
l 硬盘:4T*4SSD
l 数据条数:100亿
l 数据样例如下:
行长:384 字节
数据:
{"copy_all" : "郑州银行借记卡四川","uuid_24" : "fc3e04b39c72","uuid_30" : "35c8cdeeadbbda48f3aa66aa9c9297062e16","s_mod_10" : 0,"s_mod_100" : 42,"s_mod_1000" : 341,"s_mod_wan" : 6021,"s_mod_10wan" : 34240,"s_mod_100wan" : 87597,"s_mod_1000wan" : 6899273,"s_mod_yi" : 14115907,"tradeid" : "201805161154260852","tradetime" : 20180516115426,"tradetype" : "网上购物","tradestat" : "成功","txnamt" : 966,"product" : "华录","ptype" : "手机","psn_id" : "511118197804198192","psn_name" : "慕容颜良","sex" : "女","age" : 40,"psn_tel" : "13450024095","psn_areaid" : "5111","psn_provname" : "四川","psn_cityname" : "乐山市","psn_gps_str" : "29.590882,103.315736","psn_gps" : "29.590882,103.315736","psn_cardid" : "6092664394750795","psn_bank" : "郑州银行","psn_cardtype" : "借记卡"}
本次测试针对carbondata未设置boolm, datamap,datamap在对等值查询的列使用boolm后,速度会很快,之所以没设置考虑到如下因素:
1. 需要driver里加载boolm,耗费内存太多
首次查询会因加载非常慢,同时boolm会耗费很多的内存,故carbondata会要求driver给予较大的内存如200G,而实际生产中列数较多,数据也经常更新变化,数据条数也远大于100亿,内存可能不够用。
2. 只能用于等值查询,对于范围,前缀检索无效。
3. lucene datamap帮助分词查询,但是执行任务会卡顿,不可用。
4. bloom datamap 可以加快精确查询,但是会有误差,统计也会不准确。
解读:在等值检索上,lsql的性能约是es的5~8倍,是carbondata的30~40倍
对比项 | lsql | es | carbondata |
数据存放位置 | hdfs分布式文件系统 | 本地 | hdfs分布式文件系统 |
按时序检索与时序统计 | 支持 | 不支持 | 不支持 |
复杂嵌套SQL,多表关联 | 支持 | 不支持 | 支持 |
多列分组统计 | 支持 | 组数少可,组数多跑不出来 | 支持 |
全文检索 | 支持 | 支持 | 不支持 |
地理位置检索 | 支持 | 支持 | 不支持 |
异构存储-索引部分存储SSD | 支持 | 不支持 | 不支持 |
多列联合索引 | 支持 | 不支持 | 不支持 |
上一篇:第一篇
下一篇:最后一篇