目录
组合标签计算-传统方案
痛点
应用角度: 筛选客群得分别在多个索引搜索后,再做聚合,比较麻烦
技术角度: 架构较重,维护复杂 Sql能力差(join和聚合等),开发成本大, 定制开发,扩展不灵活
ES vs Hbase
es主要是个查询引擎,大量存的代价较大,Hbase优势在大规模读写
1)数据量 随着数据量的增加,es的读写性能会有所下降,从存储原始数据的角度来看,hbase要优于es
2)数据更新 Es数据更新是对文档进行更新,需要先将es中的数据取出,设置更新字段后再写入es hbase是列存储的,可以方便地更新任意字段的值
3)查询复杂度 Hbase支持简单的行、列或范围查询,若没有对查询字段做二级索引的话会引发扫全表操作,性能较差。 而ES提供了丰富的查询语法,支持对多种类型的精确匹配、模糊匹配、范围查询、聚合等操作,ES对字段做了反向索引,即使在亿级数据量下还可以达到秒级的查询响应速度。
4)字段扩展性 hbase和es都对非结构化数据存储提供了良好的支持。es可以通过动态字段方便地对字段进行扩展,而hbase本身就是基于列存储的,可以很方便地添加qualifier来实现字段的扩展
上图为用户画像系统里,用户分群示例。营销人员会根据需求,定义客群名称,勾选属性条件、选择且、或等组合关系条件,以及推送渠道或手段。平台通过组合条件的选择,拼出相应的查询,下透到查询服务层,经过计算将圈选的客群人数返回给前台。
基于ES+Hbase组合标签方案
传统方案痛点
应用角度:
- 筛选客群得分别在多个索引搜索后,再做聚合,比较麻烦
技术角度:
- 架构较重,维护复杂
- Sql能力差(join和聚合等),开发成本大,
- 定制开发,扩展不灵活