起源:数智化转型俱乐部
面对爆炸式增长的数据,如何建设高效的数据模型和体系,对这些数据进行有序和有构造地分类组织和存储,防止反复建设和数据不一致性,保证数据的规范性,始终是大数据系统建设一直谋求的方向。
OneData 即是阿里巴巴外部进行数据整合及治理的办法体系和工具。阿里巴巴的大数据工程师在这一体系下,构建对立、标准、可共享的全域数据体系,防止数据的冗余和反复建设,躲避数据烟囱和不一致性,充分发挥阿里巴巴在大数据海量、多样性方面的独特劣势。借助这一统一化数据整合及治理的办法体系,咱们构建了阿里巴巴的数据公共层,并能够帮忙类似的大数据我的项目疾速落地实现。上面重点介绍 OneData 体系和施行方法论。
1.定位及价值
阿里巴巴团体大数据建设方法论的外围是:从业务架构设计到模型设计,从数据研发到数据服务,做到数据可治理、可追溯、可躲避反复建设。目前,阿里巴巴团体数据公共层团队已把这套方法论积淀为产品,以帮忙数据 PD、数据模型师和 ETL 工程师建设阿里的大数据。这一体系蕴含方法论以及相干产品。
建设对立的、规范化的数据接入层(ODS)和数据中间层(DWD 和 DWS),通过数据服务和数据产品,实现服务于阿里巴巴的大数据系统建设,即数据公共层建设。提供标准化的(Standard)、共享的(Shared)、数据服务(Service)能力,升高数据互通老本,开释计算、存储、人力等资源,以打消业务和技术之痛。
2.体系架构
体系架构如图。
业务板块:因为阿里巴巴团体业务生态宏大,所以依据业务的属性划分出几个绝对独立的业务板块,业务板块之间的指标或业务重叠性较小。如电商业务板块涵盖淘系、B2B 系和 AliExpress 系等。
标准定义:阿里数据业务宏大,联合行业的数据仓库建设教训和阿里数据本身特点,设计出的一套数据标准命名体系,标准定义将会被用在模型设计中。前面章节将会具体阐明。
模型设计:以维度建模实践为根底,基于维度建模总线架构,构建一致性的维度和事实(进行标准定义)。同时,在落地表模型时,基于阿里本身业务特点,设计出一套表标准命名体系。
3.模型设计
模型设计领导实践:阿里巴巴团体数据公共层设计理念遵循维度建模思维,可参考 Star Schema-The Complete Reference 和 The Data Warehouse Toolkit-The Definitive Guide to Dimensional Modeling。数据模型的维度设计次要以维度建模实践为根底,基于维度数据模型总线架构,构建一致性的维度和事实。
模型档次:阿里巴巴的数据团队把表数据模型分为三层: 操作数据层(ODS)、公共维度模型层(CDM)和利用数据层(ADS),其中公共维度模型层包含明细数据层(DWD)和汇总数据层(DWS)。
操作数据层(ODS):把操作系统数据简直无解决地寄存在数据仓库零碎中。
同步:结构化数据增量或全量同步到 MaxCompute。
结构化:非结构化(日志)结构化解决并存储到 MaxCompute。
累积历史、荡涤:依据数据业务需要及稽核和审计要求保留历史数据、荡涤数据。
公共维度模型层(CDM):寄存明细事实数据、维表数据及公共指标汇总数据,其中明细事实数据、维表数据个别依据 ODS 层数据加工生成;公共指标汇总数据个别依据维表数据和明细事实数据加工生成。
CDM 层又细分为 DWD 层和 DWS 层,别离是明细数据层和汇总数据层,采纳维度模型办法作为实践根底,更多地采纳一些维度进化手法,将维度进化至事实表中,缩小事实表和维表的关联,进步明细数据表的易用性;同时在汇总数据层,增强指标的维度进化,采取更多的宽表化伎俩构建公共指标数据层,晋升公共指标的复用性,缩小反复加工。其次要性能如下。
组合相干和类似数据:采纳明细宽表,复用关联计算,缩小数据扫描。
公共指标对立加工:基于 OneData 体系构建命名标准、口径统一和算法对立的统计指标,为下层数据产品、利用和服务提供公共指标;建设逻辑汇总宽表。
建设一致性维度:建设统一的数据分析维表,升高数据计算口径、算法不对立的危险。
利用数据层(ADS):存放数据产品个性化的统计指标数据,依据 CDM 层与 ODS 层加工生成。
个性化指标加工:不专用性、复杂性(指数型、比值型、排名型指标)。
基于利用的数据组装:大宽表集市、横表转纵表、趋势指标串。
阿里巴巴通过构建全域的公共层数据,极大地管制了数据规模的增长趋势,同时在整体的数据研发效率、老本节约、性能改良方面都有不错的成果。
数据调用服务优先应用公共维度模型层(CDM)数据,当公共层没有数据时,需评估是否须要创立公共层数据,当不须要建设专用的公共层时,方可间接应用操作数据层(ODS)数据。利用数据层(ADS)作为产品特有的个性化数据个别不对外提供数据服务,然而 ADS 作为被服务方也须要恪守这个约定。
根本准则:高内聚和低耦合——一个逻辑或者物理模型由哪些记录和字段组成,应该遵循最根本的软件设计方法论的高内聚和低耦合准则。次要从数据业务个性和拜访个性两个角度来思考:将业务相近或者相干、粒度雷同的数据设计为一个逻辑或者物理模型;将高概率同时拜访的数据放一起,将低概率同时拜访的数据离开存储;
外围模型与扩大模型拆散——建设外围模型与扩大模型体系,外围模型包含的字段反对罕用的外围业务,扩大模型包含的字段反对个性化或大量利用的须要,不能让扩大模型的字段适度侵入外围模型,免得毁坏外围模型的架构简洁性与可维护性。
公共解决逻辑下沉及繁多——越是底层专用的解决逻辑越应该在数据调度依赖的底层进行封装与实现,不要让专用的解决逻辑裸露给应用层实现,不要让公共逻辑多处同时存在。
老本与性能均衡——适当的数据冗余可换取查问和刷新性能,不宜适度冗余与数据复制。
数据可回滚——解决逻辑不变,在不同工夫屡次运行数据后果确定不变。
一致性——具备雷同含意的字段在不同表中的命名必须雷同,必须应用标准定义中的名称。
命名清晰、可了解——表命名需清晰、统一,表名需易于消费者了解和应用。
如何从具体的需要或我的项目转换为可施行的解决方案,如何进行需要剖析、架构设计、具体模型设计等,则是模型施行过程中探讨的内容。下节会简略介绍业界罕用的模型施行过程,重点解说阿里巴巴 OneData 模型设计实践及施行过程。注:本书中呈现的局部专有名词、专业术语、产品名称、软件项目名称、工具名称等,是淘宝(中国)软件有限公司外部我的项目的习用词语,如与第三方名称雷同,实属偶合。
原文链接
本文为阿里云原创内容,未经容许不得转载。