钱大妈数据中台建设最佳实践

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
简介: 钱大妈数据中台建设最佳实践

公司简介

钱大妈是在社区生鲜连锁中,以"不卖隔夜肉"作为品牌理念的的行业开拓者。在成立之初即从新鲜角度重新梳理传统生鲜行业的标准,对肉菜市场进行新的定义。通过尝试和验证"日清"模式,以及"定时打折"清货机制,坚定落实不隔夜销售。


截至2021年5月,钱大妈已全国布局近30座城市,门店总数突破3000家+,服务家庭超1000万+,经营蔬菜、水产、水果、猪肉类、肉类(非猪肉)、蛋奶、加工食品、综合标品八大生鲜品类,逾500种优质产品。 而"不卖隔夜肉"的理念,回归最朴素的目的:让消费者能买到新鲜的食物。践行这一理念,除了依赖强大的供应链系统,更离不开科学技术和数字化建设的支持。


项目背景

钱大妈全渠道数据中台主要承载交易侧数据,贴近业务一线为业务赋能。现数据中台已为3000家+门店提供在线数据服务,支撑各部门运营、业务人员在智慧中台进行数据分析、挖掘数据背后的业务价值,并作为钱大妈首个支持实时计算、首个完成数据埋点的团队,从数据驱动业务理念为出发点,为钱大妈业务发展保驾护航。

而项目初期,在极端情况下只有一个产品、一个技术的人员配置情况下,一个月内背靠背完成项目初期的基础建设,包括但不限于:数仓规划、技术架构、维度建模、数据指标、数据开发等一系列工作,那么我们团队是如何在有限的人力资源下进行破局的呢?下面请听我娓娓道来。


数据中台建设

架构和中间件的选型,影响数据中台建设过程中后续的开发流程和运维复杂度,而目前开源的大数据组件可谓是遍地开花,每个组件都各有特色,但是它们在大数据的体系化方面又各有各的玩法。


琳琅满目的大数据组件组合方案:


钱大妈1.png


本着以业务为导向的原则,我们希望整个架构易于运维管理,功能性尽可能统一,以便将更多的精力和时间用在业务思考和数据赋能的应用上。


  • 我们的硬需求:离线计算引擎,实时计算引擎,OLAP数据库,KV数据库,数据集成组件,分布式存储系统
  • 我们的软需求:计算资源可弹性调整、易于运维且组件链路尽可能短、批流统一


在项目前期投入人力有限,业务急需在短期内上线的背景下,综合考虑成本和系统架构的兼容性和扩展性,我们团队认为基于云原生的全托管大数据解决方案:DataWorks+Maxcompute+Hologres+Flink比较适合我们。


以下是各个组件的定位:

  • DataWorks:数据的集成、开发、运维、服务等的一站式管理平台
  • Maxcompute:离线分布式计算引擎
  • Hologres:查询性能快、支持在线OLAP、KV点查、实时读写
  • Flink:高性能实时计算系统


钱大妈数据中台架构 V1.0

产品选型确定好之后,开始建设数据中台V1.0,主要应用在业务接口加速查询场景。以下为数据中台V1.0架构图:

钱大妈01.png


当确定了架构和中间件后,从云组件开通到VPC网连通一天内就可以完成,让项目组可以快速地投入项目初期的业务数据集成接入和数据分域建模工作。这两项大工程,我们都可以在Dataworks的对应模块上完成。


在数据接入过程中,我们不需要部署诸如Kafka+Canal组件来完成业务数据库的Binlog订阅和部署AirFlow等组件来负责任务调度管理,通过DataWorks的数据集成模块,即可将业务数据"一键"实时和离线同步到Maxcompute和Hologres。


在DataWorks的数据建模功能上,我们通过建模语言:基于Kimball维度建模范式下梳理业务板块、业务过程,并进行数据分域、维表事实表定义等数据建模操作,并用FML(Fast Modeling Language)建模语言将逻辑模型落实到物理模型。


在业务接口查询加速场景上,我们通过将MaxCompute的数据离线调度至Hologres内表以获得更快的查询体验,由于两者底层数据无缝连接,所以同步速度也是比较快的,10万级别的数据只需1秒即可完成(100,000/s)。


选择Hologres作为在线业务支持的重要一环,是因为:

  1. 安全:接入RAM鉴权,权限管理方便和安全。
  2. 索引丰富:根据不同的查询场景,选择不同的存储模式(行存或列存),提供专属的索引支持。
  3. 少数据冗余:在一个系统内满足 KV 和 OLAP 两个场景,减少跨系统带来的数据冗余。


钱大妈数据中台架构 V2.0

