数仓建设的3大难点解析 数仓搭建流程有哪些

数仓搭建流程有哪些(数仓建设的3大难点解析),小编带你了解更多信息 。

实时数仓以端到端低延迟、SQL标准化、快速响应变化、数据统一为目标 。美团外卖数据智能组总结的最佳实践是:一个通用的实时生产平台跟一个通用交互式实时分析引擎相互配合,同时满足实时和准实时业务场景 。两者合理分工,互相补充,形成易开发、易维护且效率高的流水线,兼顾开发效率与生产成本,以较好的投入产出比满足业务的多样性需求 。
01 实时场景
数仓建设的3大难点解析 数仓搭建流程有哪些

文章插图

实时数据在美团外卖的场景是非常多的,主要有以下几个方面:
  • 运营层面:比如实时业务变化,实时营销效果,当日营业情况以及当日分时业务趋势分析等 。
  • 生产层面:比如实时系统是否可靠,系统是否稳定,实时监控系统的健康状况等 。
  • C端用户:比如搜索推荐排序,需要实时行为、特点等特征变量的生产,给用户推荐更加合理的内容 。
  • 风控侧:实时风险识别、反欺诈、异常交易等,都是大量应用实时数据的场景 。
02 实时技术及架构1. 实时计算技术选型目前,市面上已经开源的实时技术还是很多的,比较通用的有Storm、Spark Streaming以及Flink,技术同学在做选型时要根据公司的具体业务来进行部署 。
美团外卖依托于美团整体的基础数据体系建设,从技术成熟度来讲,公司前几年主要用的是Storm 。当时的Storm,在性能稳定性、可靠性以及扩展性上也是无可替代的 。但随着Flink越来越成熟,从技术性能上以及框架设计优势上已经超越了Storm,从趋势来讲就像Spark替代MR一样,Storm也会慢慢被Flink替代 。当然,从Storm迁移到Flink会有一个过程,我们目前有一些老的任务仍然运行在Storm上,也在不断推进任务迁移 。
数仓建设的3大难点解析 数仓搭建流程有哪些

文章插图

具体Storm和Flink的对比可以参考上图表格 。
2. 实时架构① Lambda架构
Lambda是比较经典的一款架构,以前实时的场景不是很多,以离线为主,当附加了实时场景后,由于离线和实时的时效性不同,导致技术生态是不一样的 。而Lambda架构相当于附加了一条实时生产链路,在应用层面进行一个整合,双路生产,各自独立 。在业务应用中,顺理成章成为了一种被采用的方式 。
双路生产会存在一些问题,比如加工逻辑Double,开发运维也会Double,资源同样会变成两个资源链路 。因为存在以上问题,所以又演进了一个Kappa架构 。
② Kappa架构
数仓建设的3大难点解析 数仓搭建流程有哪些

文章插图

Kappa从架构设计来讲,比较简单,生产统一,一套逻辑同时生产离线和实时 。但是在实际应用场景有比较大的局限性,在业内直接用Kappa架构生产落地的案例不多见,且场景比较单一 。这些问题在美团外卖这边同样会遇到,我们也会有自己的一些思考,将会在后面的章节进行阐述 。
03 业务痛点首先,在外卖业务上,我们遇到了一些问题和挑战 。在业务早期,为了满足业务需要,一般是Case By Case地先把需求完成 。业务对于实时性要求是比较高的,从时效性的维度来说,没有进行中间层沉淀的机会 。在这种场景下,一般是拿到业务逻辑直接嵌入,这是能想到的简单有效的方法,在业务发展初期这种开发模式也比较常见 。
如上图所示,拿到数据源后,我们会经过数据清洗、扩维,通过Storm或Flink进行业务逻辑处理,最后直接进行业务输出 。把这个环节拆开来看,数据源端会重复引用相同的数据源,后面进行清洗、过滤、扩维等操作,都要重复做一遍 。唯一不同的是业务的代码逻辑是不一样的,如果业务较少,这种模式还可以接受,但当后续业务量上去后,会出现谁开发谁运维的情况,维护工作量会越来越大,作业无法形成统一管理 。而且所有人都在申请资源,导致资源成本急速膨胀,资源不能集约有效利用,因此要思考如何从整体来进行实时数据的建设 。
04 数据特点与应用场景那么如何来构建实时数仓呢?首先要进行拆解,有哪些数据,有哪些场景,这些场景有哪些共同特点,对于外卖场景来说一共有两大类,日志类和业务类 。
数仓建设的3大难点解析 数仓搭建流程有哪些

文章插图