某智能终端厂商流量商业化项目的云原生大数据平台实践

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 随着流量获取,移动互联网业务成为集团三大战略之一,启动流量商业化项目,包括类似阿里妈妈的流量联盟、帮助广告主更好买量的数字化营销平台以及用户体系等,其中广告检索和广告大数据平台成为支撑整个流量商业化项目的技术基础。

本文作者:仲向远、欧阳楚才


客户从事以手机为核心的智能终端的设计、研发、生产、销售和品牌运营,致力于成为新兴市场消费者喜爱的智能终端产品和移动互联服务提供商。智能终端产品在全球新兴市场有广泛的覆盖和用户基础,通过与国内互联网公司合作推出了众多移动互联网业务,成为全球增长最快的移动媒体渠道。


项目背景

随着流量获取,移动互联网业务成为集团三大战略之一,启动流量商业化项目,包括类似阿里妈妈的流量联盟、帮助广告主更好买量的数字化营销平台以及用户体系等,其中广告检索和广告大数据平台成为支撑整个流量商业化项目的技术基础。


广告检索平台的业务场景包括:

1)将海量广告从广告库中实时同步到检索系统,构建正排索引和倒排索引;

2)承接C端的高并发请求,经过召回层和检索层做多级筛选和排序,从海量广告库中筛选出几百个广告返回给前端,实时性要求高。


广告大数据平台需要聚合各种异构数据源,完成离线和实时数据分析和统计,产出业务报表,生产模型特征等,其中业务报表是是核心业务,它是广告主、平台运营人员进行投放优化、业务决策的依据。


广告检索和广告大数据平台面临的技术挑战主要有:

1、高并发:广告引擎和C端流量对接,请求量大,2022年峰值超过6万QPS。

2、实时性:广告检索结果实时响应(P99 100ms内)、广告索引实时同步和更新(秒级)。

3、业务逻辑复杂:一次广告请求,涉及到多路召回、算法模型打分、竞价排序等复杂的业务流程,策略多,执行链路长。

4、稳定性要求高:广告系统直接跟收入挂钩,广告引擎及计费平台等核心系统稳定性要求很高,可用性至少要做到3个9。

5、大数据存储和计算:随业务发展,推广数量以及扣费订单数量很容易达到千万甚至上亿规模,另外收入报表的分析维度多,单报表可能达到百亿级别的记录数。


技术选型

面临上述快速变化的业务需求和技术挑战,客户摒弃基于开源组件从零开始构建的技术架构方案,期望通过云原生架构,满足整个架构的硬需求和软需求,以便将更多的精力和时间用在业务思考和数据赋能的应用上。


硬需求:检索引擎、离线计算引擎,实时计算引擎,OLAP分析引擎,KV存储,实时数据集成工具,分布式存储系统。

软需求:高并发高可用,实时性强、灵活易扩展、易于运维管理和全链路数仓构建。


通过一个月时间的调研和POC,客户主要从以下4个因素进行考量后,决定选择阿里云云原生大数据平台方案:


  1. 阿里云ElasticSearch提供高性能硬件、广告场景配置模板、优化的内核、负载均衡、多可用区部署等高性能和高可用能力,支持大规模、低时延的广告召回。
  2. 灵活的数据集成和OSS数据湖集成能力:数据主要来自于RDS业务数据、Kafka实时用户行为数据,以及第三方云服务商对象存储中的历史用户行为数据。阿里云DataWorks提供灵活、可视化的数据集成能力,方便从业务数据到广告检索和大数据平台的离线和实时数据同步;阿里云MaxCompute提供湖仓一体能力,可以方便地处理OSS上来自于第三方云服务商的半结构化数据。
  3. 阿里云云原生大数据平台离线实时一体化、分析服务一体化能力可以极大地简化大数据平台的架构。
  4. 在海外region有较完备的产品服务能力。


以下是各个组件的定位:


实现架构

整体架构

技术选型确定之后,开始建设广告检索和大数据平台数据中台,以下为架构图:

广告检索平台架构

广告检索平台使用Elasticsearch+Flink+RDS+Kubernetes构建,架构图如下所示:


架构的各组件说明:


  1. 数据接入

广告数据源为RDS MySQL关系型数据库,通过Flink实时捕获变更数据,并同步到Elasticsearch。Flink CDC 基于数据库日志的 Change Data Caputre 技术,实现了全量和增量的一体化读取能力,并借助 Flink 优秀的管道能力和丰富的上下游生态,支持捕获多种数据库的变更,并将这些变更实时同步到下游存储。


  1. 广告召回