在数据中台V2.0建设上,我们的架构分阶段先后实现了纯离线、离线-实时的Lambda架构迭代。如下图所示:

  1. 同步:利用DataWorks的数据集成功能,实时订阅同一份Binlog日志,双写到Hologres和MaxCompute两个系统。
  2. 离线链路:对于时效性不敏感且计算复杂的场景:如用户画像、人货场标签体系、促销效果复盘等,依然通过MaxCompute进行离线ETL计算生成,最后汇集到Hologres做查询加速。
  3. 实时链路:对于实时性要求高的场景:如实时看板、风控感知、规则报警等场景,通过Hologres+Flink组合实现。

钱大妈02.png


值得留意的是,在数据中台V2.0版本,我们只是新增了一个实时计算引擎(Flink),就扩展出了一条新的实时链路:Hologres(source)-> Flink -> Hologres(Sink)。这得益于这两个组件的原生适配:


  1. Flink实时计算引擎原生支持Hologres的Connector,兼容性好,读写方便
  2. Hologres支持主键(Primary Key,PK),能保证Flink端对端场景中的精确一致性(Exactly Once)
  3. Hologres采用LSM架构,支持实时更新 ,细粒度更新


Lambda架构下经常面临的一个问题点就是实时和离线的计算结果如何联邦计算,Hologres的内表和外表结合的特性从设计层面就为我们解决了这个问题:实时计算的结果存储在内表,离线计算的结果存储在MaxCompute上,通过外表进行访问,由于Hologres在底层和MaxCompute数据无逢连接,方便联通离线和实时数据。


在数据中台V1.0纯离线的架构版本,我们更多的是通过离线ETL加工,将ADS层的结果集推到Hologres作为查询的加速。但随着业务的发展,更要求我们具备实时性的DWD宽表层和准实时、甚至是实时的、主题性DWS层的数据。因此在技术上,我们基于Hologres内外表特性实现的实时打宽、冷热链路和数据回刷机制:


  1. DWD层,实时打宽+冷热链路

如订单业务场景,业务端需要要实时获取近30天的订单变更情况,因此近30天的热数据我们用Flink实时写入Hologres内表,因为内表的优势是查询快,缺点是存储成本略高(内表存储在SSD,硬件成本高)。对于超30天的数据,通过归档或直接访问的形式访问存储在MaxCompute上的数据,做到冷热数据的分层,降低低频访问数据的存储成本。另外,利用Hologres支持PK的特性,通过"Insert on Conflict"的语义定期对实时写入的数据进行滚动补漏、数据回刷等数据兜底机制,确保数据层具备"自修复"能力,防止某些故障情况下实时写入带来的数据不一致情况。


  1. DWS层,微批调度/逻辑视图+联邦查询

如BI场景,业务可以接受5-10分钟左右的延迟,我们通过结合微批调度和逻辑视图计算DWS层,用于支持BI数据接口和业务的即席查询。 依然是通过内外表的形式,实现数据的冷热分层。冷数据则视业务和数据量情况,决定是存储于MaxCompute通过外表访问,还是同步进Hologres内表加速查询速度。最后通过在Hologres进行查询时的合并,达到联邦查询的效果。


钱大妈4.png


风控场景应用

数据中台架构V2.0目前已在钱大妈多个业务场景落地,如数据服务、数据报表、实时风控系统等,下面将介绍如何具体应用到风控场景。


实时风控系统需要结合业务记录和埋点日志在线甄别异地支付、大笔异常订单、消费终端变更等风险事件,实时触发风险应对动作,为风控专员提供及时的数据支撑和更快速的反应能力。

钱大妈5.png


从上图可以看到,实时风控数据流的整过生命周期都会经过Hologres:数据源Binlog、实时维表点查、OLAP分析:风控全链路都由Binlog进行事件式驱动,且Hologres在开启Binlog模式下,底层提供Binlog信息查询,方便定位消费位点和复盘消费情况。在维表点查场景则可以使LRU,微批写入等优化手段进行Lookup Join性能优化。最终将结果信息实时写回Hologres提供在线分析和即席查询应用,也可以实时推到其它业务关联触达系统,进行业务端拦截、系统报警等一系列风险应对动作,以此完成整个风控场景的闭环。


业务价值

钱大妈全渠道数据中台基于阿里云大数据方案进行敏捷式的业务落地,支撑内外部多个应用场景,给业务带来的价值主要如下:

  1. 资源成本降低:零硬件资源成本,各环节支持资源弹性升缩,灵活应对各种数据高峰场景
  2. 运维成本降低:全托管式运维,减轻运维成本,让更多精力集中在业务逻辑开发
  3. 架构简单:将OLTP、OLAP 和KV三个场景集成于一个系统(Hologres),缩短中间件链路
  4. 架构生态兼容度高:Hologres与离线计算引擎(MaxCompute)、实时计算引擎(Flink)、DataWorks兼容程度高,融于云原生生态,易开发适配


期望

