Flink+Hologres实时数仓在Lazada的建设及应用

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
简介: 本文介绍Flink+Hologres实时数仓在Lazada的建设及应用。

Lazada是阿里旗下的综合电商平台,包含Marketplace、LazMall、跨境等多种商业模式,通过自建物流网络与推出LazPay不断升级东南亚电商的基础设施。

la1.png

1. Lazada数据体系和架构

阿里巴巴淘系有关大数据领域的建设已经有将近20年的打磨,目前是非常成熟的体系了。当前Lazada数据体系与淘系数据体系非常相似,主要分为六个部分:数据源、数据集成、数据建模与计算、数据聚合与集市、数据服务、数据应用。

数据集成主要依靠cdp和datahub系统,数据建模分为离线和实时两部分,其中离线模块基于 MaxCompute ,实时模块基于 Flink 平台实现了实时数仓。在数据聚合层,2020年后逐渐使用Hologres统一替换了此前比较繁杂的数据结果层与数据计算层中间件,通过Hologres提供OLAP查询分析、数据服务和ADS即席查询作用,最后统一对接上层应用。

la2.png

下面将会分享如何基于上诉的数据体系架构支3撑Lazada如大促营销、A/B Test等多个应用场景。


1.1 场景一:融合实时计算的大促营销运营手段升级

大促是电商常见且非常重要的场景,我们期望能够通过实时数据和实时技术赋能大促或改变整个业务形态。

1.1.1 大促营销的三个阶段

分别是促前、促中与促后:

  • 促前包括各种准备工作,比如招商、选品、会场页面搭建,是一些比较离线或长周期的动作;
  • 促中阶段需要预热蓄,为加购、流量分发以及动态调控做准备,此阶段多为实时决策与实时调控,需要实时数据作为支撑;
  • 促后需要进行业务复盘与数据分析、数据PR等。


为了支撑业务侧的实时决策与实时调控,需要对原先的离线数据架构进行改造。因此,我们利用 Flink+ Hologres将数据链路全部进行实时化、体系化升级,利用 Hologres 的OLAP 查询能力,能够在大促当天支持业务做实时分析,业务可以根据业务诉求,比如目标人群覆盖不够,GMV达成不足时,就能在极短时间内进行快速查询与分析,然后做下一步的运营策略,如圈选优惠券发放的目标人群,同时也能实时检测流量、权益等数据,方便运营动态调整策略。

la3.png


以Lazada大促场景下用户实时权限动态调控为例,来介绍具体的数据流转链路和数据加工过程。

la4.png

大促发放用户优惠券需要讲究策略与节奏以及圈选的目标人群,需要考虑给哪些人发券、发完券之后用户是否领取了优惠券、领取之后有否使用等问题都会影响大促节奏的调控。于是在发券之前,我们需要了解,现在用户是否有券、券的额度是多少等实时数据信息。基于这些实时数据,业务开发人员结合更多的数据资产、用户本身的购买力、消费习惯等信息形成目标人群锁定,并在大促期间给出实时反馈。


1.1.2 在后端的具体实现

  • 从 DataHub 消息中间件消费用户的实时领取与使用券等数据。同时因为大促周期长,需要将用户历史状态数据也一并进行计算,因此还会将离线 MaxCompute 表作为初始化表,在一个Flink 任务里进行实时与离线两种不同数据的 source 消费。
  • 数据消费完之后,一方面会将数据写进 DataHub 消息中间件,推送给下游营销系统直接消费与使用;另外会将数据存放到 Hologres,为业务人员提供实时 OLAP 分析的数据指标与数据标签。
  • 因为实时计算的仅是用户使用券的金额数据,数据不全面,因为还会将离线MaxCompute用户资产数据同步至Hologres,这样就可以通过Hologres既能够对用户购买力、消费习惯与偏好类目等基础性数据资产类数据做分析,同时也能与大促中的实时变化交易与权益变化数据做关联查询,快速锁定不同业务需要的目标人群。


1.1.3 方案优势

  • 流批一体:使用Flink计算引擎同时消费实时与离线两种不同数据源,实现了流批体实时计算;能够将用户历史累计权益数据结合实时变化权益数据进行实时计算,得到用户全状态的权益领用及实时数据
  • 实时与离线混合 OLAP 分析:在 Hologres 计算引擎里存有离线数据,比如存储一些已经计算好的离线标签数据,同时线上实时变化的状态类数据也同时写入Hologres。因此,Hologres里会有全量状态与非常大范围用户的整体数据,除了能够观测到当前状态,也能够对历史行为与表现进行综合性的分析。

通过该方案,营销活动系统从原先的离线化状态成功过渡到可调控、可决策、可落地的实时系统。实现业务在大促场景中动态调整运营策略与运营动作,助力业务的精细化运营。


1.2 场景二:Hologres在Lazada LAB平台的使用

