数仓搭建流程有哪些(数仓建设的3大难点解析),小编带你了解更多信息 。
实时数仓以端到端低延迟、SQL标准化、快速响应变化、数据统一为目标 。美团外卖数据智能组总结的最佳实践是:一个通用的实时生产平台跟一个通用交互式实时分析引擎相互配合,同时满足实时和准实时业务场景 。两者合理分工,互相补充,形成易开发、易维护且效率高的流水线,兼顾开发效率与生产成本,以较好的投入产出比满足业务的多样性需求 。01 实时场景
文章插图
实时数据在美团外卖的场景是非常多的,主要有以下几个方面:
- 运营层面:比如实时业务变化,实时营销效果,当日营业情况以及当日分时业务趋势分析等 。
- 生产层面:比如实时系统是否可靠,系统是否稳定,实时监控系统的健康状况等 。
- C端用户:比如搜索推荐排序,需要实时行为、特点等特征变量的生产,给用户推荐更加合理的内容 。
- 风控侧:实时风险识别、反欺诈、异常交易等,都是大量应用实时数据的场景 。
美团外卖依托于美团整体的基础数据体系建设,从技术成熟度来讲,公司前几年主要用的是Storm 。当时的Storm,在性能稳定性、可靠性以及扩展性上也是无可替代的 。但随着Flink越来越成熟,从技术性能上以及框架设计优势上已经超越了Storm,从趋势来讲就像Spark替代MR一样,Storm也会慢慢被Flink替代 。当然,从Storm迁移到Flink会有一个过程,我们目前有一些老的任务仍然运行在Storm上,也在不断推进任务迁移 。
文章插图
具体Storm和Flink的对比可以参考上图表格 。
2. 实时架构① Lambda架构
Lambda是比较经典的一款架构,以前实时的场景不是很多,以离线为主,当附加了实时场景后,由于离线和实时的时效性不同,导致技术生态是不一样的 。而Lambda架构相当于附加了一条实时生产链路,在应用层面进行一个整合,双路生产,各自独立 。在业务应用中,顺理成章成为了一种被采用的方式 。
双路生产会存在一些问题,比如加工逻辑Double,开发运维也会Double,资源同样会变成两个资源链路 。因为存在以上问题,所以又演进了一个Kappa架构 。
② Kappa架构
文章插图
Kappa从架构设计来讲,比较简单,生产统一,一套逻辑同时生产离线和实时 。但是在实际应用场景有比较大的局限性,在业内直接用Kappa架构生产落地的案例不多见,且场景比较单一 。这些问题在美团外卖这边同样会遇到,我们也会有自己的一些思考,将会在后面的章节进行阐述 。
03 业务痛点首先,在外卖业务上,我们遇到了一些问题和挑战 。在业务早期,为了满足业务需要,一般是Case By Case地先把需求完成 。业务对于实时性要求是比较高的,从时效性的维度来说,没有进行中间层沉淀的机会 。在这种场景下,一般是拿到业务逻辑直接嵌入,这是能想到的简单有效的方法,在业务发展初期这种开发模式也比较常见 。
如上图所示,拿到数据源后,我们会经过数据清洗、扩维,通过Storm或Flink进行业务逻辑处理,最后直接进行业务输出 。把这个环节拆开来看,数据源端会重复引用相同的数据源,后面进行清洗、过滤、扩维等操作,都要重复做一遍 。唯一不同的是业务的代码逻辑是不一样的,如果业务较少,这种模式还可以接受,但当后续业务量上去后,会出现谁开发谁运维的情况,维护工作量会越来越大,作业无法形成统一管理 。而且所有人都在申请资源,导致资源成本急速膨胀,资源不能集约有效利用,因此要思考如何从整体来进行实时数据的建设 。
04 数据特点与应用场景那么如何来构建实时数仓呢?首先要进行拆解,有哪些数据,有哪些场景,这些场景有哪些共同特点,对于外卖场景来说一共有两大类,日志类和业务类 。
文章插图
- 日志类:数据量特别大,半结构化,嵌套比较深 。日志类的数据有个很大的特点,日志流一旦形成是不会变的,通过埋点的方式收集平台所有的日志,统一进行采集分发,就像一颗树,树根非常大,推到前端应用的时候,相当于从树根到树枝分叉的过程(从1到n的分解过程) 。如果所有的业务都从根上找数据,看起来路径最短,但包袱太重,数据检索效率低 。日志类数据一般用于生产监控和用户行为分析,时效性要求比较高,时间窗口一般是5min或10min,或截止到当前的一个状态,主要的应用是实时大屏和实时特征,例如用户每一次点击行为都能够立刻感知到等需求 。
- 戊午日大贵格局,女1988年阳历9月30日阴历8月20日下午3点30分出生的命格?
- 立春的风俗及饮食 立春吃什么传统食物
- 社群五大营销玩法解析 社群的营销方式有哪些
- 婴儿需要添加辅食的信号和月份 一般婴儿几个月添加辅食最好
- 1995年5月5日生辰八字,1995年4月25日出生的农历是什么时?
- 大逃脱有丧尸的哪一集
- 敷尔佳面膜是哪国的
- 搭载ea111发动机的车型有哪些
- 德云社桃儿什么意思
- 敷尔佳脸刺痛正常吗