Hologres作为云原生体系下的一款HSAP(分析服务一体化)产品,从定位和理念上都与钱大妈全渠道数据中台的架构理念一致,希望在不久的将来能在产品侧能够支持如下特性:


  1. 资源隔离。Hologres现在资源隔离是通过不同的实例进行隔离的,希望通过例如租户的形式实现自定义的资源隔离。
  2. 分时弹性。根据业务的不同峰值时段弹性调整资源,以节省用户成本。
  3. 物化视图。截至Hologres 0.10版本,尚未支持物化视图。有了物化视图,可以一定程度上减少微批调度的场景。
  4. 内表冷热分层。现在Hologres是将冷数据存储于MaxCompute上,但是查询速度还是和内表相比存在一定的差距,希望在内表上能就实现冷热数据的分层。


作者:彭明德,目前就职于钱大妈,任全渠道数据中台大数据开发工程师

相关实践学习
阿里云百炼xAnalyticDB PostgreSQL构建AIGC应用
通过该实验体验在阿里云百炼中构建企业专属知识库构建及应用全流程。同时体验使用ADB-PG向量检索引擎提供专属安全存储,保障企业数据隐私安全。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
2月前
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了一种结合知识图谱与大型语言模型(LLM)的GraphRAG系统,利用PolarDB、通义千问及LangChain实现。知识图谱通过结构化信息、语义理解和推理等功能,增强了信息检索与自然语言处理效果。PolarDB具备图引擎与向量检索能力,适配知识图谱存储与查询。通义千问处理自然语言,LangChain则整合模型与应用。实战步骤包括环境准备、数据库配置与数据导入,并通过实例展示了图谱与向量联合检索的优越性,提升了问答系统的准确性和实用性。
|
存储 缓存 监控
电商 SaaS 全渠道实时数据中台最佳实践
聚水潭数据专家张成玉,聚水潭高级数据工程师应圣楚,在 FFA 2022 行业案例专场的分享。
电商 SaaS 全渠道实时数据中台最佳实践
|
分布式计算 MaxCompute
《图书行业基于MaxCompute构建数据中台的最佳实践》电子版地址
图书行业基于MaxCompute构建数据中台的最佳实践
146 0
《图书行业基于MaxCompute构建数据中台的最佳实践》电子版地址
|
数据采集 机器学习/深度学习 运维
《数据中台架构:企业数据化最佳实践》:感受数据中台建设五步法
《数据中台架构:企业数据化最佳实践》:感受数据中台建设五步法
1249 0
《数据中台架构:企业数据化最佳实践》:感受数据中台建设五步法
|
数据可视化 大数据 数据挖掘
为什么说阿里巴巴本身是云上数据中台的最佳实践
数据中台门在阿里巴巴集团干什么的,由哪个部门掌管?数据中台在阿里巴巴的主要作用是什么呢?外面吹嘘这么神秘的数据中台在阿里实践的如何呢?今天小编正好要采访数据技术及产品部门里面一个老大,带大家来一探究竟。
3532 0
为什么说阿里巴巴本身是云上数据中台的最佳实践
|
运维 前端开发 小程序
​阿里云数据中台联合蚂蚁生态 打造金融行业数智化最佳实践
阿里云数据中台将联合支付宝生态,帮助金融机构做好用户运营。
1586 0
​阿里云数据中台联合蚂蚁生态 打造金融行业数智化最佳实践
|
分布式计算 Hadoop 关系型数据库
ADB日志分析最佳实践
## 背景 利用服务器日志做分析是很多公司进入大数据分析的第一步,也是很关键的一步。大部分情况下,这些公司在考虑进行大数据分析的时候,都会遇到以下问题: * 团队里面缺乏了解大数据技术栈的工程师 * 都听过Hadoop,想要学习Hadoop,但是不知道从何入手 * 从市面上寻找大数据人才效果不理想 * 不愿意一下子投入过多的资金去组建一个专门的大数据团队 虽然Hadoop没
1873 0
|
7月前
|
Shell Android开发
Android系统 adb shell push/pull 禁止特定文件
Android系统 adb shell push/pull 禁止特定文件
597 1
|
7月前
|
Android开发 Python
Python封装ADB获取Android设备wifi地址的方法
Python封装ADB获取Android设备wifi地址的方法
165 0
|
4月前
|
Shell Linux 开发工具
"开发者的救星:揭秘如何用adb神器征服Android设备,开启高效调试之旅!"
【8月更文挑战第20天】Android Debug Bridge (adb) 是 Android 开发者必备工具,用于实现计算机与 Android 设备间通讯,执行调试及命令操作。adb 提供了丰富的命令行接口,覆盖从基础设备管理到复杂系统操作的需求。本文详细介绍 adb 的安装配置流程,并列举实用命令示例,包括设备连接管理、应用安装调试、文件系统访问等基础功能,以及端口转发、日志查看等高级技巧。此外,还提供了常见问题的故障排除指南,帮助开发者快速解决问题。掌握 adb 将极大提升 Android 开发效率,助力项目顺利推进。
114 0

热门文章

最新文章