数据校对(data reconciliation)是BW实施中必不可少的关键步骤。是报表测试阶段和上线后系统支持维护工作的核心。数据校对主要是对R3(或其他)数据源的数据与BW报表中的数据进行分析,以确定数据是否按预定设计的方案和逻辑准确无误的上载到报表层。 数据校对的方法多种多样,按数据流的方向来分,有自下而上和自上而下两种;按照分析的技术手段又可分为逻辑推测和模拟调试。在此,我想没必要系统的一一罗列出来,有兴趣的朋友可以另开一个主题进行深入讨论。下面,我想就我自己在项目中对数据校对方法的一些理解和体会给大家做个简单介绍,希望大家指教,补充和深入讨论。 毫无疑问,数据流是数据校对工作中首先应该明确的。只有按照数据流进行追踪分析,才能准确地找到问题的源头。一条完整的数据流基本如下:原始数据 >>> 数据源表 >>> BW Extract Structure(DataSource: DB View/SAP Query/FM) >>> BW Transfer Structure >>> BW Communication Structure >>> Data Target(可以生成数据集市,作为BW中其他Data Targer的数据源)>>> Transfer Structure >>> Communication Structure >>> 其他Data Targets
在开发过程中的数据校对,主要采取自下而上的方式,从底层数据源表开始,根据Extractor的逻辑,对Extrac Structure中产生的数据(可用RSA3测试)进行比较。如果该DataSource是自己开发的,那么这里主要需要检查的就是那些view,infoset或FM设计的逻辑是否正确。如果是SAP的BC,那就要根据不同模块的Field Mapping的具体方案进行检查。如果自己定义了扩展字段,那也要检查其逻辑是否正确。这里我说的检查,可以是逻辑上的检查,也可以用Debugging调试。
完成数据源系统上的数据校对以后,就可以模拟上载到BW 中的相关Data Target中。这中间需要重点检查的是Start Routine和Update Rule的配置和ABAP代码的逻辑是否正确。特别是数据上载中经常会用到主数据和其他reference table(比如某个ODS的active table)的数据,这时就要检查那里的数据是否已经准确地“ready”了。同样十分重要的是要检查上载的方式是Full Upload还是Delta,字段更新方式是addition还是overwrite,ODS key fields的设计,aggregates的设计等等。此外,PSA table是数据校对中很有用的工具,它能明白地告诉你问题出在数据源端还是数据转换过程中。
在报表测试和系统上线支持时的数据校对工作其方法和开发过程中是一样的,只不过通常是从数据目标开始,按照数据流自上而下的追溯,刚好和开发过程相反。
下面,我列举一些场景,希望大家一起讨论。 一) 数据在报表和Cube中不一致。 分析:首先,检查Query的定义,确保显示Cube内容时所用的参数和执行报表时所用的是一致的。接着可以检查下列几种可能的情况: 1) 检查Cube是否使用了Aggregates。如果使用了,应检查rollup job是否已经完成。这里可以用RSRT测试报表(选择不使用aggregate选项),检查是否和cube中的数据一致。 2) 检查执行报表的用户的权限的设置。 3) 检查Key Figure的定义,比如exception aggregation,cumulative value的设置等。 4) 检查User Exit (for Bex),Web Interface(for portal) 二)ODS与Cube的数据不一致 (data is loaded from ODS to cube) … ... 三)ODS与ODS的数据不一致(data is loaded from ODS A to ODS B) … ...
|