如何使用GoodData CloudConnect的Normalizer处理PostgreSQL导出的负时间数据
CloudConnect Normalizer处理异常负时间配置方案
配置步骤(Normalizer组件侧)
- 首先在输入字段映射中,将原始时间字符串字段绑定到Normalizer输入源,字段类型设置为
String,不要提前转换为时间格式,避免解析报错直接中断流程 - 新增转换规则,选择「字符串正则匹配+分组输出」模式,匹配规则填写正则
(\d{2}):(\d{2}):-(\d{2}),分别捕获时、分、秒三个有效数值段,将负号放在捕获组外过滤 - 输出拼接表达式设置为
$1:$2:$3,自动过滤负号,直接拼接为合规的正时间字符串 - 若存在更复杂的负时间场景(比如
-00:05:30、00:-12:20等),可将匹配规则升级为-?(\d{2}):-?(\d{2}):-?(\d{2}),输出表达式保持不变,即可全局过滤所有时间分段前的负号 - 转换完成后将输出字段绑定到下游时间类型字段,即可正常解析不会出现格式错误
备选简易方案
如果Normalizer的正则规则配置不生效,可以直接在组件的自定义转换脚本中添加代码实现:
// raw_time为原始时间输入字段,fixed_time为处理后的输出字段 String rawTime = $in.raw_time; String fixedTime = rawTime.replaceAll("-", ""); $out.fixed_time = fixedTime;
该逻辑适配所有带负号的异常时间字符串,配置难度更低,稳定性更高。
相关参考截图
- 原始异常数据示例:

- CloudConnect工作台界面:

- Normalizer组件配置界面:

内容的提问来源于stack exchange,提问作者Anderson Floriano
相关产品推荐
相关产品推荐

