汽车网决策支持系统设计研究

汽车网决策支持系统设计研究

摘要:汽车行业某垂直门户网站(下称汽车网)从2006年初开始上线到今天已经成功运营十多年,在全国各大城市均设有独立的服务器和分站,主要提供汽车资讯、广告、当地汽车报价、经销商门店、车主投诉处理等功能。由于地区性差异,各分站发展到今天虽然界面形式上一致,但数据格式上却各自演化无法统一,管理层无法及时得到准确的全局决策信息。为了彻底解决该问题,经调研决定在总部开发一套决策支持系统,集成各分站数据,让管理层随时都可以得到准确、及时的信息。该系统的成功实施提升了公司的决策效率,使高管们在第一时间掌控全国行业动态,及时调整广告策略,给经销商们提供符合市场的价格信息,企业也因此获得了客户的广泛好评。

关键词:汽车网;决策支持系统;数据仓库;数据中心

1引言

作为业内排名靠前的汽车行业垂直门户,汽车网随着业务的不断发展,在全国主要大中城市均有分布式服务器集群。北京、上海、广州、武汉、成都的客户可以就近访问电信或者网通甚至是其他更小规模服务商的网络内的服务器,以便得到最好的网络速度体验,并且,随着业务的飞速发展,用户产生的内容和数据也越来越多,对存储要求也越来越高,集中式的网站服务根本无法满足全国各地用户的多种需求,分布式网站的策略到现在依然有效,可以根据IP将用户访问分流到各地。但是这种策略对公司的高层领导来说也带来了新问题,高层领导无法及时得到一个全局的数据视图以准确掌控业务状态,需要各分公司配合出各地报表,汇总到总裁办公室合并为Excel,最后得到全局视图。这种人工的方式费力,延迟,经常出错,公司高层领导已经无法接受这种传统模式,因此立项研发决策支持系统以彻底解决问题。决策支持系统通常来讲分为三部分:数据采集处理、数据存储和数据展现。通常的做法是采购大型软件公司的成熟方案,这些方案的优点是成熟可靠,缺点也很明显:不能灵活应对特殊场景,服务按小时计费价格昂贵。汽车网选择从开源软件入手,以开源的Linux操作系统为核心,采用Java语言编写数据采集与清洗软件,使用Hadoop、Spark、Hbase作为分析处理和数据存储服务器,并用G2框架为基础开发个性化报表系统。最后同样能够达到一流商用BI方案的效果,并且可以针对自己的业务需求灵活快速地调整,而且开源软件本身免费,取得了极佳的性价比。

2需求分析

决策支持系统需要的数据种类繁多,比较典型的有以下几种,其一是各种页面的访问量,广告位曝光、点击、报名转化,从而分析广告效果,以便进行动态调整广告策略;其二是监控当地经销商网店优惠活动及车型价格,采集分析其他重点汽车网站的报价信息进行对比,统计分析价格规律,从而让管理层做出最优决策,以配置各地库存数量及制定相关报价策略;其三是监控用户舆论方向,对每一款车型的提问、回答,分析出当前用户比较关注的焦点,从而做相关活动提高社区粘度;其四是收集车主投诉,汇总统计得出质量问题规律,对接车厂从而更好地服务于最终消费者。因此技术上需要每日从全国20多个分站抽取相关增量数据到总部数据中心,对处理好的数据进行分析和挖掘。

3系统设计方案

传统的决策支持系统分为ETL、DataWarehouse、BI三部分;其中ETL部分一般采用IBM的SataStage工具来实现;数据中心主要采用NAS和IPSAN相结合的方式分别满足共享文件存储和数据存储的功能,容量扩展主要依赖于磁盘阵列和磁带库;BI部分则采用水晶报表作为展现工具。考虑到这么设计代价昂贵,尤其是数据中心部分的集中存储方式扩展起来不是很方便,性能也难以保障,因此在汽车网的决策支持系统中,采用新的设计方式,如图1所示。如图1所示,该设计主要采用了以开源框架Hadoop为基础的分布式处理与存储思想,规避了传统收费软件,使用相对廉价的PC服务器集群取代昂贵的专用磁盘阵列存储设备,使得海量数据的处理存储变得相对简单、便宜。其中数据采集部分,使用kafla、flume等分布式组件远程收集各分站的业务数据,汇总到总部数据中心,然后采用SparkStreaming对数据流进行实时处理,结果再以键值对的方式存入Hbase,对于需要进行多维分析的数据可以存入传统的RDBMS中,也可以自己写OLAP方法针对需求进行定制分析。

4实施

4.1数据采集与清洗

