欢迎关注公众号——《数据三分钟》

一线大厂的师兄师姐结合自己的工作实践,将数据知识浅显道来,每天三分钟,助你成为数据达人。还有面试指导和内推机会。

​       传统的LAMDA架构取得了辉煌的成就,大大小小的公司几乎都以LAMDA为模版构建了自己的数据仓库,但是LAMDA架构的缺陷也一直被数据人诟病——由于实时链路和离线链路采用不同的计算引擎,在数据研发的过程中,不得不开发、维护两套代码,不仅开发成本高,而且得时刻保持口径的一致,不然就会造成严重的数据质量问题。在传统的LAMDA架构中,实时与离线数据,一般由两班人马开发维护,很难保证数据口径、代码逻辑的严格一致,研发效能受到了很大的挑战。而千呼万唤始出来的流批一体技术,从根本上解决了这个问题,实时离线真正意义上合并统一,用一套代码跑出两套数据,最大程度上提高了开发效率。

0、插一段历史

汉初,开国大将周勃铲除诸吕之乱,准备新立一个皇帝,选了又选,决定让傻白甜刘恒即位,可谁知刘恒却是个聪明人,正是多年来在吕雉面前装傻卖乖才免于一死,平安在代地做诸侯王。周勃在都城外迎接刘恒时,想套个近乎,提醒一下刘恒自己的功劳,于是对刘恒说想借一步说话,却直接被刘恒怼了回去:“所言公,公言之;所言私,王者无私。”刘恒就是后来的汉文帝,开创了中国历史上第一个盛世——文景之治。

1、LAMDA的前世今生

首先介绍一下,为什么会诞生LAMDA架构。在大数据领域,从谷歌的三篇论文:Google FS、MapReduce、BigTable,诞生出了后来的Hadoop,Hadoop是一种批处理框架,简单来说,数据是一批一批处理的。这就会导致一个问题——慢!假设你要分析满300减30的红包对消费者购买成交的拉动效果,结果告诉你数据要一天后才能产出,那么电商决策分析角度来看,显然是不可以接受的。但是批处理也有一个天然的好处——准!因为在批处理的时候,数据都是已经全部ready的,你只需要把数据拉取过来进行shuffle并计算就可以获得最终的结果。所以这里就出现了一个矛盾:你是要准,还是要快?LAMDA架构就是解决这个问题的。

上图展示的就是一个经典的LAMDA架构,它的批处理层的基础上增加了一个流处理层。流处理常用的框架有storm、spark、flink等。流处理层的计算延迟很低,譬如flink可以做到毫秒级的延迟,但是快也会带来问题,那就是不准。譬如你计算满300减30的红包对成交的引导效果,而消费者在上午8点使用了这个红包,你将成交数据计算到了结果里面;后来这个消费者有后悔了发起了退货退款,那么数据就要变动了,过了一会,这个消费者又用满300减30的红包重新支付了一笔订单,这一系列的操作都会最终的结果造成影响。而离线的批计算就不存在这个问题,因为计算的数据源头都是订单的最终状态。因此实时和离线的数据一般会存在一定的GAP,但是可接受范围内的GAP并不影响决策分析,因此LAMDA架构即满足了决策分析对时效性的要求,又满足了数据最终状态的准确性要求。

2、流批一体架构

LAMDA架构由于是采用两套引擎实现,因此不得不维护两套代码,而且数据口径和代码逻辑语义很难保证强一致性。如何使用一套代码,计算出实时离线两套数据成为了流批一体架构的核心目标。

流批一体架构如上图所示,在计算实时数据时,引擎从消息中间件里拉取数据消费计算,同时引擎会用相同的代码周期性调度最终落盘的源头表,计算出最准确的数据(T-1),并用准确的数据覆盖实时数据。

3、流批一体的实现

前文所述中,流批一体之所以能够用一套代码计算出实时离线两套数据,有这样几个必不可少的因素:

一、对等中间层

我们知道实时离线消费的源头是不一样的:实时链路的数据源头一般是消息中间件(譬如KAFKA),而离线链路的源头一般是分布式存储中的表,我们假设实时的源头是KAFKA的topic,名字叫source_table_ri,而离线的源头是HADOOP中的表sorce_table_di,那么为了实现流批一体,source_table_ri和source_table_di就必须拥有对等的特性。这里的对等包括字段名相同,字段类型相同,记录数在误差范围内相同,然后在开发层面,可以将source_table_ri和source_table_di用一个逻辑表source_table进行关系映射,那么计算引擎就可以在计算层根据不同的计算模式拉取相应的数据源头进行计算。

二、支持流批计算的引擎框架

Flink在设计的时候就认为,流是无界数据,批是有界数据,批式数据是流式数据的一种特例。在这样的设计思想驱动下造出来的Flink天然适合做流批一体架构的计算引擎。

三、结果层的统一

这个因素倒不是必备因素,但是却可以给流批一体设计增加更好的简洁美,说白了,不是雪中送炭,而是锦上添花。实时模式下,Flink消费KAFKA中的数据,并写入到有主键更新的结果表中;离线模式下,Flink拉取HADOOP中的表,计算准确结果,并用准确结果去覆盖T-1天实时数据计算的结果。

