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)要求必须填写地址、银行信息、税号等,若源系统客户主数据中这些字段缺失,迁移前必须补全或制定默认值策略。

建议在剖析阶段建立“字段—规则—阈值”对照表,明确每个字段的质量规则和可接受阈值。例如:客户名称空值率≤1%,国家代码空值率≤0.5%,税号空值率≤2%。超过阈值的字段必须进入数据清洗清单。

四、数据质量基线报告:把发现变成可执行的依据

数据质量基线报告是本节的核心交付物,它应包含以下内容:

  • 数据资产清单:表名、业务对象、记录数、迁移优先级。
  • 质量指标汇总:各字段的空值率、重复率、格式异常率、引用完整性缺失率。
  • 问题清单:按严重程度分级(高/中/低),标注影响范围和建议处理方式。
  • 基线阈值:明确可接受的质量标准,作为后续清洗和验证的对照基准。
  • 责任人与时间计划:每类问题的清洗责任方和完成时间。

以下是一个简化的基线报告示例表格(数据为教学假设):

对象字段问题类型问题数量占比严重程度建议措施
客户主数据LAND1空值3,6003.0%高补全或按默认国家赋值
客户主数据ORT01空值8,4007.0%中从地址字段提取或人工补录
物料主数据MATNR重复4201.2%高合并重复物料,保留唯一主记录
供应商主数据STCD1格式异常1,1505.8%中统一税号格式,去除特殊字符
销售订单KUNNR引用断裂2600.9%高补建客户主数据或修正订单

基线报告不是一次性文档,而应在数据清洗过程中持续更新。每次清洗后重新剖析,对比基线指标,确认问题是否收敛。只有基线指标达到预设阈值,才能进入下一阶段的迁移模拟。

源系统数据剖析与质量评估流程 ① 数据发现 • 业务对象清单 • 技术表/字段元数据 • 数据量与增长趋势 • 自开发表/自定义字段 ② 数据剖析 • 空值率统计 • 值分布与格式一致性 • 唯一性与引用完整性 • 阈值对照与异常标记 ③ 重复与缺失分析 • 业务主键重复识别 • 模糊匹配与近似重复 • 必填/关键字段缺失 • 问题分级与责任分配 ④ 数据质量基线报告 数据资产清单 | 质量指标汇总 | 问题清单与分级 | 基线阈值 | 责任人与时间计划 (示例:客户LAND1空值率3.0%→高;物料MATNR重复420条→高;供应商STCD1格式异常5.8%→中) ⑤ 数据清洗与迭代验证 清洗后重新剖析 → 对比基线 → 收敛达标 → 进入迁移模拟 迭代反馈

通过上述流程,项目团队可以在迁移前获得一份清晰的数据质量基线,明确哪些数据可以直接迁移、哪些需要清洗、哪些需要业务部门确认。基线报告不仅是技术文档,更是与业务方沟通数据问题的共同语言。建议在项目早期就建立基线,并在每个清洗周期后更新指标,确保数据质量持续收敛,为后续的迁移模拟和正式切换奠定可靠基础。