查看原文
其他

数据中台交付专家告诉你,数据架构的分层怎样更加合理?

阿里云开发者社区 大数据技术团队 2022-07-01

热文推荐:基于 Flink+Iceberg 构建企业级实时数据湖


正文


今天和大家分享一篇关于数据中台的文章,作者柯根老师是数据中台交付方面的专家,大家不妨一起看看吧~


从整体上看,数据中台体系架构可分为:数据采集层、数据计算层、数据服务层 三大层次。通过这三大层次对上层数据应用提供数据支撑。

数据采集层

对于企业来说,每时每刻都在产生海量的数据,数据采集作为数据体系第一环尤为重要。


因此在数据采集层需要建立了一套标准的数据采集体系方案,并致力全面、高性能、规范地完成海量数据的采集,将其传输到大数据平台。


互联网日志采集体系包括两大体系:Web端日志采集技术方案;APP端日志采集技术方案。


在采集技术之上,企业可以用面向各个场景的埋点规范,来满足日志数据打通等多种业务场景。同时,还可以建立了一套高性能、高可靠性的数据传输体系完成数据从生产业务端到大数据系统的传输;在传输方面,采集技术可既包括数据库的增量数据传输,也包括日志数据的传输;既需要能支持实时流式计算、也能实时各种时间窗口的批量计算。另一方面,也通过数据同步工具直连异构数据库(备库)来抽取各种时间窗口的数据。


下图展示数据采集层在数据分层中的位置:


数据计算层

从采集系统中收集了大量的原始数据后,数据只有被整合、计算才能被用于洞察商业规律、挖掘潜在信息,实现大数据价值,达到赋能商业、创造商业的目的。从采集系统中收集到的大量原始数据,将进入数据计算层中被进一步整合与计算。


面对海量的数据和复杂的计算,数据计算层包括两大体系:数据存储及计算云平台和数据整合及管理体系。


数据存储及计算云平台


例如,MaxCompute是阿里巴巴自主研发的离线大数据平台,其丰富的功能和强大的存储及计算能力使得企业的大数据有了强大的存储和计算引擎;StreamCompute是阿里巴巴自主研发的流式大数据平台,在内部较好地支持了企业流式计算需求。


数据整合及管理体系


“OneModel”是数据整合及管理的方法体系和工具,大数据工程师在这一体系下,构建统一、规范、可共享的全域数据体系,避免数据的冗余和重复建设,规避数据烟囱和不一致,充分发挥在大数据海量、多样性方面的独特优势。借助这一统一化数据整合及管理的方法体系,构建企业数据公共层,并可以帮助相似大数据项目快速落地实现。


数据中台数据加工链路也是遵循业界的分层理念:包括操作数据层(ODS,Operational Data Store)、明细数据层(DWD,Data Warehouse Detail)、汇总数据层(DWS, Data Warehouse Summary)和应用数据层(ADS,Application Data Store)。通过数据中台不同层次之间的加工过程实现从数据资产向信息资产的转化,并且对整个过程进行有效的元数据管理及数据质量处理。


下图展示数据公共层(ODS+DWD+DWS)与数据应用层(ADS)在数据分层中的位置:


图:数据公共层与数据应用层关系


(1)统一数据基础层


我们通过各种方式采集到的丰富数据,在清洗、结构化后进入统一的ODS数据基础层。


其主要功能包括:

  • 同步:结构化数据增量或全量同步到数据中台

  • 结构化:非结构化(日志)结构化处理并存储到数据中台


累积历史、清洗:根据数据业务需求及稽核和审计要求保存历史数据、数据清洗


在权责方面,所有数据应该在源头统一,统一所有的数据基础层,并由一个团队负责和管控,其他团队无权复制数据基础层的数据。


(2)数据中间层


我们进行数据建模研发,并处理不因业务特别是组织架构变动而轻易转移的数据中间层。包括DWD明细数据中间层和DWS汇总数据中间层。


其主要功能包括:

  • 组合相关和相似数据:采用明细宽表,复用关联计算,减少数据扫描。

  • 公共指标统一加工:基于OneData体系构建命名规范、口径一致和算法统一的统计指标,为上层数据产-品、应用和服务提供公共指标;建立逻辑汇总宽表;

  • 建立一致性维度:建立一致数据分析维度表,降低数据计算口径、算法不统一的风险。


在权责方面,面向业务提供服务之前,由统一的团队负责从业务中抽象出源于业务而又不同于业务的数据域,再主导统一建设数据中间层,包括侧重明细数据预JOIN等处理的明细中间层、侧重面向应用可复用维度和指标的汇总数据中间层。


特别是要由唯一团队负责将核心业务数据统一加入数据中间层。允许部分业务数据有独立的数据团队按照统一的OneModel体系方法论建设数据体系,ODS数据基础层和DWD+DWS数据中间层因其统一性和可复用性,被称为数据公共层。


(3)数据应用层


在面向应用提供服务时,业务团队或深入业务线的数据团队有极大的自由度,只要依赖数据公共层,即可自由的建设ADS数据应用层。


其主要功能包括:

  • 个性化指标加工:不公用性;复杂性(指数型、比值型、排名型指标)

  • 基于应用的数据组装:大宽表集市、横表转纵表、趋势指标串

数据服务层

当数据已被整合和计算好之后,需要提供给产品和应用进行数据消费,为了更好的性能和体验,需要构建数据服务层,通过接口服务化方式对外提供数据服务。针对不同的需求,数据服务层的数据源架构在多种数据库之上,如Mysql和Hbase等。


数据服务可以使应用对底层数据存储透明,将海量数据方便高效地开放给集团内部各应用使用。如何在性能、稳定性、扩展性等多方面更好地服务用户;如何满足应用各种复杂的数据服务需求;如何保证数据服务接口的高可用。随着业务的发展,需求越来越复杂,因此数据服务也在不断地前进。


不管是数据公共层还是应用层,最终都需要面向业务提供服务。为了让业务部门找数据、看数据、用数据更加方便,我们将OpenAPI升级为能缓解业务变化对数据模型冲击的包括方法论+产品在内的OneService体系,使其在提供统一的公用服务的同时,兼容面向个性化应用的服务。


下图为数据服务层在数据分层中的位置:

图:数据应用层与数据服务层关系


综上,企业数据中台依托数据采集层、数据计算层、数据服务层,为上层数据产品、业务系统等提供数据支撑。云上数据中台产品Dataphin从“采、建、管、用”为企业提供一站式数据中台各层次的实现,配合阿里云系列产品,可实现企业数据中台全链路稳定、高效构建。




往期推荐



实时数仓 | Flink 直播实时数据建设需求与架构

大数据资产管理平台实践.ppt

基于 Flink+Iceberg 构建企业级实时数据湖

数仓开发需要了解的5大SQL分析函数

用户行为分析-埋点实时数仓实践


欢迎 点赞+收藏+转发朋友圈 三连

看完本文有收获?请转发分享给更多人

大数据爱好者社区

点个赞+在看,少个 bug 👇


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存