为了支持高并发、低延时、高可用的查询服务,使用Elasticsearch作为召回引擎,多路召回广告信息。Elasticsearch中索引分片数按照单个分片30GB左右规划,将索引主分片设为1,副本数设为节点数-1,通过扩展节点数可以弹性提升查询性能。不需要支持范围查询的数值字段,把integer类型字段改为keyword类型,提升查询速度。在业务低峰期,使用_forcemerge API来对分段执行合并操作,每个分片中最大允许一个分段。为了避免JVM垃圾回收对查询延迟时间的影响,堆内存超过16GB的场景下,使用垃圾回收器G1替代CMS为了避免高并发查询请求导致带宽打满,应用程序本地缓存搜索结果,配置缓存1分钟后过期。系统上线前,通过全链路压测,验证需要的Elasticsearch服务、应用程序Kubernetes容器节点和规格。Elasticsearch数据节点规格16核32G内存、100GB ESSD云盘,总共配置28个数据节点,并配置3个专有主节点。

Elasticsearch查询性能监控


广告大数据平台架构

广告大数据平台使用 MaxCompute+DataWorks+Flink+Hologres构建,架构图如下所示:


架构的各组件说明:

1)数据源:

广告日志:来自App、Web、服务端等端的广告展点消日志;

业务数据库:存储业务数据的关系型数据库,主要是RDS。


2)云Kafka消息中间件

提供广告日志、系统日志、用户行为日志、RDS CDC数据的消息汇聚;提供计费明细数据的消息汇聚。


3)数据接入

通过DataWorks从Kafka中实时消费广告日志数据,并实时写入MaxCompute;业务数据通过DataWork从RDS离线周期性同步到MaxCompute;第三方云服务商大数据系统中的历史数据通过OSS同步工具从S3同步到OSS,MaxCompute通过OSS外表直接访问。


4)离线数据处理

离线数据处理基于MaxCompute搭建,用于计算全量数据,数据源来自于DataWorks的实时和离线导入。离线数据经过离线数仓计算(ODS层->明细层→汇总层),导入Hologres作为存量数据,一部分离线的DWD/DWS数据也导入Hologres作为维表的存量数据。

数仓模型采用分层设计,主要分为ODS层、明细层和汇总层:

ODS层:对应各种源数据,包括MaxCompute中存储的实时导入的广告日志,增量或者全量同步的MySQL业务数据表。

明细层:包含维度表和事实表,通常是对源数据进行清洗后的数据宽表,比如行为日志表、推广宽表、用户宽表等。

汇总层:对数据进行轻粒度的汇总表,比如广告效果表、用户行为的全链路表、用户群分析表等。


5)实时数据处理

实时数据处理基于Flink搭建,用于实时广告日志数据的预处理和ETL,数据源来自于Kafka和RDS CDC,经实时处理后写入实时数仓Hologres和计费Kafka,供对外提供数据服务和下游计费系统的处理。


6)数据服务

由于应用层报表部分面临聚合维度多、单表达百亿级行数、需要支持低延迟的查询等挑战,选择了Hologres作为交互式分析引擎, 聚合维度多, 需要分时、分广告位、分推广等几十个维度; 单表最大达到百亿级别;支持时间范围的实时查询。

另外为了提供统一、安全的数据服务,使用DataWorks数据服务能力,构建统一的数据服务API目录,并提供服务授权和计量管控。


7)数据数据应用

上层应用场景直接使用的数据表,包括多维分析生成各种收入报表、MaxCompute任务产出的算法模型特征和画像数据等。


业务价值

在确定平台方案和架构后,经过短短3个月时间,客户从0到1完成广告大数据平台的建设,并支持广告项目在海外多地的全面推广和落地,在技术和业务方面的带来的价值如下:


  • 为广告业务提供了高QPS、低延迟、高可用的企业级广告召回引擎,支撑业务快速从0到1增长,2022年QPS超过6万。
  • 为运营人员提供了分钟级/秒级的实时看板服务和实时报表,可以及时了解到广告收入和效果;为广告推荐算法提供了秒级的实时用户行为反馈,从而可以让广告召回系统及时根据用户反馈调整召回策略,从而提高广告投放效率。
  • 开发效率大为提高,开发人员从原来的作坊式开发,切换到DataWorks一站式、向导式的开发模式,数据集成零代码,数据开发SQL化,任务调度配置化,运维监控可视化,开发效率提高了2-3倍,学习的梯度也降低了很多。
  • 运维成本和复杂度下降,之前需要维护Hive、Spark、HBase, 、Druid等异构系统,采用阿里云云原生离线实时一体化、分析服务一体化的大数据产品,极大地简化了平台架构,同时全托管服务免运维


未来期望

客户在使用阿里云云原生大数据产品构建了大数据平台后,在后续的使用过程中也提出了更多的要求:


  1. 国际化能力的支持

客户业务范围覆盖多个国家,目前使用DataWorks做任务调度,只能按照固定时区时间进行调度,无法灵活配置按本地时区或某基准时区时间进行调度,导致任务开发不方便,需要较大的代价做时区适配,严重时甚至影响任务产出。


  1. 极致高性能高可用的广告检索引擎

