技术开发 频道

数据质量体系结构


3. 质量Screen
     质量Screen是数据仓库ETL架构的心脏,在数据流图中它担负着数据质量医生的作用。质量Screen简化了在ETL或数据迁移过程中测试工作实践。如果测试通过,一般不需要记录任何事情;但是如果测试失败,Screen必须要完成:
● 将错误事件记录到错误事件主题中,并
● 选择中止处理过程,将用于恢复的数据放到的临时存储中或者仅仅标记错误的数据
所有的质量Screen在架构上是相似的,参照Jack Olson的分类方式,分为三个简单类型:列Screen、结构Screen和业务规则Screen。

    列Screen用于测试单一列中的数据。列Screen过程通常比较简单,进行一些比较明显的测试,如:某个列包含不希望的NULL,列值超过了定义的列的精度,或列值不满足格式的要求。

    结构Screens测试跨列的数据间关系。例如:列间的层次关系、一对多的关系。结构Screens包括测试两个表域间的主外键关系, 也包括对邮政地址的整个数据块的测试。

    业务规则Screens实现更加复杂的、不适合列和结构Screens的测试。例如:客户的Profile可以进行依赖时间的业务规则进行测试。如:白金卡的常旅客要求至少5年,并每年至少2万公里的飞行距离。业务规则测试也可以进行聚合规则的阕值的测试等。

4. 错误事件主题模型
    错误事件主题模型是一个集中式的维主题模型,它用来在保存质量Screens过程中抛出的错误事件。这个方法可以方便应用在通常的数据集成应用中。在下图可以见到错误事件的ER模型: 
  
           图1: 错误事件主题模型
    这个模型的主表是错误事件事实表。它的粒度是在ETL或数据迁移时质量Screens中抛出的错误事件。事实表的粒度是事实表纪录内容的物理描述。即,每一个质量Screen错误在这表中产生一条记录,表中每一条记录对应一个发现的错误。
错误事件的主题模型包含的维表包括错误发生的日历日期、Screen和Batch工作维。日历日期不是用分秒表示的时间戳信息,而是提供了一种通过通用的日历日期属性对错误事件提供约束和聚合的有用信息,例如:工作日、财年的最后一天等这样的描述信息。事实表中的Time-of-day列则是一个完整的时间戳,用于精确的描述错误发生的时间。这样格式在希望用时间做一些计算方面是非常有用的,例如计算两次错误发生的时间间隔等。

    Batch维不仅能处理批操作,也可包含持续的操作过程。Screen维精确的描述了Screen的标准是什么,当错误发生时我们应当做什么?(中断处理、发出信息挂起某些操作或者仅仅对数据进行标记等)。

   错误事实表包含一个唯一的主键Error Event Key。和维表的主键一样,这是一个用整数序列生成的代理键。这个键域是非常有必要的,保证大量的错误在一次操作中同时发生时,将其加入到这个事实表当中的时候。当然,这种错误情况最好不要发生。
这个错误事件主题还包含另外一个事实表,以更加详细的粒度纪录这个发生的问题。在这个表中的每一条记录标示了数据记录中发生错误的每一个域。这样,就可以记录和处理诸如复杂的结构或者业务规则在更高的层面上发生的问题。这样的错误有可能在Event Detail 事实表中产生多条记录。两个事实表通过Error event域间的主外键关系进行关联。这样Error Event Detail表就可以从表、记录、域的角度精确的描述发生的问题,同样在这个表中通过主外键关系继承来自高粒度事实表的Date、Screen、Batch的信息。到目前为止,我们已经拥有了一个可以处理复杂的多域、多错误的主题模型。

   错误事件细节表也可以包含精确的时间戳用于提供完整的、精确的描述在一段时间内错误多个纪录的聚合阕值问题。
0
相关文章