当前位置:主页 > 新闻热点 >正文

海量数据条件下,企业自定义数据分析需求的实现

作者: 丈哥 分类: 新闻热点 发布时间: 2019-01-11 16:48

互联网电子商务领域,尤其涉及到快速实现业务部门数据分析需求的处理方法以及系统。

背景技术

随着计算机通讯技术的发展,苏宁易购各业务系统产生的业务数据的规模也越来越大,,对如此庞大的数据进行快速分析传统的框架和技术已显得力不从心,并且随着数据挖掘技术的发展,对其海量数据的分析往往都是随机维度的自由组合,对此类需求传统的做法都是一个固化离线统计分析,消耗大量的人力、物力,并且都不能实时分析。针对以上问题,我们设计出了一套可以快速响应苏宁各业务部门数据需求分析的工具,不仅支持多维度的自由组合、个性化的设置,而且还能快速统计出用户随机指定的相关维度、指标数据。高效实现了用户的个性化需求,达到创新!

创新的内容(技术创新和业务价值)

主要创新在于:首先我们将数据进行分类,如苏宁的业务数据可以归类为时序化和非时序化,汇总类和明细类数据等,然后采用不同的架构技术方案进行处理。如针对时序化的数据,我们基于Druid做了相关的设计和封装,可以将能预汇总的数据存储于此。时序化的明细数据我们基于ElasticSerach技术作了封装,可以将历史数据通过Spark直接初始化到ElasticSerach,增量数据可以开启ElasticSerach服务获取Kafka实时增量数据信息。针对一些特殊场景如精确去重计算,涉及多表关联,我们采用了基于PostGreSql进行了相关的组件封装,整套的技术架构方案,能覆盖用户在海量数据中快速自定义维度、指标进行数据分析的大部分场景。对于业务系统产生的海量数据,无论是实时还是离线的,都可以自由的进行维度、指标组合,个性化的设置,对用户数据分析需求进行快速统计。其特点为:对存储海量的业务数据无论是汇总和明细查询都能够高效的查询,个性化的维度、指标的自由组合,能够很好支持业务部门的大部分数据分析需求。

1、解决的问题

(1)业务部门数据分析需求问题

苏宁易购各业务系统(如订单,价格,购物车,促销等电商业务系统)每天产生海量的数据,各业务部门在业务数据产生后,都会对业务数据进行数据分析和相关的明细查询操作。然而这种数据分析往往带有随机和不确定性,每个部门不同的岗位想看的、想分析的往往会截然不同,这样就会产生了大量的报表需求,给开发部门带来了巨大的工作量。针对此需求背景,我们进行了架构的调整和设计,实现能够让客户自由选择不同维度和指标进行个性化需求分析,快速的统计出用户想要的数据。在明细数据查询的时候,根据用户选择的日期、维度和指标也能快速的响应。用这种支持用户个性化的定义分析工具,可以解决大部分的日常的数据分析需求,为公司节约了成本。

(2)海量数据高效汇总问题

无论是面对海量的离线数据还是实时的数据,对如此庞大的数据进行数据分析都是困难的,之前我们针对实时数据的汇总一般采用STORM进行汇总再存入到DB或者其他的缓存中供查询,但是这种定时调度存在延迟,不能进行实时的查询。在海量的离线数据做汇总的时候,之前往往我们借助于HADOOP的离线计算,根据先定义好的维度统计相关的指标再入库或缓存操作,这样预先需要定义大量的不同维度组合,离线计算时效性也很差。基于以上的实时和离线的汇总统计出现的瓶颈,我们后续进行了架构的调整,先在DRUID定义一张大宽表,将相关的维度和指标都定义在这个宽表中,数据在存储的时候会按照维度进行预汇总,在查询的时候可以快速相应,彻底解决了海量数据汇总效率低的问题。

(3)海量明细数据高效查询问题

对于业务中需要查询大量的明细数据问题,之前传统的做法都是分库分表存储在DB里,这样在查询数据集较大的情况下存在很大的延迟问题,在存储上和归档上也是极其不便,我们进行了相关的架构调整,存储海量的业务明细数据采用了ElasticSearch存储介质,ElasticSearch是基于Lucene搜索引擎的其查询效率很高,彻底解决了海量业务明细数据查询高延迟问题。

(4)精确去重(count distinct)和多表关联问题

苏宁的业务分析中涉及统计到很多需要去重的维度、指标,利用Druid以及ElasticSearch去重都会有丢失精度问题,利用传统的关系数据库则统计的效率较低。鉴于此类场景,我们就PostgreSql进行了封装,利用其自身Sharding 和分片技术实现了高效的查询,满足了精确去重、多表关联并且高效查询。

(5)为大促提供保障


本文链接地址:https://www.0471seo.com/news/1653.html
  • 上一篇:<<2018AI和机器学习界的12个重大收购案

  • 下一篇:对话李开复:中国和美国将在AI领域甩开全世界>>
  • 如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!