汽车网各种业务数据,如各分站经销商的报价数据,各车型的用户口碑,各地用户的投诉与评论,各分站的汽车专业文章及广告位,阅读量、点击量等均需要及时传送汇总到数据中心。这个过程分为数据抽取、数据清洗、数据传送三个环节。首先各分站的分布式数据抽取工作并不容易,如果直接连接到各地生产库上,可能会影响性能,因此对于数据库类型的数据源,各分站先做主备模式,只需要连接到备机上根据时间抽取增量数据再通过kafka队列传输到总部数据中心;对于日志文件,则采取先集中备份到日志转发机,再采用消息队列kafka传输到总部数据中心;flume管道对HDFS格式的文件传输比较友好,专门用来传输这类格式的数据。这些数据在进入队列或者管道之前进行统一的格式转换,即完成数据清洗工作。数据传输任务设置在每天夜间定时完成,最后汇总到数据中心,由SparkStreaming进行实时分析、处理、分类,最后存到Hbase数据仓库,也有少量存入Mysql数据库中。

4.2数据分析与处理

SparkStreaming从消息队列中获取数据流,并按照时间分块,转化为rdd,然后通过滑动窗口对数据进行实时的统计分析计算。SparkStreaming中提供了很多封装好了的简单易用的算子,例如map,flatMap,filter,sort,reduceByKey,collect等,通过这些算子的组合,可以完成不同的计算需求。这些算子会创建很多map/reduce子任务,分发到不同的集群子节点,进行分布式运算。例如要统计10分钟内多款车型详情页面的阅读次数,则可以采用10分钟作为滑动窗口的大小,而滑动频率决定了触发计算任务的频率,需要根据实际的数据量、集群的算力、实时性等统一考虑,设置适当的窗口滑动频率可以让集群运行更加稳定;计算的过程如下:从日志中筛选出这几款车型的访问记录(filter算子),然后转换为键值对(url,1),最后通过reduceByKey统计出每款车型的总访问量。在处理更复杂的情况时,还需要从数据中抽取出重要的数据字段(主要通过正则匹配来实现),然后转换为对象实例,方便后续的处理;在计算的过程中,有的时候还可以把需要重复使用的数据缓存起来,后续就会直接使用cache,而不是重新计算,这可以极大地提高计算速度。

4.3多维分析与报表展现

Hbase本身是key-value存储格式,适合海量存储,但对于复杂的多维分析运算需要额外编写程序,另外还可以借助传统的RDBMS来实现。在汽车网广告分析模块中,利用开源的Mysql作为补充进行报表运算。多维分析的表结构设计与普通的事务处理表结构设计并不相同,它更多的倾向于数据分析,要求从多个维度考察度量指标,比方说在广告点击量分析数据仓库,记录了每个广告的曝光量点击量,这个广告在哪个位置,哪天的。多维数据库由事实表和维度表组成,其中事实表由维度和度量组成,度量是广告的点击量和曝光量,维度是时间、位置、广告。有了这样一个多维数据库记录历史到今天的广告数据,很容易钻取(drilldown)和上卷(rollup)来分析广告效果。以前靠人工收集数据,EXCEL汇总的模式,已经被高度自动化的数据抽取、清洗、分析、汇总、生成报表的流程取代,延迟从以前的好几天变成现在的几小时,报表数据精确无误,高层能随时查看最新动态,对用户关心的汽车投诉问题、行情信息、销售量、热销和滞销车型了如指掌。另外也不需要采购昂贵的水晶报表软件来完成这项工作,开源引擎G2是一个非常好的工具,被深度应用于汽车网的报表展现中。

5结论

决策支持系统的数据采集模块分布在全国多个分站,在带宽充足的前提下和总部数据中心的通信稳定可靠,项目成功运行半年多充分证实最初的设计正确可行。数据流实时分析处理部分,快速高效,超过预期。实践证明采用SparkStreaming在内存中实时处理的效果要优于先将数据存入HDFS攒到一定量再进行批处理的方式。自动化报表程序快速高效,准确率高。高管随时掌握全国各分公司业务的最新动态,准确抓住业务的敏感点,及时调整市场策略实现效益最大化,充分体现了数据的价值。

参考文献

[1]姚雄飞,覃海生.多品牌汽车销售集团的业务决策支持系统的架构设计[J].电脑编程技巧与维护,2016.

[2]庄玉良,贺超.基于物联网的汽车业再制造信息采集与决策支持系统研究[J].物流技术,2016(06).

[3]张若儒.基于HBase的OLAP多维数据聚集计算[J].东南大学,2012.

[4]尹国明.汽车维修故障诊断智能决策支持系统的研究[J].中国新技术新产品,2013(23).

[5]杨春莹,杜小芳,王维.汽车企业订单生产决策支持系统[J].汽车工程师,2011(10).

[6]杨艳霞,于海平.基于数据仓库的汽车配件销售决策支持系统[J].计算机与数字工程,2010(07).

作者:董勤 单位:上海车团网络信息技术有限公司