在 pentaho PDI 水壶中合并行
Posted
技术标签:
【中文标题】在 pentaho PDI 水壶中合并行【英文标题】:merge rows in pentaho PDI kettle 【发布时间】:2017-04-21 04:11:15 【问题描述】:我想知道是否可以在 pentaho 中合并 2 行或更多行?
示例: 我有 2 行
case:'001',
owner:'Barack'
date:'2017-04-10'
case:'001',
owner:'Trump'
date:'2017-02-10'
然后我想要一个 mongoDB 输出:
case:'001'
ownerHistory:[
owner:'Barack'
date:'2017-04-10'
,
owner:'Trump'
date:'2017-02-10'
]
【问题讨论】:
您的示例输入在第二行有案例 002,这是一个错误还是您选择要合并的行的另一种方法? 谢谢赛勒斯,这是我的错误。应该是 001 号案例……你有解决方案吗? 【参考方案1】:MongoDB 输出 步骤支持影响文档中各个字段的修饰符更新以及将项目添加到列表/数组的 $push 操作。使用这些,您不需要合并任何行,只需将它们全部发送到 MongoDB 输出步骤即可。
在修改器更新激活的情况下,如果案例尚不存在,则将插入下一行,如果存在,则将所有者添加到数组中。
很遗憾,如果您使用相同的传入数据再次运行此转换,则会添加更多所有者副本。我还没有找到解决这个问题的方法,所以我希望你的用例中没有这个问题。
也许如果您拆分数据并使用每个案例的第一条记录插入/替换,然后为第二条和以后的记录执行 $push 更新,您可以管理它。
【讨论】:
您好,感谢您的回复。不幸的是,我无法使其正常工作。我想知道我应该为数据类型添加什么。选项只有字符串、数字、日期、布尔值、整数、大数字、二进制、时间戳、互联网地址。也许,如果您可以共享一个 .ktr 文件,它会很有帮助。 (当你显然有时间的时候)是的,当然我会有不止 1 个案例 我重写了答案以使用 MongoDB 输出的内置功能,而不是从头开始构建文档布局。以上是关于在 pentaho PDI 水壶中合并行的主要内容,如果未能解决你的问题,请参考以下文章