樊东霞
(中国福利彩票发行管理中心数据管理部,北京 100101)
目前福彩系统的信息化建设,多以各省具体的信息化需求为出发点开展工作,即开票、电脑票销售系统均由各省福彩中心自行建设,导致原始数据缺乏统一的技术标准与数据标准规范,中国福利彩票发行管理中心(以下简称“中福彩中心”)对原始数据的实时收集与处理存在困难,无法对业务开展的事中风险进行排查与管控,在营销宣传、渠道管理、数据管理与应用管理等方面存在一定制约,对系统整体的架构规划、架构管控方面存在不足,因此亟需站在系统全局视角,整合中福彩中心层面和各省市中心层面的信息化需求,加强数据统筹管理。
福彩销售大数据平台基于大数据技术设计与开发,为整合各省销售数据资源,打造集数据接入、数据处理、数据存储、监测管理、BI 报表和可视化平台于一体的大数据平台,着力提升信息化管理与服务能力,实现数据要素价值的充分发挥。
随着计算机技术全面融入社会生活,移动互联、电子商务平台、社交媒体和物联网技术正在不断改变人们的生活方式,其数据量与对传输速率的要求超过了传统数据库的处理能力,数据的爆发式增长与社会属性是大数据概念及相关技术应运而生的本质原因,维克托·迈尔-舍恩伯格[1]将大数据定义为不用随机分析法这样的捷径,而采用所有数据的方法。大数据也可用5V 特征概括,主要包括Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)和Veracity(真实性)。
1)Volume:数据量的超大规模与数据的高速增长。
2)Velocity:对海量数据的快速处理。
3)Variety:数据格式多样化,既包括结构化数据,也包括语音、图片和视频等非结构化数据。
4)Value:数据的低密度价值,数据存在大量不相关信息,需要通过技术手段挖掘其中的有用信息。
5)Veracity:数据的准确性,即数据质量。
大数据技术主要包括数据收集、数据存储、数据计算和大数据分析与应用,如图1 所示。
图1 大数据技术结构图
数据收集是大数据的基础,数据只有经过了数据收集才能归并,以供后续进一步处理。数据源根据不同的类型和应用场景,可分为关系及非关系型数据库、应用的日志信息、消息型数据和多媒体文档等,不同类型的数据需要采用不同的数据收集技术框架。常见的数据收集技术框架包括Kafka、Flume、Logstash、FileBeat和Sqoop 等。
目前传统的关系型数据库已不能适应结构化、半结构化和非结构化海量数据的存储及计算要求,选用何种数据库一般会根据数据的类型及使用场景选择一种或多种的大数据存储方式。如分布式文件/对象数据库可采用HDFS,分布式关系数据库可采用TiDB、DRDS 等,文档数据库可采用MongoDb、CouchDB 等,图数据库可采用Neo4J、OrientDB 等。大数据存储有时也配搭传统关系数据库作为辅助,如存储索引、统计结果等。
大数据计算常用框架主要包含批处理框架、流处理框架。批处理是先存储后处理,而流处理是直接处理[2]。Hadoop 是应用较为广泛的批处理框架,其包含分布式文件存储数据库HDFS 和计算框架MapReduce,HDFS 为海量数据提供了存储,MapReduce 对海量的数据进行计算。流处理框架以Storm 为代表,无须存储,只要数据源处于活动状态,数据就会持续生成,并以流的形式在各工作节点的内存中进行计算[3],此外还有Spark、Flink 等混合计算框架。
大数据技术的应用场景很广泛,常见的如各种统计分析报表、BI 报表、客户画像、信息推送和定制化服务等,目前在金融行业、医疗行业、零售行业、互联网和电信行业等各领域均有涉及。
销售大数据平台整体分为3 层,即数据资源层、数据平台层和数据应用层。数据流向如图2 所示,数据资源层数据通过数据接收平台流向数据平台层,数据平台层接收并存储数据资源层数据,并通过数据清洗、数据转换和挖掘分析,为数据应用层提供数据服务,数据应用层提供数据引擎进行并展示各种统计数据,同时对业务进行实时监控与风险控制。
图2 数据平台总体架构
2.1.1 数据资源层
数据资源层主要包括各省中心上传的即开票销售数据、即开票仓储物流数据、电脑票销售数据、弃奖数据、兑奖数据和渠道数据等,也包括各省中心应用服务数据、容灾备份等其他数据。
2.1.2 数据平台层
数据平台层包含数据接收平台、ETL 服务、数据存储平台和管理控制单元等,将数据资源进行接收、存储与加工整合。
数据平台层提供数据接收服务,对各省市报送的数据进行接收,并将接收到的数据存储到数据存储平台。
数据平台层提供数据转换、数据清洗服务,对接收到的数据进行数据清洗,根据数据流水号检测数据报送过程中遗漏的数据,将结果反馈给省中心进行数据补报。
数据平台层提供数据挖掘功能,对清洗后的数据进行挖掘分析,将分析结果存储到关系型数据库Greenplum 中。
2.1.3 数据应用层
数据应用层提供数据查询引擎、销量分析引擎、游戏分析引擎、渠道分析引擎、资金分析引擎和风险分析引擎,通过上述引擎提供实时监控、销量查询分析、数据建模分析、异常监控和业务报表查询及生成等功能。
数据接收平台(图3)为各省中心提供统一的数据报送接口,各省按照协议中规定的格式通过数据接收平台报送各类数据。接收平台提供数据转换服务对报送的数据格式进行实时格式校验,保证报送数据能够进行正常转换,转换正确的数据被写入到数据存储平台的消息队列Kafka 中,Kafka 是一个分布式、支持分区的、多副本的和基于Zookeeper 协调的分布式高速消息传递系统[4],Kafka 集群作为消息中间件,对大量写入的交易数据进行缓存。接收平台通过Spark Streaming消费Kafka 集群中指定的Topic 来获取业务数据并进行实时计算,包括对数据进行一致性校验,对校验后的数据进行指标计算、数据建模等,将计算后的结果存储到数据库中。接收平台同时将格式错误的数据流水号保存至数据库中,省中心可以通过查询异常流水号,对错误的数据进行补传,保证数据的一致性。
图3 数据接收平台
Spark Streaming 是构建在Spark 上的实时计算框架,扩展了Spark 处理大规模流式数据的能力,Spark Streaming 可结合批处理和交互查询,足以胜任除高频实时交易以外的其他流式准实时计算场景。Spark Streaming 构建在Spark 之上,一方面是因为Spark 的低延迟执行引擎(100 ms 左右)可以用于实时计算,另一方面,弹性分布式数据集(RDD)更容易做高效的容错处理。此外,Spark Streaming 采用的小批量处理方式使得其可以同时兼容批量和实时数据处理的逻辑和算法,因此,适用于需要历史数据和实时数据联合分析的特定应用场合。
数据接收平台整体接口设计为RESTful,遵循统一接口原则,使用XML 格式进行定义,系统对接简单高效,能够支持全国各省销售系统对接。接收平台数据转化服务能够从配置管理中心实时获取最新的数据格式配置文件,在数据规范发生变更时能够及时进行变更,数据格式校验具备热更新的能力。
数据接收平台使用LVS 技术进行负载均衡,LVS是一个虚拟的Linux 服务器集群系统,主要用于多个Linux 服务器的负载平衡,在Linux 内核层级实现了基于IP 的数据请求负载均衡调度方案,平台中采用该技术实现高并发数据的负载均衡处理,保证了平台在高并发情况下的运算能力,同时数据接收平台支持动态扩展,允许系统快速弹性扩容,在高并发压力下,实现秒级系统弹性伸缩,提升数据接收平台整体的可扩展性。
大数据存储平台提供分布式数据存储文件系统、分布式数据库、分布式计算框架及大数据挖掘程序,对海量数据进行存储并挖掘价值数据。
1)数据存储平台使用HBase 作为实时数据接收数据库,将Spark Streaming 计算后的结果数据存储到数据库,实现实时入库。
2)数据存储平台使用VMware 虚拟机集群,搭建Hadoop 大数据集群,大数据集群中使用HDFS 作为底层分布式文件存储系统。
3)数据存储平台使用Hive 作为离线数据挖掘分析处理框架,在Hive 数据的基础上,对销售数据进行挖掘分析。
4)数据存储平台使用Greenplum 数据库作为前后端交互的分布式关系型数据库,在Greenplum 数据库中保存数据挖掘分析的结果数据。
5)数据存储平台使用Redis 作为高性能的实时数据统计数据库和缓存数据库。
大数据分析是大数据研究领域的核心内容之一[5],数据分析平台使用数据可视化框架,利用大数据技术对大数据平台的数据进行价值挖掘后进行可视化展示,方便业务人员通过可视化图表对业务中存在的问题、风险进行深入分析,帮助业务人员和运行维护人员快速定位问题,数据分析平台功能架构图如图4 所示。
图4 数据分析平台功能架构
销量分析是针对彩票总体销量的统计分析,包括销量排名、同比增幅、同比增量、环比增幅、环比增量,以及彩票发展指数、人均购彩金额和人均可支配收入购彩率等。
游戏分析是指对游戏全生命周期的分析,分为电脑票游戏分析和即开票游戏分析。电脑票游戏分析针对电脑票发行、销售、开奖、兑奖、弃奖、期管理和停销等业务的分析,包括当期销售热点时间、受欢迎的投注方式等指标;即开票游戏分析针对即开票发行、生产、仓储物流、销售、兑奖、弃奖和停销等业务的分析,包括面值分布、上市时间分布等指标。
渠道分析主要用于展示全国各省投注站数量情况、投注站逐年销量与数量的变化趋势、当前站点经营信息及站点人员信息,此外统计了销量排名靠前及靠后的投注站特点,便于业务人员对特殊站点进行重点管理。
资金分析主要包括公益金查询、发行费管理、兑奖周转金管理、一般调节基金管理和发行销售风险金管理等业务。
风险分析主要用于监管业务合规性,包括大额售彩、高频交易、交易时间异常、销量异常波动、出票票数异常、注销异常、兑奖异常、站点营业时间异常、站点开设位置合规性和站点交易时间分布规律异常等业务风险监管。
自助分析是指把归集的数据根据业务需求进行数据的聚合,再从各个维度进行数据分析,针对数据维度提供不同颗粒度的选择查询、定制、导出和展示等功能,自助生成可视化报表。
随着近年来福彩销量增加,各省中心积累了大量原始数据,如何实时准确归集福彩销售相关数据并挖掘其中的潜在价值,成为中福彩中心持续研究的一个重要方向。福彩销售大数据平台的建设为福利彩票的发行销售和业务监管提供了重要的数据支撑与决策依据。平台综合运用大数据挖掘与分析技术,辅助产品研发、渠道布局、精准营销和精细化管理,实现福利福彩销售的多元化,增强福彩监管力度,有助于提高福彩公信力,提升“阳光福彩”公益品牌形象,符合责任彩票体系建设要求,推动福彩数字化转型,响应国家数据政府、数字经济和数字生活建设的政策导向。