基于hivees

上传人:ldj****22 文档编号:45506312 上传时间:2018-06-17 格式:PDF 页数:34 大小:1.19MB
返回 下载 相关 举报
基于hivees_第1页
第1页 / 共34页
基于hivees_第2页
第2页 / 共34页
基于hivees_第3页
第3页 / 共34页
基于hivees_第4页
第4页 / 共34页
基于hivees_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《基于hivees》由会员分享,可在线阅读,更多相关《基于hivees(34页珍藏版)》请在金锄头文库上搜索。

1、基于基于Hive/ES 金融金融大数据指标大数据指标系统系统沈百军沈百军 2016年年10月月 QConWhy价值价值套利套利 低低风险风险波动波动保险连接保险连接大小大小 携带携带流动性流动性不足不足动量动量事件事件风险风险相关相关质量质量择时择时套利套利风险风险可融资性可融资性绝对收益绝对收益承受能力承受能力年龄年龄性别性别资产资产佣金佣金相关相关购买力购买力稳定性稳定性产品 (股票/基金/债券)客户Why-目标要求目标要求超级标签超级标签系统,标签可无限制扩展,所有标签可联合Filter超级超级Cube,可无限制扩展维度和度量值毫秒级别毫秒级别的多维分析工具,用户体验好,查询快水平扩展水

2、平扩展,必须是分布式,最好开源架构部署简单架构部署简单,维护成本,维护成本低低支持Sql查询,入门快其他系统比较其他系统比较ElasticSearchKylinSparkHBaseSSAS Cognos聚合度量值 排序XX维度&度量值 扩展性10W50W32个维度10W1维有限个条件明细筛 选XXX水平扩展型X易用性X性能和用户 体验毫秒毫秒1060s毫秒210s高维聚合查 询XX数据实时性流式写入流式写入流式写入流式写入X方案方案HiveElasticSearchSchema系统介绍系统技术架构ElasticSearch优化和填坑未来发展方向系统介绍系统介绍什么是指标系统条件筛选 & 多维统