流批一体技术在天猫双十一中完美landing,收获到诸多好处,不仅解决了LAMDA架构的痛点,也为我们走向新一代的数据架构注入了更多的信心和勇气。

从0到1搭建电商营销数据分析平台(五)——流批一体架构相关推荐

  1. 从0到1搭建电商营销数据分析平台(一)

    欢迎关注公众号--<数据三分钟> 一线大厂的师兄师姐结合自己的工作实践,将数据知识浅显道来,每天三分钟,祝你成为数据达人.还有面试指导和内推机会. 电商领域数据是最重要的能源,数据的力量正 ...

  2. 从0到1搭建电商营销数据分析平台(六)——聊聊反作弊

    欢迎关注公众号--<数据三分钟> 一线大厂的师兄师姐结合自己的工作实践,将数据知识浅显道来,每天三分钟,助你成为数据达人.还有面试指导和内推机会. ​       任何一个平台,无论设计得 ...

  3. 1.5万字讲清楚从0到1搭建电商营销中心(建议收藏)

    <电商产品经理从0到1>系列文章面向从事电商类.交易类产品方向并希望在该方向深耕的产品经理. 本系列文章将详细介绍电商核心系统的产品设计方案,帮助你体系化的认识电商产品. 本文章为< ...

  4. 8000字讲清楚从0到1搭建电商商品中心(建议收藏)

    <电商产品经理从0到1>系列文章面向0~3岁的产品经理或者有多年产品工作经验却刚接触电商领域的产品经理. 本系列文章将详细介绍电商核心系统的产品设计方案,帮助你体系化地认识电商产品. 看完 ...

  5. 电商大数据分析平台项目(一)项目框架

    一.项目简介 这段时间自己从网上找了一个项目课程,学着做了一个电商大数据分析平台,不过较为简陋,知识作学习用. 项目环境:windows10+hadoop2.7.7+hbase2.1.0+flume1 ...

  6. 如何从0到1搭建电商促销系统?

    看到社区有很多电商促销方面的问题,恰好我们也在做这方面的分析和设计,跟大家一起探讨一下. 目录: 1.三种优惠类型 1)代金券   2)满减或满赠   3)活动价 2.发放优惠 3.使用优惠 1)优惠 ...

  7. 如何从0到1搭建电商促销系统

    目录: 1.三种优惠类型 1)代金券   2)满减或满赠   3)活动价 2.发放优惠 3.使用优惠 1)优惠展示   2)选择使用   3)使用规则   4)逆向订单的优惠处理 4.总结及建议 无论 ...

  8. Pushmall共享电商营销推广平台2023年6月升级进度

    Pushmall共享电商2023年四月五月完成开发任务 1.社群接龙团购模块(完成): 2.销售金额返利(完成). 3.首页UI.二级经营类目UI优化完成(完成). 4.平台图片素材管理优化(完成). ...

  9. Hologres+Flink流批一体首次落地4982亿背后的营销分析大屏

    简介: 本篇将重点介绍Hologres在阿里巴巴淘宝营销活动分析场景的最佳实践,揭秘Flink+Hologres流批一体首次落地阿里双11营销分析大屏背后的技术考验. 概要:刚刚结束的2020天猫双1 ...

最新文章

  1. super(Student,self).__init__()初始化的是什么东西?
  2. 1亿以内素数的个数_ghpython_素数
  3. mysql中in查询效率低的替代方法_一波骚操作,我把 SQL 执行效率提高了 10,000,000 倍...
  4. 【MM模块】Vendor Consignment 供应商寄售
  5. 让 WPF 的 RadioButton 支持再次点击取消选中的功能
  6. POJ3675 Telescope 圆和多边形的交
  7. linux内核的I2C子系统详解1——I2C总线概览、驱动框架概览
  8. Java7并发编程指南——第七章:定制并发类
  9. Codeforces 1114F Please, another Queries on Array? 线段树
  10. python如何设置双索引_python – 设置值多索引熊猫
  11. c语言自学去视频,【视频教程】自学去全套c语言视频教程
  12. Vue 3 Composition API - “ref”和“reactive”
  13. 广和通亮相世界宽带论坛2022,构建5G FWA全场景无线宽带体验
  14. 【Python】2019年武汉市天气数据分析与可视化
  15. 高仿今日头条视频列表功能
  16. 那些破事儿.........
  17. 【设计欣赏】新颖包装设计欣赏
  18. 树形结构模型Django-MPTT
  19. 【STM32学习】基于STM32F411CEU6的USB储存设备
  20. 值得珍藏的28本股市投资经典著作

热门文章

  1. uni-app: APP端同时选择图片和视频,长按删除并震动提示
  2. Python 无痛安装Dlib (包含Mac 和 Windows)
  3. 解题思路-LeetCode第713题:乘积小于K的子数组
  4. 垂直战略拿下电影之后,微博还会拿下哪些行业?
  5. 中国井冈山干部学院莅临红谷滩区·高通中国·影创联合创新中心考察调研
  6. 牛客多校第九场 H Cutting Bamboos —— 主席树
  7. 建议用户尽快将XP升级到Windows8
  8. 2022年全国大学生广告创意大赛
  9. python初学者怎么学习_Python初学者怎么入门 Python的学习方法有什么?
  10. MATLAB入门学习-Okumura/Hata 模型