Lazada LAB实验平台累计了万级的实验数量,实验数量排名处于 top 5 水平,支持百级子业务阈,千级月实验人数。为产品、运营、业务决策者等提供多方位的数据驱动实验方案和商业决策。

la5.png


1.2.1 LAB平台的架构的三个层次

从下至上分别是数据模块、系统模块和应用模块:

  • 数据模块:主要存储各类实验指标,包括流量指标、行为指标、用户指标、商家指标等各类数据
  • 系统模块:系统模块主要包括查询引擎、指标管理、维度管理、异常告警等功能
  • 应用模块:主要是数据对上层的应用,包括实验Dashboard、指标分析、OLAP分析,实验监控等


在数据模块层利用的数据存储引擎已经全部切换为Hologres 。实验里通用的数据指标会进行提前预计算再写入Hologres,以减轻Hologres 的计算压力。另外,会将明细层数据与轻度汇总层数据通过实时计算方式写到 Hologres里,以支撑在A/B实验场景里自定义与灵活快速分析所需的能力。最后,将各种实验维度数据同步到 Hologres 进行自定义分析与查询使用。

下图为LAB平台实验的数据流加工过程:

la6.png

数据源是常见的业务Binlog 数据,以及日志采集、搜推广日志数据等,然后同步到分别同步到离线数仓和实时数仓:

  • 离线数仓会进行数据加工,然后写到Hologres。
  • 实时数仓会通过Flink实时计算与操作,将实时的明细层与汇总层数据同步到 Hologres 。
  • 在Hologres 建立了一套完整的实时数仓,有实时的 DWD 明细层, ADS/DWS层存放计算好的离线数据,以及DIM维度数据。其上还建设了大量逻辑视图与部分物化视图,因为实验场景中,查询条件或查询模式对于表的使用非常固定,可能需要通过逻辑视图与物化视图将经常使用的查询方式与指标固化,增加前端的实验性能。

以上架构利用 Hologres 强大的查询与数据写入导出能力,提升了整个 LAB平台的实验速率与效率。

la7.png

同时也为了提高AB实现的计算效率,我们也针对Hologres做了较多的性能优化,下面也分享一些实践经验。

1.2.2 在优化方面主要两大方向

1.2.2.1 存储优化:确保数据合理均匀的分布

  • 合理的设置表存储属性:KV点查使用行存,OLAP查询使用列存
  • 合理的设置分区表:数据大于1亿条建议设置分区表,同时分区表选择时,一定要有分布键。
  • 合理的设置distribution key:join key设置为distribution key,提升local join的能力
  • Table Group选择与Shard分配:一般选择默认的TG,但是实例规格较大时,设置多个TG与不同的shard count,以保证资源的充分利用。同时也要结合维表数据量与业务场景不断实践与摸索。

1.2.2.2 计算优化:降低计算复杂度,提高查询性能

  • 设置主键:保持数据的唯一性
  • 用近似计算APPROX_COUNT_DISTINCT替代count distinct去重函数,效率会更高。另外Hologres 1.3版本支持uniq精确去重,效率也更高
  • 设置聚簇索引:对于范围过滤查询,设置聚簇索引clustering key,减少文件扫描
  • 设置分段键:对于时间范围查询,设置分段键segment key,直接命中文件,提升查询性能
  • 设置位图索引:对于等值查询,设置位图bitmap,命中文件内的block
  • 优化字典编码:为字符串比较的字段设置dictionary,减少其余不必要text字段的dictionary设置,从而减少数据编码、解码开销。

la8.png

2. 总结

lazada数据技术发展经历了从以MaxCompute为主的离线数仓(主要支撑T+1更新、批量计算等)实现了离线数仓的基础体系建设),到Flink 问世后的实时数仓,支撑了实时更新,流批一体等多个业务场景。随着 Hologres云原生引擎的诞生,我们已经可以窥到湖仓一体可能的实现和使用方式,并以此支撑异构多元智能计算,

未来我们期望能够利用 Hologres服务与分析一体化的能力,并结合 AI 处理,在一个平台、一个组件上快速完成数据加工,将业务价值通过技术平台高效释放。

牛顿说,站在巨人肩膀上能让我们看得更远。而我们也坚信,有阿里云这样一个巨人,我们能够将数据业务价值发挥得更加透彻、更加淋漓尽致。

la9.png


了解Hologres

