【问题标题】:merge rows in pentaho PDI kettle在 pentaho PDI 水壶中合并行
【发布时间】: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 号案例……你有解决方案吗?

标签: mongodb pentaho kettle pdi


【解决方案1】:

MongoDB 输出 步骤支持影响文档中各个字段的修饰符更新以及将项目添加到列表/数组的 $push 操作。使用这些,您不需要合并任何行,只需将它们全部发送到 MongoDB 输出步骤即可。

在修改器更新激活的情况下,如果案例尚不存在,则将插入下一行,如果存在,则将所有者添加到数组中。

很遗憾,如果您使用相同的传入数据再次运行此转换,则会添加更多所有者副本。我还没有找到解决这个问题的方法,所以我希望你的用例中没有这个问题。

也许如果您拆分数据并使用每个案例的第一条记录插入/替换,然后为第二条和以后的记录执行 $push 更新,您可以管理它。

【讨论】:

  • 您好,感谢您的回复。不幸的是,我无法使其正常工作。我想知道我应该为数据类型添加什么。选项只有字符串、数字、日期、布尔值、整数、大数字、二进制、时间戳、互联网地址。也许,如果您可以共享一个 .ktr 文件,它会很有帮助。 (当你显然有时间的时候)是的,当然我会有不止 1 个案例
  • 我重写了答案以使用 MongoDB 输出的内置功能,而不是从头开始构建文档布局。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多