基于实时数仓技术,赋能生态合作平台商业化智慧运营
2021-07-22蔡琨闫宇张云彭涛叶秀泳
蔡琨 闫宇 张云 彭涛 叶秀泳
(中移互联网有限公司,广东广州 510000)
0.引言
进入5G时代,智能终端设备产生的海量数据,对于业务运营、客户维系具有较高的价值。如何管理好、使用好这些数据资产,通过数据驱动业务,使能业务的智慧运营?在提升数据应用的实时效率上,我们进行了积极探索和实践。
1.现状分析
随着数字化时代日新月异的发展,终端设备的智能化,业务服务的精细化,数据运营在使能业务智慧运营发挥着越来越重要的作用,对于数据处理的实时性需求越来越多,例如搜索推荐、实时分析、广告投放、系统监控。传统以批处理为主的数据处理模式不能满足业务要求,需要一种实时的数据处理平台,以支撑流式数据处理模式的场景,有效发挥大数据和快数据的技术优势,赋能业务生产的精细化运营。
近几年,随着流式数据处理框架的兴起,实时数据仓库这一理念被越来越多互联网公司所采用。实时数仓是传统数据库的新演进,以数据的实时处理和实时应用为主要特征的数据存储、处理和应用服务平台。在数据的接入流程上,数据实时采集后,快速清洗,存储成一定格式的数据结构,并能够立刻面向外部提供数据服务,整个数据链路的时延可以控制在毫秒级,实现了数据的“即采即存即用”。
目前,业界的互联网大厂都构建起了以Flink为框架的实时数仓,例如阿里是国内最早一批开展实时计算平台搭建的公司之一,其瞄准和深耕最前沿的实时计算框架Flink,并在此开源框架上,研发了Blink大数据实时平台,形成了具有数千台规模的Blink实时生产集群,支撑着广告、推荐、搜索、大屏等核心生产业务场景。
美团作为国内做大的生活服务平台,其在实时数仓的建设上同样走在业界前列。其采用Flink框架迭代了原有的Storm框架,支撑运营、运维、安全和用户等多种角色的实时场景。
2.应用场景
针对业务运营模式不断向智慧化、高效化的转变,实时数仓的应用场景不断丰富,对数据的快速搬运和实时计算,为运营人员提供自动化的策略工具,为用户提供个性化的产品服务,为企业提高业务转化率,做大收入;同时,提升智慧运营能力、节省成本、提高效率。中国移动的数字业务,实时数仓主要用于服务以下场景:
会员营销:针对用户属性特征和行为数据的实时分析,为用户精准推送会员产品。结合内容热度、产品价格、营销转化率,构建会员商业价值模型,实时计算推送策略,挖掘每一个用户流量价值最大化;
推荐搜索:实时采集用户的行为数据,结合用户的搜索内容输入,预测用户偏好和意图,在搜索内容直达和搜索结果中为用户推荐个性化的产品服务;
广告投放:在数字业务的商业化变现场景中,实时计算广告的投放转化数据,结合广告主的动态出价,综合快速确定投放的策略和内容,提高变现的坪效,提升渠道触点价值;
决策支持:用户行为特征、业务交易指标等数据实时更新,为运营提供最新的市场变化行情;实时大屏,形成动态地图和看板,为领导提供实时全视图;
实时监控:系统性能、接口交互等数据实时监控和告警提醒,提升系统的故障发现时效和恢复及时性;
实时风控:异常行为检测和识别,最快最精准的发现异常违规的交易行为防范商家刷单,防范用户薅羊毛,打造安全可信的交易生态环境,确保业务损失最小化。
3.实时数仓的构建
对标业界最先进的实时计算技术,以生产应用场景需求为导向,构建以Flink流计算框架为核心的实时数仓,分为接入层、计算层、汇聚层、服务层的4层架构(见图1),功能分层划分,满足业务的实时需求。
图1 实时数仓架构图
接入层:利用各种数据接入工具收集数据源,包括binlog 日志、埋点日志、以及后端服务日志,数据被收集同步到 Kafka 中;这些数据不只是参与实时计算,也会参与离线计算,保证实时和离线的原始数据是统一的;在接入层中,集成了数据实时ETL工具,提供将底层数据进行过滤、清洗、转换等处理,包括联表处理、维度补全,基于事实表和维表的数据信息,加工形成中间层的临时数据或临时宽表。
计算层:实时数仓的核心,服务对汇聚数据的逻辑化运算和处理。目前,主要使用Flink、Sparkstreaming和OLAP数据库自带的计算引擎,Flink计算引擎主要用于实时数据同步、流式ETL、关键系统秒级实时指标计算场景,Sparkstreaming主要用于复杂多维分析的准实时指标计算需求场景,HIVE和 ClickHouse主要满足多维自助分析、对查询响应时间要求不太高的场景。在计算层,面向不同的对象,如订单、用户、产品等,将基础数据分类汇总为不同的数据子集。针对这些数据子集,结合不同业务场景的需求,运用不同的计算框架,实时或离线计算成结构化、规范化、可应用的结果数据。
汇聚层:固化计算层的输出结果,将用户标签、分析指标、推荐结果、转化效果、黑白名单等,沉淀、汇集在改层,实时或定期进行更新,可面向服务层进行直接检索或调用,同时对外提供统一查询服务、元数据及指标管理、数据质量及血缘;汇聚层,主要使用ES、Redis、Hbase、tidb等实现了计算层的数据sink。
服务层:将汇聚层的数据,通过多种方式封装,如api和sdk, 形成可实时对外输出的能力,将实时数仓的数据,应用于搜索推荐、大数据风控、实时BI、广告投放、运维监控等场景中,直接支撑业务的实时数据需求。
4.应用成效
聚焦现有生产场景,在数字内容服务场景中,落地实时数仓的第一个应用,通过对系统接口数据的实时采集和计算,实时监控平台间的交互状态,为运营提前预警。性能提升:监控颗粒度更细致,由10min/次缩短到1min/次。计算速度更快,时延由500ms以上缩短到50ms以内。
支持会员营销、广告投放、商业化应用分发的应用场景。累计发展 500万生活服务会员,拉动2亿信息费收入。服务超过100家广告主,覆盖超过2000万用户曝光,实现超过1亿次应用下载量。
在中国移动的品牌用户运营项目中,对常态化的运营和热点活动运营,如秒杀活动、节假日营销,实现运营一站式实时分析,用户漏斗模型实时监控预警,用户特征自动化分析,实时推荐排序4个实时场景,提高了业务运营智慧化、高效化、自动化的水平,同时为用户提供了更好的用户体验感。结合多维度的用户数据,实时开展数字业务的个性化推荐,A/B test结果:用户订购转化率提升约10倍。
5.结语
随着Flink作为主流的实时计算技术的快速发展,Flink生态的不断演进和迭代,流式数据处理性能不断优化,其稳定性、低时延、可靠性、易用性不断的提升。同时,流批一体化的实时数仓,兼顾了流处理和批处理的双重特点,既满足了传统离线计算的需要,也顺应了快数据处理的发展,达到了一体化数据开发、一体化数据应用的成效,为运营商数字业务的智慧运营提供了强大的数据技术工具。