合集.png

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
2月前
|
分布式计算 数据处理 Apache
Spark和Flink的区别是什么?如何选择?都应用在哪些行业?
【10月更文挑战第10天】Spark和Flink的区别是什么?如何选择?都应用在哪些行业?
276 1
|
28天前
|
SQL 运维 网络安全
【实践】基于Hologres+Flink搭建GitHub实时数据查询
本文介绍了如何利用Flink和Hologres构建GitHub公开事件数据的实时数仓,并对接BI工具实现数据实时分析。流程包括创建VPC、Hologres、OSS、Flink实例,配置Hologres内部表,通过Flink实时写入数据至Hologres,查询实时数据,以及清理资源等步骤。
|
1月前
|
SQL 流计算 关系型数据库
基于OpenLake的Flink+Paimon+EMR StarRocks流式湖仓分析
阿里云OpenLake解决方案建立在开放可控的OpenLake湖仓之上,提供大数据搜索与AI一体化服务。通过元数据管理平台DLF管理结构化、半结构化和非结构化数据,提供湖仓数据表和文件的安全访问及IO加速,并支持大数据、搜索和AI多引擎对接。本文为您介绍以Flink作为Openlake方案的核心计算引擎,通过流式数据湖仓Paimon(使用DLF 2.0存储)和EMR StarRocks搭建流式湖仓。
350 4
基于OpenLake的Flink+Paimon+EMR StarRocks流式湖仓分析
|
28天前
|
运维 数据挖掘 网络安全
场景实践 | 基于Flink+Hologres搭建GitHub实时数据分析
基于Flink和Hologres构建的实时数仓方案在数据开发运维体验、成本与收益等方面均表现出色。同时,该产品还具有与其他产品联动组合的可能性,能够为企业提供更全面、更智能的数据处理和分析解决方案。
|
2月前
|
存储 数据采集 大数据
Flink实时湖仓,为汽车行业数字化加速!
本文由阿里云计算平台产品专家李鲁兵(云觉)分享,聚焦汽车行业大数据应用。内容涵盖市场趋势、典型大数据架构、产品市场地位及能力解读,以及典型客户案例。文章详细介绍了新能源汽车市场的快速增长、大数据架构分析、实时湖仓方案的优势,以及Flink和Paimon在车联网中的应用案例。
192 8
Flink实时湖仓,为汽车行业数字化加速!
|
1月前
|
分布式计算 大数据 OLAP
AnalyticDB与大数据生态集成:Spark & Flink
【10月更文挑战第25天】在大数据时代,实时数据处理和分析变得越来越重要。AnalyticDB(ADB)是阿里云推出的一款完全托管的实时数据仓库服务,支持PB级数据的实时分析。为了充分发挥AnalyticDB的潜力,将其与大数据处理工具如Apache Spark和Apache Flink集成是非常必要的。本文将从我个人的角度出发,分享如何将AnalyticDB与Spark和Flink集成,构建端到端的大数据处理流水线,实现数据的实时分析和处理。
66 1
|
3月前
|
存储 数据采集 OLAP
饿了么基于Flink+Paimon+StarRocks的实时湖仓探索
饿了么的实时数仓经历了多个阶段的演进。初期通过实时ETL、报表应用、联动及监控构建基础架构,随后形成了涵盖数据采集、加工和服务的整体数据架构。1.0版本通过日志和Binlog采集数据,但在研发效率和数据一致性方面存在问题。2.0版本通过Dataphin构建流批一体化系统,提升了数据一致性和研发效率,但仍面临新业务适应性等问题。最终,饿了么选择Paimon和StarRocks作为实时湖仓方案,显著降低了存储成本并提高了系统稳定性。未来,将进一步优化带宽瓶颈、小文件问题及权限控制,实现更多场景的应用。
432 7
饿了么基于Flink+Paimon+StarRocks的实时湖仓探索
|
2月前
|
SQL 分布式计算 数据挖掘
加速数据分析:阿里云Hologres在实时数仓中的应用实践
【10月更文挑战第9天】随着大数据技术的发展,企业对于数据处理和分析的需求日益增长。特别是在面对海量数据时,如何快速、准确地进行数据查询和分析成为了关键问题。阿里云Hologres作为一个高性能的实时交互式分析服务,为解决这些问题提供了强大的支持。本文将深入探讨Hologres的特点及其在实时数仓中的应用,并通过具体的代码示例来展示其实际应用。
241 0
|
3月前
|
存储 监控 算法
Hologres 在 BI 场景中的应用
【9月更文第1天】随着企业对实时数据分析的需求不断增加,传统的批处理方式已经无法满足现代业务决策的速度要求。Hologres,作为一款专为在线分析处理(OLAP)设计的实时数仓解决方案,提供了高性能的查询能力,能够支持大规模数据集的实时分析需求。本文将探讨 Hologres 在商业智能(BI)场景中的应用,包括如何集成 BI 工具以提供实时数据洞察,并加速决策过程。
77 3
|
3月前
|
消息中间件 SQL 大数据
Hologres 在大数据实时处理中的应用
【9月更文第1天】随着大数据技术的发展,实时数据处理成为企业获取竞争优势的关键。传统的批处理框架虽然在处理大量历史数据时表现出色,但在应对实时数据流时却显得力不从心。阿里云的 Hologres 是一款全托管、实时的交互式分析服务,它不仅支持 SQL 查询,还能够与 Kafka、MaxCompute 等多种数据源无缝对接,非常适合于实时数据处理和分析。
129 2

相关产品

  • 实时数仓 Hologres