【云驻共创】华为云——大数据开发
【摘要】 文章讲述了数据开发相关的一些通用概念(数据建模、数据仓库和维度建模),解释了ETL和常见的开发模式(面向数据处理过程开发、面向业务数据模型开发),
并且介绍了华为GTS大数据开发平台DataFactory的理论基础和实现。
文章关键词:大数据开发模式概览、数据模型驱动开发、面向数据处理过程开发、华为云数据开发工具DataFactory介绍
文章核心内容:
- 数据开发相关的一些通用概念(数据建模、数据仓库和维度建模)
- ETL和常见的开发模式(面向数据处理过程开发、面向业务数据模型开发)
- 华为GTS大数据开发平台DataFactory的理论基础和实现
引读
1.什么是数据开发?
- DAMA组织对数据开发的定义:数据开发是指分析、设计、部署及维护数据解决方案,以使企业的数据资源价值最大化。
- 数据开发是系统开发生命周期中项目活动的子集,专注于数据需求的定义、数据解决方案组件的设计和实施。
2.什么是数据模型?
- 数据模型是一种抽象模型,它组织数据元素并标准化它们之间的关系以及与现实世界实体的属性的关系。例如,数据模型可以指定代表汽车的数据元素由许多其他元素组成,这些元素又代表汽车的颜色和大小并定义其所有者。
3.数据模型的分类
- 概念模型︰高层次的静态业务结构和概念
- 逻辑模型︰实体类型、数据属性与实体之间的关系
- 物理模型︰面向计算机的数据库或其他技术的设计和实现
- 三种模型的关系:概念模型是整体范围内高层次的抽象,逻辑模型是概念模型的细化,物理模型是具体实际数据库的技术实现,下图为三类模型与业务的关系:
- 概念数据建模和逻辑数据建模是需求分析活动,而物理数据模型建模是设计工作。
4.一个优秀数据模型的三要素
- 容易被人理解
- 便于计算机实现
- 直观地模拟现实世界
数据建模
- 建模的目的:将现实世界中客观存在的事物以数据形式存储到计算机中并进行处理,对其进行分类确定数据的结构以及数据间的联系。
- 常见数据建模的方法:维度建模、关系建模、非关系建模、面向对象建模、基于事实的建模、基于时间的建模
数据建模步骤一:分析需求信息
数据模型的表示方法
- IE(Information Engineer)工程信息表示法:用类似鸭掌的符号描绘基数(关系建模中最常用的方法)
- IDEF1X——信息建模集成定义(关系建模中的方法)
- ORM(Object Role Modeling)对象角色建模语法——方便详细描述业务数据之间的关系和规则(面向对象建模中的方法),ORM图通常表达的信息量都很大,因此经常需要分解到更小的主题视图,让用户更有效地理解在一张图上描述较少的业务实体。
- UML(Unified Modeling Language)统一建模语言——几种不同建模形式综合的图形建模语言,把面向对象的分析和设计过程标准化, UML能有效地达到建模目的,现在已经被广泛使用。(使用阶段不仅限于数据建模阶段、还可以是架构设计阶段、软件设计阶段等)
数据建模步骤二:开发和维护概念数据模型
- 定义:把现实世界中的具体事物抽象、组织为某一数据库管理系统支持的数据模型——现实世界到信息世界的转换。
- 特点:不依赖技术限制,仅包括给定领域和职能中的基础和关键的业务实体,实体之间关系的描述。
数据建模步骤三:开发和维护逻辑数据模型
- 定义:借助相对抽象、逻辑统一且结构稳健的结构,实现数据仓库系统所要求的数据存储目标。
- 对于企业,数据逻辑模型是企业数据资产准确的描述,是数据整合的核心或目的。
- 数据整合就是将不同来源的数据整合到一个统一定义、统一形式的LDM中。
- 特点:从概念数据模型拓展,为每个实体添加属性,例如:实体为账户,则属性有账户名字、账户ID;通过范化式和抽象化的技术从概念模型转换。
数据建模步骤四:开发和维护物理数据模型
- 定义:引入概念数据模型和逻辑数据模型中所缺少的数据库等特定技术上下文,表示计算机处理期间传递的信息。
- 特点:根据技术约束、应用方法、性能需求和建模标准等来优化详细的数据需求和业务规则;需要考虑特定的数据库管理系统能力。
物理建模技术
- 去范式化:违反范式规则,引入数据冗余,减少数据获取时间,以空间换时间
- 代理键:字段中的候选键都不适合当主键时(太长,或意义太泛),就会用一个attribute来当代理主键,此主键可能是用流水号来代替可辨识唯一值的主键。
- 索引:创建额外的索引文件来优化查询。
- 分区和分表:设计和定义垂直或水平分解表格或文件策略。
- 视图:虚拟表,其内容由查询定义,优点:视点集中、简化操作、定制数据、合并分割数据、安全性等。
- 老化:设计数据的留存周期,以消减成本开销或数据安全合规性要求。
数据仓库
- 数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理中的决策制定。
- 核心:数据仓库用于支持决策,面向分析型数据处理,它不同于企业的事务型数据库;数据仓库是对多个异构的数据源有效集成,集成后按照主题进行了重组,并包含历史数据,而且存放在数据仓库中的数据一般不再修改。
- 特点:面向主题、集成性、稳定性、企业范围、历史性。
- 数据仓库和事务性数据库对比:
- ETL系统:数据仓库将操作源系统的数据集成为数据仓库的功能组件,ETL的目标是构建和加载数据到展现区的目标维度模型中。
数据仓库元素
- 事实表:事实表的行对应于特定的数值型度量值。例如,金额、交易量或个数等。有些度量值是算法的结果,在这种情况下,元数据对于正确理解和使用至关重要。事实表占据了数据库的大部分空间(90%是一个合理的经验法则),并且往往具有大量的行。
- 维度表:表示业务的重要对象,并且主要包含文字描述。维度是事实表的入口点或链接,充当“查询”或“报表”约束的主要来源。维度通常是高度反范式的,通常占总数据的10%左右。各个维度必须在每一行都有一个独一无二的标识符。维表中最主要的两种标识键是代理键和自然键。
- 粒度:指事实表中的单行数据的含义,这是每行都有的最详细信息。如果一个维度模型用于度量学生注册过程,粒度可能为学生、日期和班级。
维度建模
- 维度建模——按照事实表、维表来构建数据仓库。
- 以分析决策的业务需求出发构建模型,构建的数据模型为分析需求服务,重点解决用户如何更快速完成分析需求,同时还有较好的大规模复杂查询的响应性能。
ETL技术
- ETL(Extract-Transform-Load):数据搬迁——将数据从来源端经过抽取转换加载至目的端的过程。
ETL开发模式–面向数据处理过程开发
- Pro Code开发(python/Java/UNIX):灵活、难;
- SQL开发:数据分析领域常用形式,复用、不支持多输出、复杂业务场景不适用;
- 图形化开发:管道式开发,逻辑与布线分离,低代码上手,可以和前两种开发模式相结合。
ETL开发模式–业务数据驱动模型开发
- 基本流程:建立模型(事实表关联维表)→基于事实表定义业务模型(度量、指标等)→基于业务模型和维度建立汇聚模型→配置基于汇聚模型的统计周期、计算引擎等→根据配置生成计算任务DPL
不同开发模式对比
- 不同的开发模式之间不是非此即彼的关系,而是根据业务场景和开发团队的情况,选择合适的一个或多个技术。
DataFactory概览
-
DataFactory:全场景、多模式、资产原生,一站式数据开发平台
- 全场景数据编排:涵盖数据处理的各个层面的业务。
- 多开发模式:同时支持多种开发模式使用。
- 资产原生:屏蔽具体引擎技术栈,可长期沉淀数据资产。
- DataFactory双轮驱动数据开发模式
- DataPipline:面向业务数据处理过程的开发——面向过程——支持多模式开发(低代码、SQL、编程语言等)
- DataMold:面向业务数据模型的开发——面向对象——计算任务自动推导生成
总结
- 数据开发是指分析、设计、部署及维护数据解决方案,以使企业的数据资源价值最大化。
- 数据建模的目的:将现实世界中客观存在的事物以数据形式存储到计算机中并进行处理,对其进行分类确定数据的结构以及数据间的联系。
- 数据仓库用于支持决策,面向分析型数据处理,数据仓库是对多个异构的数据源有效集成,集成后按照主题进行了重组,并包含历史数据,而且存放在数据仓库中的数据一般不再修改。
- 维度建模以分析决策的业务需求出发构建模型,构建的数据模型为分析需求服务,重点解决用户如何更快速完成分析需求
- 华为DataFactory:全场景、多模式、资产原生,一站式数据开发平台
- ETL(Extract-Transform-Load)——数据搬迁——将数据从来源端经过抽取转换加载至目的端的过程。
本文参与华为云社区【内容共创】活动第17期。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)