3、计分析指标定义和维护 什么是指标系统(3W)WHO对象:给谁打指标,必须有一个主题对象 (如客户、股票、视频等)WHAT给对象的各个属性,标签,度量值等HOW精准化营销 多维统计分析 千人千面指标整体架构图指标整体架构图基 础 平 台ElasticSearch指标 管理DSP 调度系统调度系统Restful APIUI展示展示指标后台提交系统指标后台提交系统ES SQLHDFS/HiveES Load Job条件筛选和多维分析(条件筛选和多维分析(Filter & Cube)指标选择数据显示区域模板选择搜索条件搜索区域指标系统元数据定义指标系统元数据定义 指标模型管理 指标管理 维度管理 其他

4、辅助设置数据统一选型ES多维分析Redis缓存开发实践开发实践- 摸石头过河摸石头过河精准营销千人千面多维分析通过数据挖掘 分析用户标签, 添加到redis, 提供API宽表查询,ES方 案绝对无争议研究kylin作为 cube引擎发现ES的多维 分析能力非常强 确定ES作为 cube引擎把最热的数据添 加到Redis,提 供在线API接口系统技术架构系统技术架构 整体架构 指标元数据设计模型设计指标设计指标系统方案架构指标系统方案架构Hive数据源资产 模型基本 信息交易 模型产品 模型超级宽表ElasticSearchAPIUI部分es sql后面简称 ES指标元数据设计指标元数据设计-

5、模型设计模型设计形成一个 大宽表基本信息 (Single)用户登录模型 (multiple)渠 道最 近 一 周 登 录局限性:大宽表,每个用户只能一条记录状 态使任何模型,每个对象都变为一条记录指标元数据设计指标元数据设计- 模型维度设计模型维度设计模型设计维度设计指标元数据设计指标元数据设计- 指标设计指标设计指标设计扩展指标 Hive里面是Map字段 设置维度后,每个渠道一个key 存放在Map,ES是一个字段 添加指标时 可以选择多个字段指标元数据设计指标元数据设计-其他设置其他设置 表达式指标表达式指标 用户可以根据自己的逻辑添加指标 模板定义模板定义 根据设计的查询分享给其他用户

6、索引设置索引设置 索引是有限资源 指标别名设置指标别名设置ElasticSearch-Sql多项聚合多项聚合 Use group by (fieldName),(fieldName, fieldName) SELECT * FROM account GROUP BY (gender, state, age),(state),(age)分区间聚合分区间聚合 put fieldName followed by your ranges SELECT COUNT(age) FROM bank GROUP BY range(age, 20,25,30,35,40)地理查询地理查询 GEO_DISTANC

7、E_RANGE(center,1m,1km,100.5,0.50001) GEO_DISTANCE(center,1km,100.5,0.5)优化和填坑优化和填坑 ElasticSearch优化和填坑ElasticSearch优化点填坑大行动 核心计算调度ElasticSearch原理原理 时间复杂度:O(N) -O(logN)- O(1) 文档(Document) 单词(Word) 倒排索引(Inverted Index) Bool filter & And/Or/Not filters(Bitset & non-bitset) Filter execution order Instance

8、 & Shard doc1doc2doc3doc4doc5doc6doc7doc8gender-男Level-高净值bitset - andO(1)ElasticSearch-blukload11万字段,两万个索引字段,每天要7点前导入es,核心将ORCFile里的数据导 入ES 虽然ES可以自动创建mapping,但创建的效率非常低,所以希望能一次性的把mapping创建splitORC/ HDFSETLflush merge optimizesplitsplitsplitmapreducemap获取key,reduce创建mappingmapMap bulkload导入esswitch a

9、liasElasticSearch优化优化IO优化优化 一台机子多个实例,硬盘裸盘 多硬盘提高IO,实例之间硬盘不共享 SHARD个数等于硬盘个数,最大化利用硬盘IOdiskinstanceNodediskinstanceNodeES clusterElasticSearch优化优化IO优化优化 一台机子多个实例,硬盘为裸盘 多硬盘提高IO,实例之间硬盘不共享 SHARD个数等于硬盘个数,最大化利用硬盘IOdiskinstanceNodeinstancediskdiskinstanceNodeinstancediskES clusterElasticSearch优化优化IO优化优化 Bulkl

10、oad 的瓶颈在IO 购买32块SSD硬盘和96块普通一盘比较 (以下数据为1000w记录,11万字段,1w索引,索引500G)32块块SSD硬盘硬盘96块普通硬盘块普通硬盘Import time80分钟90分钟Merge time20分钟30分钟Hard Disk Load40%80% 结论:时间上面没有明显提高,但load提高一倍 进一步优化方法,购买更多SSD硬盘 增加机器数量 减少索引个数,优化索引ElasticSearch优化优化 尝试G1 GC,提高吞吐能力 一台机子多个实例 多硬盘提高IO,实例之间硬盘不共享 SHARD个数等于硬盘个数,最大化利用硬盘IO bootstrap.m

11、lockall设置true,防止swap 使用bulk load,加大threadpool.bulk.queue_size=1024 避免数据丢失 Map=90 Index settings disable _all 使用index alias代替index name填坑:填坑:ElasticSearch TopN慎用慎用terms sizeElasticSearch terms size聚合的时候,如果维度基数大于size,聚合结果求 TopN可能是近似值shard Ashard Bshard CA 30B 12E 15B 25C 10B 10C 4D 8D 8D 3E 7C 6E 2A 2

12、A 1B47A30D16shard Ashard Bshard CA 30B 12E 15B 25C 10B 10C 4D 8D 8求top3结果B47A33E24正确结果:结论: terms size & shard size 必须超过维度元素个数填坑:禁止高维组合查询填坑:禁止高维组合查询 & distinct 不精确不精确 高维查询当高维组合查询时,es的heap & load 就会增高,会拒绝服务高维在业务应用中其实不多,无业务含义,应该禁用(kylin 对高维支持 很好) Distinct 使用 Hyper loglog 算法,有一定误差社区贡献社区贡献原因: 如果terms字段为n

13、ull值,group by无法进行统计显示ElasticSearch-sql: pull-267对terms聚合添加missing和order by功能未来发展未来发展 优化ElasticSearch bulkload,缩短导入时间 对象记录唯一性的缺陷,支持多记录和跨索引的Join 指标系统抽象化,可以任何对象;目前是客户指标系统 能够和多维分析UI工具打通 支持实时数据查询和分析 有望推向社区,开源核心计算调度核心计算调度(主题外补充)主题外补充) 自动依赖通过Sql分析,形成一个有向无环图核心计算调度核心计算调度-sql dependent 平安95% 的job使用 sql 表示 Sql 语义分析Job 依赖A: select f1 from table1B: select f2 from table2C: select a.f1 + b.f2 from a join b ABC谢谢谢谢

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号