我们的最佳实践是利用互联网+大数据的技术架构,构建Lamda架构,如图所示:
一、数据采集
1. 传统业务系统数据库和数据集市、数据仓库的数据,均可以通过Sqoop等数据桥接的方式接入大数据平台,同时可以将数据库日志、系统日志等非结构化文本数据通过Flume等组件接入大数据平台
2. 银行线上渠道(网站、APP应用、微信公众号等)中的用户行为可以通过数据探头技术,Web端及H5通过JS、移动端通过SDK部码,采集用户行为数据;银行线下渠道(柜面、ATM等)的用户行为数据,需从线下接入的系统数据中解构分析
3. 互联网公开数据,如论坛、微博、媒体资讯等,通过数据爬取技术进行数据采集
4. 也可以利用各种API接口接入其他合作方、第三方等的在线或离线数据
二、数据分发
通过FTP或Kafka消息队列将数据实时分发,分发后分开实时数据处理和离线数据存储和处理两条线,形成“人”字型的Lamda架构
三、离线数据存储及处理
基于Hadoop平台和MpReduce技术的离线数据处理,常用的是HBase列式数据库。
四、实时数据处理
利用Storm或Spark技术的实时数据处理,例如Storm是事实流式处理,Spark(Spark Streaming)是基于内存的实时批处理。
五、数据存储
不同的数据类型、不同的业务场景,需要的不同的数据存储服务,在我们的产品中应用了Redis、MongoDB、MySQL、ElasticSearch等多种存储服务。
百分点基于此架构为银行提供服务的典型应用场景包括:
1. 用户行为采集分析:利用数据探头(JS、SDK,Nginx、ICE)、数据分发(Kafka)、离线数据存储及处理(HBase)、运营分析结果展现(MySQL)
2. 跨部门数据整合:利用数据桥接(Sqoop)、日志接入(Flume)、数据分发(FTP)、离线数据存储存储及处理(HBase、ES)
3. 离线用户画像和用户洞察(支持营销):利用离线数据存储存储及处理(HBase、ES)
4. 实时用户画像及推荐:利用实时数据处理(Storm、Spark)、数据存储(Redis、MongoDB)
5. 实时反欺诈:利用数据接口(API)、数据分发(MQ)、实时数据处理(Storm)