脏数据处理办法
在数据库数据录入过程中,可能因为录入方式不一致、拼写差异、空值等问题产生脏数据,这可能会影响相关字段的问答和数据分析。
脏数据示例
以产品表的 brand(品牌)字段为例,同一个真实品牌可能因为录入方式不同产生以下脏数据:
这些值实际指向同一个品牌,但形式各异——简称/全称混用、中英文混用、大小写不一致、多余空格、空值等,需要清洗统一。
解决方案
方案一:SQL 清洗
接入数据表时,可以在 Schema 配置的 SQL 中直接编写清洗规则,将整段 SQL 作为模型的数据集。这种方式在数据接入层统一处理,后续所有基于该 Schema 的问答都会使用清洗后的结果。
以 CASE WHEN 进行清洗:
方案二:字段映射
针对偶发的脏数据问题,可以在单个字段上编写临时清洗逻辑,跳过原表数据的直接使用。
配置入口: 系统搭建 → 业务建模 → Schema 管理,找到目标 Schema 的具体字段,点击编辑,在 高级 下方的 字段映射 框中,即可用所选数据源的语法编写清洗表达式。
以 ClickHouse 的 multiIf 语法为例:
清洗效果
两种方案的清洗结果一致:
清洗逻辑将 brand 分为三类:
- 空值/无效值(NULL、空字符串、未知、null)→ 归为
其他 - 同一品牌的多种写法(大小写、简称、全称、带空格)→ 统一为
诺星科技 - 其余正常值 → 保留原始值并去除首尾空格
方案对比
注意事项
字段映射本质上是用于处理特殊业务逻辑的配置(如字段值转换、分类归并等),并非专门为清洗脏数据而设计。上文示例仅展示了借助该能力间接处理脏数据的一种做法,适用范围有限。
如果脏数据过多,大量依赖字段映射来清洗会显著增加实施成本和维护负担,偏离该配置的设计初衷。建议企业在接入系统前,优先从源头保证数据质量。优质的数据,方能更好地发挥 DataAgent 的能力。

