4. 源系统数据剖析与质量评估
在S/4HANA迁移项目中,源系统的数据质量直接决定迁移的成败。很多项目在数据加载阶段才发现大量重复、缺失或格式错误的数据,导致迁移周期延长、业务中断甚至数据丢失。因此,在正式迁移之前,必须对源系统进行系统性的数据剖析与质量评估,输出一份可量化、可追溯的数据质量基线报告。本节将围绕数据发现、数据剖析、重复与缺失分析三个核心环节,说明如何执行并形成基线报告。
一、数据发现:先搞清楚“有什么”
数据发现的目标是建立源系统的数据资产清单,明确哪些表、字段、对象与S/4HANA目标模型相关。实际操作中,可以从以下三个维度展开:
- 业务对象维度:梳理客户、供应商、物料、BOM、采购订单、销售订单、会计凭证等主数据与交易数据对象,标记哪些需要迁移、哪些仅归档、哪些废弃。
- 技术对象维度:通过源系统数据字典(如SAP ECC中的DD03L、DD02L)或数据库元数据,列出相关表名、字段名、数据类型、长度、主键与外键关系。
- 数据量维度:统计每张表的记录数、增长趋势、历史分区情况,为后续迁移策略(全量/增量、分批次)提供依据。
例如,在ECC系统中执行SE16或DB02查看MARA、KNA1、LFA1、VBAK等表的记录数,并记录最近一年的月增长量。若某表记录数超过千万级,就需要考虑分片或并行抽取方案。数据发现阶段还应识别自开发表(Z表/Y表)和自定义字段,这些往往是迁移中最容易被遗漏的部分。
二、数据剖析:用统计方法看清“质量如何”
数据剖析是对字段级和记录级数据进行统计分析,识别异常模式。常用的剖析维度包括:
- 空值率:统计关键字段的空值或初始值比例。例如,客户主数据中“国家代码”为空的比例若超过5%,将直接影响S/4HANA的税务和地址校验。
- 值分布:查看字段取值是否在预期范围内。如物料类型字段应只出现FERT、HALB、ROH等标准值,若出现大量自定义值,需要评估是否在目标系统中存在对应配置。
- 格式一致性:检查日期、金额、单位、编码等格式是否统一。例如,日期字段存在“20230101”和“01.01.2023”两种格式,迁移时需统一转换。
- 唯一性:检查主键或业务键是否唯一,识别重复记录。
- 引用完整性:检查外键关联是否断裂,如销售订单中的客户编号在客户主数据中不存在。
剖析工具方面,可以使用SAP Information Steward、SQL脚本、Python/Pandas或ETL工具自带的数据质量模块。以下是一个简单的SQL示例,用于统计客户主数据中关键字段的空值率:
SELECT
COUNT(*) AS total_records,
SUM(CASE WHEN KUNNR IS NULL OR KUNNR = '' THEN 1 ELSE 0 END) AS empty_kunnr,
SUM(CASE WHEN LAND1 IS NULL OR LAND1 = '' THEN 1 ELSE 0 END) AS empty_land1,
SUM(CASE WHEN ORT01 IS NULL OR ORT01 = '' THEN 1 ELSE 0 END) AS empty_ort01
FROM KNA1;
假设某项目源系统KNA1表共有120,000条客户记录,其中LAND1为空的有3,600条,空值率为3%;ORT01为空的有8,400条,空值率为7%。这些数据将作为基线报告中的量化指标。
三、重复与缺失分析:定位“问题在哪里”
重复分析的重点是识别业务主键重复或近似重复的记录。例如,同一客户因不同销售组织或不同录入时间被创建多次,表现为KUNNR不同但名称、地址、税号相同。可以使用模糊匹配算法(如Levenshtein距离)或SAP的重复检查规则进行识别。对于物料主数据,重复通常表现为同一物料在不同工厂下重复创建,或名称相似但编码不同。
缺失分析则关注必填字段、关键字段和业务规则要求的字段是否缺失。例如,S/4HANA中业务伙伴(Business Partner)要求必须填写地址、银行信息、税号等,若源系统客户主数据中这些字段缺失,迁移前必须补全或制定默认值策略。
四、数据质量基线报告:把发现变成可执行的依据
数据质量基线报告是本节的核心交付物,它应包含以下内容:
- 数据资产清单:表名、业务对象、记录数、迁移优先级。
- 质量指标汇总:各字段的空值率、重复率、格式异常率、引用完整性缺失率。
- 问题清单:按严重程度分级(高/中/低),标注影响范围和建议处理方式。
- 基线阈值:明确可接受的质量标准,作为后续清洗和验证的对照基准。
- 责任人与时间计划:每类问题的清洗责任方和完成时间。
以下是一个简化的基线报告示例表格(数据为教学假设):
| 对象 | 字段 | 问题类型 | 问题数量 | 占比 | 严重程度 | 建议措施 |
|---|---|---|---|---|---|---|
| 客户主数据 | LAND1 | 空值 | 3,600 | 3.0% | 高 | 补全或按默认国家赋值 |
| 客户主数据 | ORT01 | 空值 | 8,400 | 7.0% | 中 | 从地址字段提取或人工补录 |
| 物料主数据 | MATNR | 重复 | 420 | 1.2% | 高 | 合并重复物料,保留唯一主记录 |
| 供应商主数据 | STCD1 | 格式异常 | 1,150 | 5.8% | 中 | 统一税号格式,去除特殊字符 |
| 销售订单 | KUNNR | 引用断裂 | 260 | 0.9% | 高 | 补建客户主数据或修正订单 |
基线报告不是一次性文档,而应在数据清洗过程中持续更新。每次清洗后重新剖析,对比基线指标,确认问题是否收敛。只有基线指标达到预设阈值,才能进入下一阶段的迁移模拟。
通过上述流程,项目团队可以在迁移前获得一份清晰的数据质量基线,明确哪些数据可以直接迁移、哪些需要清洗、哪些需要业务部门确认。基线报告不仅是技术文档,更是与业务方沟通数据问题的共同语言。建议在项目早期就建立基线,并在每个清洗周期后更新指标,确保数据质量持续收敛,为后续的迁移模拟和正式切换奠定可靠基础。