充值信息

赞助信息

推荐给好友 上一篇 | 下一篇

基于多维模型的独立型数据集市数据转换策略研究



    数据集市为用户提供部门级的决策分析依据,其数据的可用性及其数据质量直接影响了管理者的决策。数据转换的成功与否制约着决策者能否制订出行之有效的决策。所以数据转换是用户是否能得到高质量信息进行决策分析的前提。

    针对独立型数据集市的特点,本文在基于维度的数据转换模型基础上本文详细讨论了基于维度模型的独立型数据集市数据转换的内容,并进一步研究了多段数据转换及管道数据转换的转换策略。

1 数据转换内容

    独立型的数据集市由于其抽取的数据来自OLTP(on line transaction processing,联机事务处理)环境,因而多种类型数据源决定了独立型数据集市的数据转换将是ETL(Extract Transform Cleansing and Load,抽取、转换、清洗、装载)过程中最为复杂的一部分。数据集市以多维模型建模的特点决定了数据转换过程可分四个主要的过程:粒度划分、维度表的数据转换、事实表的数据转换及数据清洗。具体数据基本转换过程如图1所示。

    1.1 代理关键字生成

    代理关键字通常被分配成整型,并且每增加一个新键,会将该键加1。若数据转换是在关系数据库的管理系统中时,可以通过创建一个序列来完成代理键的分配。当数据抽取基于文件而不是基于数据流形式时,代理关键字的分配逻辑同样也很简单:在没有使用数据库序列时,应该将当前(或者下一个)代理关键字保存到指定的元数据中,以避免在每次为新键分配键值时都必须执行max(代理关键字)+1操作。


图1 数据转换过程


    为了能在数据集市中使用代理关键字,必须借助于元数据的使用,即在元数据库中同时为每个维度维护一个永久性的主交叉引用表。交叉引用表连同属性概况表一起,跟踪某个时间点分配给一个操作型关键字的代理关键字。一旦维度表反映最新的抽取,那么此维度表将被元数据中心发布给使用该维度的所有数据中心。

    1.2 基本数据转换

    对于维度表来说有两种最基本的转换:简单数据转换和一般数据转换。前者包括数据类型、格式、日期/时间及维度标签修饰等数据转换;后者包括字段的解码、单个字段的分离、汇总及度量单位的转化等稍微复杂的数据转换。维度转换往往要借助于在元数据库中建立的由源数据到目标数据的映射表才能完成。

    1.3 代理关键字处理

    代理关键字的处理主要是指在事实表转换的过程中用代理关键字取代操作源关键字。此时,源系统中的关键字将不再被使用(演变成退化维度),而用代理关键字进行取代。在取代过程中,需要使用最新代理关键字分配表。针对每个维度对事实表进行一次遍历,就可以快速地将遇到的每个源系统关键字用最新的代理关键字替换掉。

    需要注意的是,在装载历史数据时,需要独立的处理来执行代理关键字的查找,因为不需要将最新的当前值映射到历史数据。此时,需要创建代理关键字的查找逻辑,并且在生成事实记录时应用该逻辑。这就意味着,当事实的事务处理日期介于代理键的有效开始日期与有效结束日期之间时,就应该查找代理关键字。

    1.4 反规范化和重规范化

    为了提高数据的质量,需要某些情况下从业务角度出发对数据库执行反规范化处理。在数据集市中,通常最好将这些实体转轴成若干独立列,以便简化各种变量的计算。

    在转换过程中进行规范化处理也很常见,例如,传统OLTP系统中,存在很多反规范化的用于报告生成的大型平面文件,此时,要将列数据纵向分割成行形式,且每一行代表来源的系统报告中一个月的情况,这时所要做的转换就是先获取数据,再将该数据从某个行逆向转轴成某个日期列和相关数值,其中的每一行代表每个日期的情况。

    1.5 参照完整性的处理

    在数据转换过程中,参照完整性是指对于事实表中的每个外键,在对应维度表中都会存在一个记录。因此,当对事实表进行转换时,若在事实表中存在的某一记录信息,则与之相关的信息应该在维度表中得到体现。参照完整性的处理方法主要包括:

    (1)对事实表数据进行质量验收,应该生成更多的行计数与参考脚注,以便与抽取统计值进行比较;

    (2)在代理关键字替代维表的主键以后,就应该在事实表中选取合适的键作为外键,以确保该事实表与对应的维度表之间建立了完整性参照关系;

    (3)不能将空值用于事实表和维度表之间的连接操作,此时应该先使用匿名的整型键来执行连接操作。

2 多阶段数据转换

    2.1 多阶段数据转换的基本概念


    多阶段数据转换是通过对数据转换过程中产生的临时表进行数据清洗,以及利用不同阶段的检查点对数据进行各种完整性及正确性检查的策略。在进行数据转换时,需要每一过程分解为不同的SQL操作,并创建不同的、临时的阶段表,为每个转换步骤存储结果。独立型数据集市的数据源来自于OLTP数据库、遗留系统或者各种外部文档,ETL程序把这些不同类型数据源中的数据抽取后生成了中间文件,为数据转换提供处理数据,该策略为整个转换过程提供了检查点,使得整个过程更加容易监视和重新启动。

    多阶段数据转换除了可以较容易的根据用户的定制实现各种类型的数据转换,在数据集市的DBMS与数据源的DBMS是异构并且需要XML文件作为中间媒介的情况下,可以利用多阶段数据转换将抽取生成的XML文件转换成与数据集市同构的DMBS,然后再进行其它阶段的转换。多阶段数据转换大多是在数据库之外,在成功的完成数据转换和清洗工作后,新数据被载入到数据库。

31/3123>


 

评分:0

我来说两句