基于Pentaho:从Excel补充缺失城市编码至数据库的实现问题
解决Pentaho补充缺失城市编码的步骤
1. 预处理JSON数据(去重)
- 读取JSON文件后,添加
Unique rows步骤,选择城市编码作为唯一键,去除JSON中的重复年度数据,只保留每个城市编码的唯一记录。
2. 读取Excel完整城市列表
- 添加
Microsoft Excel Input步骤,读取包含完整城市编码和名称的Excel文件,确保加载所有城市条目。
3. 筛选Excel中JSON缺失的城市
- 使用
Merge (diff)步骤替代普通Merge:- 主数据源选择Excel完整城市列表,匹配键设为城市编码;
- 对比数据源选择去重后的JSON数据,匹配键同样设为城市编码;
- 设置
Merge (diff)仅保留「主数据源存在但对比数据源不存在」的条目,即JSON中无记录的城市。
4. 标记缺失数据状态
- 添加
Add constants步骤,给筛选出的缺失城市新增字段(如data_status),赋值为无数据,方便后续应用识别。
5. 合并数据并写入数据库
- 若需将原JSON有效数据与补充的缺失数据一同写入,用
Append streams步骤合并两份数据; - 最后通过
Table output步骤将合并后的数据写入目标数据库,确保字段映射正确。
关键注意点
- 确保两个数据源的城市编码字段类型完全一致(如均为字符串/数字),否则会导致匹配失败;
- 若Excel内存在重复城市编码,需先对Excel数据执行
Unique rows去重; - 每一步都用
Preview功能验证数据,确保中间结果符合预期。
内容的提问来源于stack exchange,提问作者DarkXross
相关产品推荐
相关产品推荐

