阿里正在将国内成功的商业模式用于东南亚市场进行探索与尝试。上图为东南亚6个主要国家的商业调研数据,Lazada综合电商平台包含Marketplace、LazMall、跨境等多种商业模式,通过自建物流网络与推出LazPay不断升级东南亚电商的基础设施。
大数据在国内经过淘系将近20年的打磨,已经非常成熟。Lazada数据体系与淘系数据体系非常相似,主要分为六个部分。
最左侧为数据源,最右侧为数据应用,中间为数据集成、数据建模与计算、数据聚合与集市以及数据服务。数据集成主要依靠cdp和datahub系统,数据建模分为离线和实时两部分,其中离线模块基于 MaxCompute ,实时模块基于 Flink 平台实现了实时数仓。集市层,2020年后逐渐使用Hologres统一替换了此前比较繁杂的数据结果层与数据计算层中间件。
大促是电商常见且非常重要的场景,我们期望能够通过实时数据和实时技术赋能大促或改变整个业务形态。
大促营销分为三个阶段,分别是促前、促中与促后。促前包括各种准备工作,比如招商、选品、会场页面搭建,是一些比较离线或长周期的动作;促中阶段需要预热蓄,为加购、流量分发以及动态调控做准备,此阶段多为实时决策与实时调控,需要实时数据作为支撑;促后需要进行业务复盘与数据分析、数据PR等。
为了支撑业务侧的实时决策与实时调控,需要对原先的离线数据架构进行改造。因此,我们利用 Flink+ Hologres将数据链路全部进行实时化、体系化升级,利用 Hologres 的OLAP查询能力,能够在大促当天支持业务做实时分析,比如在极短时间内进行快速查询与分析,圈选优惠券发放的目标人群。
大促发放优惠券讲究策略与节奏,比如需要圈选目标人,发完券之后用户是否领取了优惠券、领取之后有否使用等问题都会影响大促节奏的调控。我们需要基于实时数据,业务开发人员结合更多数据资产、用户本身的购买力、消费习惯做目标人群锁定,并在大促期间给出实时反馈。
具体实现如下:从 DataHub 消息中间件消费用户的实时领取与使用数据。同时因为大促周期长,需要将用户历史状态数据也一并进行计算。因此还会将离线 odps 表作为初始化表,在 Flink 任务里进行实时与离线两种不同数据的 source 消费。消费完之后,一方面会将数据写进 DataHub 消息中间件,推送给下游营销系统直接消费与使用;另外会将数据存放到 Hologres,为业务人员提供实时 OLAP 分析的数据指标与数据标签。数据存入Hologres里既能够对用户购买力、消费习惯与偏好类目等基础性数据资产类数据做分析,同时也能与大促中的实时变化交易与权益变化数据做关联查询,快速锁定不同业务需要的目标人群。
通过以上技术链路与方案,能够实现大促场景中动态调整运营策略与运营动作业务过程。
该方案中,使用Flink计算引擎同时消费实时与离线两种不同数据源,实现了流批体实时计算;能够将用户历史累计权益数据结合实时变化权益数据进行实时计算,得到用户全状态的权益领用及实时数据。
此外,架构里还实现了实时与离线混合 OLAP 分析,在 Hologres 计算引擎里存有离线数据,供一些较为复杂的离线方式计算,计算后同步到 Hologres,再将线上实时变化的状态类数据也同时写入Hologres。因此,Hologres里会有全量状态与非常大范围用户的整体数据,除了能够观测到当前状态,也能够对历史行为与表现进行综合性的分析。
通过该方案,营销活动系统从原先的离线化状态成功过渡到可调控、可决策、可落地的实时系统。
Lazada LAB实验平台累计了万级的实验数量,实验数量排名处于 top 5 水平,支持百级子业务阈,千级月实验人数。
LAB架构分为三个层次,从下至上分别是数据模块、系统模块和应用模块。
数据模块层利用的数据存储引擎已经全部切换为Hologres 。实验里通用的数据和业务指标会进行提前预计算,能够减轻Hologres 的计算压力。另外,会将明细层数据与轻度汇总层数据通过实时计算方式写到Hologres里,以支撑在AB 实验场景里自定义与灵活快速分析所需的能力。最后,将各种实验维度数据同步到 Hologres 进行自定义分析与查询使用。
上图为LAB平台实验的数据流加工过程。
数据源是常见的Binlog 数据,包括日志采集、搜推广日志数据等。离线数仓也会进行数据加工,然后写到离 Hologres。另外会通过Flink实时计算与操作,将实时的明细层与汇总层数据同步到 Hologres 。
因此 Hologres 里建立了一套完整的实时数仓,有实时的 DWD明细层, ADS 层存有很多计算好的离线数据,还有DWS数据以及维度数据。其上还建设了大量逻辑视图与部分物化视图,因为实验场景中,查询条件或查询模式对于表的使用非常固定,可能需要通过逻辑视图与物化视图将经常使用的查询方式与指标固化,增加前端的实验性能。
以上架构利用 Hologres 强大的查询与数据写入导出能力,提升了整个 LAB平台的实验速率与效率。
关于Hologres的使用,存储方面,分布式数据的使用首先必须确保数据合理均匀地分布存储,另外,数据使用行存还是列存,需要依赖于业务场景和使用诉求。分区表选择时,一定要有分布键。TableGroup 与Shard分配时,需要做校验操作,有维表校验,也有事实表之间的校验。因此需要结合维表数据量与业务场景不断实践与摸索。
计算方面,Hologres提供了主键的设计替代、近似计算、聚簇索引、时间分段索引、优化字典编码等存储引擎。
阿里利用 MaxCompute支撑与实现了离线数仓的基础体系建设。Flink 问世后,阿里数据体系从原先的离线系统彻底转化为实时数仓体系。随着 Hologres等云原生OLAP数据引擎的诞生,我们已经可以窥到湖仓一体可能的实现和使用方式,并以此支撑异构多元智能计算。
我们期望能够利用 Hologres服务与分析一体化的能力,结合 AI 处理,在一个平台、一个组件上快速完成数据加工,将业务价值通过技术平台高效释放。
牛顿说,站在巨人肩膀上能让我们看得更远。而我们也坚信,有阿里云这样一个巨人,我们能够将数据业务价值发挥得更加透彻、更加淋漓尽致。