《数据仓库ETL及维度建模指导》由会员分享,可在线阅读,更多相关《数据仓库ETL及维度建模指导(6页珍藏版)》请在金锄头文库上搜索。
1、数据仓库ETL及维度建模指导1、维度表的特征(1)维度表键。维度表的主键可以唯一确定表的一行。(2)维度表很宽。一个典型的维度表会有相当多的属性/列。(3)文本属性。维度表中的属性一般是文本格式的。(4)非直接相关属性。维度表中的某些属性经常不会与其中的其他属性直接 相关。(5)非规范化。规范化会导致维度表增多,查询效率降低。(6)上钻/下钻。维度表中的属性提供了获取从高层次的汇总信息到低层次细 节信息的能力。(7)多级层次结构。维度表通常会有多种多级层次结构,从而使钻取可以沿 着这些多级层次结构中的任何一个进行。(8)更少的记录。维度表中的记录通常会比事实表中的记录数更少。2、事实表的特征(
2、1)连接的事实表主键。事实表中的一行记录与所有维度表中的相应记录相 关。事实表中的主键必须是所有维度表主键连接起来的组合键。(2)数据颗粒。数据粒度是指标的细节程度。(3)完全加和指标。(4)半加和指标。如百分比。(5)表很长,但是不宽。通常事实表包含的属性比维度表更少。(6)稀疏的数据。并不是所有维度属性的组合都会出现在事实表中,没有对 应的事实就不会出现在事实表中。(7)退化的维度。有些数字属性不是指标也不是事实,这种属性有些是参考 数字,如订单数、发票号、订单流水号等,在某些类型的分析中是有用的。(8)不含事实的事实表。当事实表表示事件的时候会出现这种情况。3、星型模式的键(1) 维度表
3、的键要用代理键。(2 ) 维度表的主键必须是事实表的外键。(3) 事实表的主键有3中选择:a) 一个单独的复合主键,长度是维度表键长度的总和。这种情况下,除了 复合主键外,外键必须作为附加的属性保存在事实表中。这种情况增加 了事实表的大小。b) 连接的主键,由维度表的主键连接而成。这样,就不需要将维度表的主 键作为附加的属性以外键的形式存放在事实表中了。主键的每一个独立 的部分都可以充当外键。c) 一个生成的主键,与维度表的键无关。除了生成的主键外,所有外键都 必须作为附加属性存放在事实表中。这种方式同样增加了事实表的大小。ETL工具的作用从领先厂商的多种关系型数据库中抽取数据从旧数据库、索引
4、文件和平面文件中抽取数据源字段和目标字段从一种格式向另一种格式进行的数据转换执行标准转换、重定义键和结构性变化提供从数据源到目标的检查轨迹抽取和转换中商业规则的应用将源系统中的几个记录组合成一个整合的目标记录元数据的记录和管理1、ETL处理过程的主要步骤(1) 决定数据仓库中需要的所有目标数据(2) 决定所有的数据源,包括内部和外部(3) 准备从源到目标数据元素的数据映像关系(4)建立全面的数据抽取规则(5)决定数据转换和清洗规则(6)为聚集表制定计划(7)组织数据缓存区域和检查工具(8)为所有的数据装载编写规程(9)维度表的ETL(10)事实表的ETL2、数据抽取的要点.数据源确认-确认数据
5、的源系统和结构.抽取方法-针对每个数据源,定义抽取过程是人工抽取还是基于工具抽取.抽取频率-对于每个数据源,确定数据抽取的频率,每天、每星期、每季度,等等。.时间窗口-对于每个数据源,表示抽取过程进行的时间窗口。.工作顺序-决定抽取任务中某项工作是否必须等到前面的工作成功完成才能开始。.异常处理决定如何处理无法抽取的输入记录。3、数据转换基本任务(1)选择,选择数据源,发生在整个数据转换过程的开始部分,通常构成了 抽取功能本身的一部分。(2)分离/合并,在数据转换过程中对部分源记录进行进一步分离操作。在数 据仓库环境中,对很多源系统中选中部分的合并操作时更加普遍的现象。(3)转化,这是一项包含
6、一切的任务,它包括多种对单独字段的基本转化。(4)汇总,把低粒度的数据汇总。(5)丰富,对单个字段数据进行重新分配和简化的过程,使他们对数据仓库 环境更有用。4、数据转换的主要类型(1)格式修正。如数据类型和字段长度。(2)字段解码。解决相同数据项用过多字段值描述的问题。如性别有的远系 统用1、2表示,有的用M、F表示。(3)计算值和导出值。(4)单个字段的分离。字段拆分。(5)信息的合并。将来自不同数据源的对同一实体的描述信息合并,成为一 个新的实体。(6)特征集合转化(7)度量单位的转化。将不同标准的度量单位转换成相同的标准度量单位。(8)日期/时间转化。将日期和时间转换成统一格式。(9)
7、汇总。创建装载数据仓库的汇总,而不是载入大部分的低粒度数据。(10)键的重新构造5、高质量数据的特征(1)准确性。存储在系统中的关于一个数据元素的值是这个数据元素的正确 值。(2)域完整性。一个属性的数值在合理且预定义的范围之内。(3)数据类型。一个数据类型的值通常是根据这个属性所定义的数据类型来 存储的。(4)一致性。一个数据字段的形式和内容在多个源系统之间是相同的。(5)冗余性。相同的数据在一个系统中不能存储在超过一个的地方。(6)完整性。系统中的属性不应该有缺失的值。(7)重复性。完全解决一个系统中记录的重复性的问题。(8)结构明确。在数据项的结构可以分成不同部分的任何地方,这个数据项
8、都必须包含定义好的结构。(9)数据异常。一个字段必须根据预先定义的目的来使用。(10)清晰。一个数据元素可能拥有数据质量的所有其他特征,但是如果用户 不能清楚地了解它的含义,那么元数据对于用户就毫无含义。正确的命名习 惯可以帮助用户更好地理解数据元素。(11)时效性。用户决定了数据的时效性。如果用户希望客户维度数据不要超 过一天,那么源系统中的客户数据的变化就必须每天都应用到数据仓库中。(12)有用性。数据仓库中的每一个数据元素必须满足用户的一些需求。数据 元素可能是正确的、高质量的,但是如果对于用户没有价值,那么数据仓库 中的这个数据元素就是完全没用的。(13)符合数据完整性的规则。源系统中
9、的关系数据库中存储的数据必须符合 实体完整性和及参照完整性。允许使用空值作为主键的任何数据表都不具备 实体完整性。参照完整性迫使正确地建立父子关系。在一个客户和订单的关 系中,参照完整性保证了数据库中一个客户所有订单的存在。6、数据质量问题类型列表(1)字段中的虚假值(2)数据值缺失(3)对字段的非正规使用。姓名字段不能放性别。(4)晦涩的值(5)互相冲突的值。源系统中有一些相关字段的值必须是兼容的。如地区和 邮政编码必须匹配。(6)违反商业规则。如一年不能超过365或366天。(7)主键重用。(8)标志不唯一。如同一个产品在销售系统和库存系统产品代码不一样。(9)不一致的值。如性别在不同的系
10、统中编码不一样。(10)不正确的值(11)一个字段多种用途(12)错误的集成7、数据污染的来源(1) 系统转换(2)数据老化(3)复杂的系统集成(4)拙劣的数据库设计(5)数据输入的不完整信息(6)输入错误(7)国际化/本地化(8)欺诈(9)缺乏相关政策8、数据清洗工具所能完成的一些典型的错误发现功能方便快捷地识别重复记录辨认出那些超出合法域值范围的数据项找出不一致的数据检查允许值的范围 检查不同来源的数据项的不一致性允许用户辨认和确定数据质量问题的数量监考数据质量虽时间变化的趋势向用户报告分析所用数据的质量解决关系数据库管理系统数据参照完整性问题9、数据清洗工具所能完成的一些典型的错误修正功能规范不一致的数据 改善不同数据源中数据的合并过程对属于同一个家庭的客户记录进行分群和关联提供数据质量的衡量指标使允许的数值生效