随着业务的发展,客户对广告检索引擎的高性能达到极致的要求(满足峰值近10万QPS P99响应时间20ms内),检索引擎的性能优化之路永无止境;广告检索引擎直接对接客户业务,除了多AZ部署方面等硬能力之外,客户更关注的是故障演练规范、故障切换的最佳实践等这些软能力,这块期望阿里云能够有更多的支持。


了解更多阿里云大数据方案与产品信息 >>


相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
2月前
|
运维 监控 Cloud Native
【云故事探索】NO.17:国诚投顾的云原生 Serverless 实践
国诚投顾携手阿里云,依托Serverless架构实现技术全面升级,构建高弹性、智能化技术底座,提升业务稳定性与运行效率。通过云原生API网关、微服务治理与智能监控,实现流量精细化管理与系统可观测性增强,打造安全、敏捷的智能投顾平台,助力行业数字化变革。
【云故事探索】NO.17:国诚投顾的云原生 Serverless 实践
|
2月前
|
算法 搜索推荐 大数据
大数据搅动娱乐圈:流量造星还是内容为王?
大数据搅动娱乐圈:流量造星还是内容为王?
110 13
|
7天前
|
人工智能 Cloud Native 算法
拔俗云原生 AI 临床大数据平台:赋能医学科研的开发者实践
AI临床大数据科研平台依托阿里云、腾讯云,打通医疗数据孤岛,提供从数据治理到模型落地的全链路支持。通过联邦学习、弹性算力与安全合规技术,实现跨机构协作与高效训练,助力开发者提升科研效率,推动医学AI创新落地。(238字)
|
2月前
|
弹性计算 运维 Cloud Native
【云故事探索】NO.17:国诚投顾的云原生Serverless实践
简介: 通过与阿里云深度合作,国诚投顾完成了从传统 ECS 架构向云原生 Serverless 架构的全面转型。新的技术架构不仅解决了原有系统在稳定性、弹性、运维效率等方面的痛点,还在成本控制、API 治理、可观测性、DevOps 自动化等方面实现了全方位升级。
|
25天前
|
数据采集 自动驾驶 机器人
数据喂得好,机器人才能学得快:大数据对智能机器人训练的真正影响
数据喂得好,机器人才能学得快:大数据对智能机器人训练的真正影响
88 1
|
1月前
|
存储 弹性计算 Cloud Native
云原生数据库的演进与应用实践
随着企业业务扩展,传统数据库难以应对高并发与弹性需求。云原生数据库应运而生,具备计算存储分离、弹性伸缩、高可用等核心特性,广泛应用于电商、金融、物联网等场景。阿里云PolarDB、Lindorm等产品已形成完善生态,助力企业高效处理数据。未来,AI驱动、Serverless与多云兼容将推动其进一步发展。
112 8
|
2月前
|
运维 监控 Cloud Native
【云故事探索】NO.17:国诚投顾的云原生 Serverless 实践
通过与阿里云深度合作,国诚投顾完成了从传统 ECS 架构向云原生 Serverless 架构的全面转型。新的技术架构不仅解决了原有系统在稳定性、弹性、运维效率等方面的痛点,还在成本控制、API 治理、可观测性、DevOps 自动化等方面实现了全方位升级。
|
2月前
|
存储 人工智能 算法
Java 大视界 -- Java 大数据在智能医疗影像数据压缩与传输优化中的技术应用(227)
本文探讨 Java 大数据在智能医疗影像压缩与传输中的关键技术应用,分析其如何解决医疗影像数据存储、传输与压缩三大难题,并结合实际案例展示技术落地效果。
|
2月前
|
机器学习/深度学习 安全 Java
Java 大视界 -- Java 大数据在智能金融反洗钱监测与交易异常分析中的应用(224)
本文探讨 Java 大数据在智能金融反洗钱监测与交易异常分析中的应用,介绍其在数据处理、机器学习建模、实战案例及安全隐私等方面的技术方案与挑战,展现 Java 在金融风控中的强大能力。
|
2月前
|
机器学习/深度学习 算法 Java
Java 大视界 -- Java 大数据在智能物流运输车辆智能调度与路径优化中的技术实现(218)
本文深入探讨了Java大数据技术在智能物流运输中车辆调度与路径优化的应用。通过遗传算法实现车辆资源的智能调度,结合实时路况数据和强化学习算法进行动态路径优化,有效提升了物流效率与客户满意度。以京东物流和顺丰速运的实际案例为支撑,展示了Java大数据在解决行业痛点问题中的强大能力,为物流行业的智能化转型提供了切实可行的技术方案。

热门文章

最新文章

相关产品

  • 云原生大数据计算服务 MaxCompute