序言
学习下阿里DataWorks的设计理念以及要做的事情cuiyaonan2000@163.com
参考文档:
https://www.aliyun.com/product/bigdata/ide
https://help.aliyun.com/document_detail/73015.html
https://help.aliyun.com/document_detail/324149.html ----数据治理
Launch
DataWorks基于阿里云ODPS/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。作为阿里巴巴数据中台的建设者,DataWorks从2009年起不断沉淀阿里巴巴大数据建设方法论,同时与数万名政务/金融/零售/互联网/能源/制造等客户携手,助力产业数字化升级。
智能数据建模
数仓规划
使用DataWorks进行数据建模时,您可以在数仓规划页面进行数据分层、业务分类、主题域和业务过程设计。
这里的数仓规格通俗点讲是,给数据贴标签,根据数据的处理流程,业务分类,业务过程,数据域等分类方式来区分不同阶段,场景,业务等类型的数据,方便将来根据类型来查询数据。cuiyaonan2000@163.com
数据分层
您可以结合业务场景、数据场景综合考虑设计数仓的数据分层,DataWorks为您默认创建业界通用的五层数仓分层:----如下的数据分类或者说数据处理流程,应该是我们通常就能想到的cuiyaonan2000@163.com
数据引入层 ODS(Operational Data Store)
明细数据层 DWD(Data Warehouse Detail)
汇总数据层 DWS(Data Warehouse Summary)
应用数据层 ADS(Application Data Service)
公共维度层 DIM(Dimension)
您也可以根据业务需求创建其他分层数据层,创建数据分层的操作请参见创建数仓分层。
业务分类
当企业业务比较复杂,不同类型业务彼此间需要共享数据域,但是又希望能在模型设计和应用过程中快速定位本业务的数据时,您可结合真实业务情况,规划不同的业务分类,在后续建模的维度表和明细表中,将其关联到对应的业务分类中。创建业务分类的操作可参见业务分类。
数据域
数据域是一个较高层次的数据归类标准,是对企业业务过程进行抽象、提炼、组合的集合,是企业业务人员在使用数据时第一个分组入口,可以帮助企业业务人员快速的从海量的数据中快速圈定到自己的业务数据。
数据域面向业务分析,一个数据域对应一个宏观分析领域,比如采购域、供应链域、HR域、电商业务域等。数据域的设定建议由统一组织或者人员(如数据架构师或者模型小组成员)进行管理和设定,数据域设计人员需要能对企业有深刻的业务理解,更多的表达对业务的解释和抽象。使用DataWorks进行数据域的规划建设的操作,请参见数据域。
业务过程
业务过程是对业务活动流程的描述,例如在电商领域,加购、下单、支付等都可以是一个业务过程。进行业务效果分析时,业务过程有非常典型的应用,例如常用漏斗分析,即将购买商品的业务活动分解为浏览商品、加入购物车、下订单、付款、确认收货等业务过程,统计每个业务过程的“订单数”,将可以针对“订单数”这一指标做漏斗分析。使用DataWorks创建业务过程的操作请参见业务过程。
数据标准
DataWorks数据建模支持在建模前规划制定数据标准,或在建模使用过程中根据业务情况沉淀企业业务的数据标准。通过规范约束标准代码、度量单位、数据标准、命名词典,来保障后续建模与应用过程中数据处理的一致性。
例如,现有注册表和登录表两张表,注册表中存储了会员ID,字段名为user_id,登录表中也存储了会员ID,字段名为userid,此时针对会员ID这个数据创建统一的数据标准,例如指定数据处理的标准代码、指定字段的属性要求(例如字段的数据类型、长度、默认值等)、指定数据的度量单位。创建好数据标准后,后续在建模过程中涉及到会员ID这个字段的设置时,即可直接关联此标准,以此来保障所有会员ID字段的标准统一。
如此这般其实就是规定了业务中所有的字段的标准信息,虽然进来的数据字段信息都不一样,但是它们都对应到标准后的字段内容上cuiyaonan2000@163.com
维度建模
DataWorks的数据建模理念遵循维度建模思想,使用DataWorks的维度建模功能进行数据仓库建模设计时:-----------此处是主要是针对模型时的分类,不同模型由不同的建仓类型
维度表
结合业务的数据域的规划,提取出各业务数据域中进行数据分析时可能存在的维度,并将维度及其属性通过维度表的方式存储下来。例如,在进行电商业务数据分析时,可用的维度及其属性有:订单维度(属性包括订单ID、订单创建时间、买家ID、卖家ID等)、用户维度(性别、出生日期等)、商品维度(包括商品ID、商品名称、商品上架时间)等,此时您就可以将这些维度和属性创建为订单维度表、用户维度表、商品维度表等,将维度属性记录作为维度表的字段。后续您可将这些维度表部署到数仓中,通过ETL将实际维度数据按照维度表定义的方式进行存储,方便业务人员在后续的数据分析时进行取用。
明细表
结合业务过程的规划,梳理分析各业务过程中可能产生的实际数据,将这些实际数据字段通过明细表的方式存储下来。例如下订单这一业务过程中,您可以创建下订单这一明细表,用于记录下单过程可能产生实际数据字段,例如订单ID、订单创建时间、商品ID、数量、金额等。后续您可将这些明细表部署到数仓中,通过ETL将真实的数据按照明细表的定义方式进行汇总存储,便于业务分析时取用。
汇总表
您可以结合业务数据分析和数仓分层,将一些明细的事实数据和维度数据先进行汇总分析,创建汇总表,后续数据分析时直接取用汇总表中的数据即可,无需再取用明细表和维度表中的数据。----常用的类似于数据分层
逆向建模
逆向建模主要用于将其他建模工具生成的模型反向建模至DataWorks的维度建模中。例如,当您已通过其他建模工具生成模型,此时,想更换为DataWorks的智能建模进行后续建模工作,则可以使用逆向建模功能。该功能无需您再次执行建模操作,即可帮助您快速将已有模型反向建模至DataWorks的维度建模中,节省了大量的时间成本。----模型复用说的高大尚
维度表、明细表、汇总表的创建操作请参见创建维度表、创建明细表、创建汇总表。逆向建模操作,详情请参见逆向建模。
数据指标
DataWorks的数据建模提供数据指标功能,为您提供统一的指标体系建立能力。
指标体系由原子指标、修饰词、时间周期和派生指标构成。----这个应该是包含了数据标准,即用于规定了一个业务下应该有哪些符合数据标准的字段,以及相关的计算字段cuiyaonan2000@163.com
原子指标:是基于某一业务过程下的度量,如“支付订单”业务过程中的“支付金额”。
修饰词:是对指标统计业务范围的限定,如限定“支付金额”的统计范围为“母婴类产品”。
时间周期:用于明确指标统计的时间范围或者时间点,如指定统计“支付金额”的时间周期为“最近7天”。
派生指标:由原子指标、修饰词、时间周期组合定义。如,统计“最近7天”“母婴类产品”的“支付金额”。
数据建模的必要性
海量数据的标准化管理
企业业务越庞大数据结构就越复杂,企业数据量会随着企业业务的快速发展而迅速增长,如何结构化有序地管理和存储数据是每个企业都将面临的一个挑战。
业务数据互联互通,打破信息壁垒
公司内部各业务、各部门之间数据独立自主形成了数据孤岛,导致决策层无法清晰、快速地了解公司各类数据情况。如何打破部门或业务领域之间的信息孤岛是企业数据管理的一大难题。
数据标准整合,统一灵活对接
同一数据不同描述,企业数据管理难、内容重复、结果不准确。如何制定统一的数据标准又不打破原有的系统架构,实现灵活对接上下游业务,是标准化管理的核心重点之一。
数据价值最大化,企业利润最大化
在最大程度上用好企业各类数据,使企业数据价值最大化,为企业提供更高效的数据服务。
数据集成
数据集成是稳定高效、弹性伸缩的数据同步平台,致力于提供复杂网络环境下、丰富的异构数据源之间高速稳定的数据移动及同步能力。
前面说的是数据建模,这里说要就是说,怎么获取原始数据cuiyaonan2000@163.com
使用限制
数据同步肯定不能兼容所有的数据源,至少一次性不能全不兼容
数据同步:
支持且仅支持结构化(例如RDS、DRDS等)、半结构化、无结构化(OSS、TXT等,要求具体同步数据必须抽象为结构化数据)的数据的同步。即数据集成仅支持传输能够抽象为逻辑二维表的数据同步,不支持同步OSS中存放完全非结构化的数据(例如一段MP3)至MaxCompute。
网络连通:
支持单地域内及部分跨地域的数据存储相互同步、交换的数据同步需求。 部分地域之间可以通过经典网络传输,但不能保证其连通性。如果测试经典网络不通,建议您使用公网方式进行连接。
数据传输:
数据集成仅完成数据同步(传输),本身不提供数据流的消费方式。
数据一致性:
数据集成同步仅支持at least once,不支持exact once,即不能保证数据重复,只能依赖主键+目的端能力来保证。--------------------这个是缺点cuiyaonan2000@163.com
离线(批量)同步简介
数据集成主要用于离线(批量)数据同步。离线(批量)的数据通道通过定义数据来源和去向的数据源和数据集,提供一套抽象化的数据抽取插件(Reader)、数据写入插件(Writer),并基于此框架设计一套简化版的中间数据传输格式,从而实现任意结构化、半结构化数据源之间数据传输。
关键点就是读取插件和写入插件用于批量信息的读取。
实时同步简介
数据集成的实时同步包括实时读取、转换和写入三种基础插件,各插件之间通过内部定义的中间数据格式进行交互。
一个实时同步任务支持多个转换插件进行数据清洗,并支持多个写入插件实现多路输出功能。同时针对某些场景,支持整库实时同步解决方案,您可以一次性实时同步多个表。详情请参见实时数据同步。
夺路输出暗合维度建模的内容。
同步解决方案优势
全量数据初始化。
增量数据实时写入。
增量数据和全量数据定时自动合并写入新的全量表分区。
同步参数
并发数
并发数是数据同步任务中,可以从源并行读取或并行写入数据存储端的最大线程数。----这个读取的并发比较有作用,如何避免重复读入????
限速
限速是数据集成同步任务可以达到的传输速度限制。
脏数据
脏数据是对于业务没有意义,格式非法或者同步过程中出现问题的数据。单条数据写入目标数据源过程中发生了异常,则此条数据为脏数据。 因此只要是写入失败的数据均被归类于脏数据。例如,源端是VARCHAR类型的数据写到INT类型的目标列中,导致因为转换不合理而无法写入的数据。您可以在同步任务配置时,控制同步过程中是否允许脏数据产生,并且支持控制脏数据条数,即当脏数据超过指定条数时,任务失败退出。
数据源
DataWorks所处理的数据的来源,可能是一个数据库或数据仓库。DataWorks支持各种类型的数据源,并且支持数据源之间的转换。
在数据集成同步任务配置前,您可以在DataWorks数据源管理页面,配置好您需要同步的源端和目标端数据库或数据仓库的相关信息,并在同步过程中,通过选择数据源名称来控制同步读取和写入的数据库或数据仓库。
数据治理
DataWorks数据治理中心可自动发现平台使用过程中数据存储、任务计算、代码开发、数据质量及数据安全等维度存在的待治理问题,并通过健康分模型进行量化评估,从全局、工作空间、个人等多个视角,以治理报告及治理排行榜的形式呈现治理成果,帮助您有效推动解决治理问题达成治理目标。在成本治理方面,数据治理中心提供任务资源消耗明细、资源消耗整体趋势、单任务费用预估等丰富功能,可帮助您对各类资源使用费用进行有效的优化控制。
治理内容
如下的主要分为 开发前检查与开发后检查,检查的对象根据所在的环节有所不同cuiyaonan2000@163.com
检查项:用于数据开发等环节的事前检查,在开发流程中检测不符合数据规范的内容,生成影响开发流程正常执行的问题事件,约束、管理开发流程。
例如,检查项可以配置为禁止使用select*语句,不允许通过create table语句创建表等。
检查项事件:检查项检测出的影响开发流程正常执行的问题事件。
治理项:用于数据开发后的分析环节,检测系统存在的待治理优化问题。治理项包括必选治理项和可选治理项。
例如,治理项可以配置为任务运行时间超长、连续出错节点、无人访问叶子节点、空跑节点等。
治理项问题:治理项检测出的待治理优化问题。
治理方案模板:数据治理中心提供的统一化治理模板,配置了常见的检查项及治理项,您可以直接使用该模板进行数据问题检测。
健康分:基于治理项,按照系统预先定义的模型计算得出,用于体现治理成效。
治理单元:由一个或多个工作空间组成,用于集中统计指定工作空间的整体健康分、治理项问题和检查项事件。
知识库:数据治理中心提供的,针对常见检查项事件及治理项问题给出的解决方案。
数据治理逻辑
如上开发前的检查叫做检查项,开发后的治理叫治理项
数据治理问题检测包括数据开发前的检查项检测,数据开发后的治理项检测,帮助您全方位管控当前数据存在的待治理问题。同时,数据治理中心为您提供了统一的治理方案模板,汇总了常见检查项及治理项,您可以直接使用该模板,检测平台使用过程中的待治理问题。数据治理逻辑如下图所示。
检查项检测(开发前,即数据处理前):
用于数据开发前的管控治理,主要在执行提交、发布等操作时校验规范性等问题。在进行数据开发前,您可以通过检查项对数据开发功能相关的约束进行检查,当检查出存在不符合约束规范的内容时,系统会生成影响开发流程正常执行的问题事件。您可以基于该事件处理暴露的问题,以便数据开发流程可以正常执行。
治理项检测(开发后,即数据处理后):
用于数据开发后的管控治理。数据开发完成后,您可以使用数据治理中心的治理功能,通过全局视角、个人视角或工作空间视角,查看对应的待治理项。数据治理人员可以基于暴露的待治理项,快速发现并解决存在的问题,推进团队内的数据治理目标。