如何在 Pentaho Kettle 中融合行
How to fuse rows in Pentaho Kettle
因此,我正在将 Oracle 数据库移动到 Mongo 数据库。我有一个名为 Work 的 collection,所有的电影、绘画和其他东西都存放在这里。我还有一个名为 Authority 的 collection,所有曾与一件作品互动的人都是(演员、画家等)。 =24=]这样:
"workCS": {
"casting": [
{
"authority": ObjectID("anID"),
"role": [
"actor",
"realisator"
]
}
],
[
{
"authority": ObjectID("otherID"),
"role": [
"actor"
]
}
]
}
所以,我知道如何在 Pentaho Kettle 中创建 manyToMany 联合,所以我在创建 collection 的基本结构时没有问题。但是,我无法找到一种方法来使角色 table 进入铸造 table,并最终得到这样的结果:
"workCS": {
"casting": [
{
"authority": ObjectID("anID"),
"role": [
"actor"
]
}
],
[
{
"authority": ObjectID("anID"),
"role": [
"realisator"
]
}
],
[
{
"authority": ObjectID("otherID"),
"role": [
"actor"
]
}
]
}
这与我们对数据所做的 post 处理不一致。
当我SQL从 Oracle DB 获取数据时,我有这样的东西:
"id"; "LastName"; "FirstName"; "Role";
1; "Radcliffe"; "Daniel"; "Actor";
1; "Radcliffe"; "Daniel"; "Writer";
2; "Grint"; "Rupert"; "Actor";
在Pentaho中有没有融合行的方法,所以这个例子是这样显示的?
"id"; "LastName"; "FirstName"; "Roles";
1; "Radcliffe"; "Daniel"; "Actor, Writer";
2; "Grint"; "Rupert"; "Actor";
您要查找的步骤是 Group by
,角色 Concatenate strings separated by ,
类型 Aggregation
。
您需要将其他三列指定为 Group field
中的键,因为即使唯一真正的键是 Authority_id,如果您不将它们指定为组字段,它们将消失。
也使用 Memory Group by
,除非你有非常非常多的行,在这种情况下使用 Group by
并确保数据按 Authority_id 排序(它们也会自动按名称排序)。
因此,我正在将 Oracle 数据库移动到 Mongo 数据库。我有一个名为 Work 的 collection,所有的电影、绘画和其他东西都存放在这里。我还有一个名为 Authority 的 collection,所有曾与一件作品互动的人都是(演员、画家等)。 =24=]这样:
"workCS": {
"casting": [
{
"authority": ObjectID("anID"),
"role": [
"actor",
"realisator"
]
}
],
[
{
"authority": ObjectID("otherID"),
"role": [
"actor"
]
}
]
}
所以,我知道如何在 Pentaho Kettle 中创建 manyToMany 联合,所以我在创建 collection 的基本结构时没有问题。但是,我无法找到一种方法来使角色 table 进入铸造 table,并最终得到这样的结果:
"workCS": {
"casting": [
{
"authority": ObjectID("anID"),
"role": [
"actor"
]
}
],
[
{
"authority": ObjectID("anID"),
"role": [
"realisator"
]
}
],
[
{
"authority": ObjectID("otherID"),
"role": [
"actor"
]
}
]
}
这与我们对数据所做的 post 处理不一致。
当我SQL从 Oracle DB 获取数据时,我有这样的东西:
"id"; "LastName"; "FirstName"; "Role";
1; "Radcliffe"; "Daniel"; "Actor";
1; "Radcliffe"; "Daniel"; "Writer";
2; "Grint"; "Rupert"; "Actor";
在Pentaho中有没有融合行的方法,所以这个例子是这样显示的?
"id"; "LastName"; "FirstName"; "Roles";
1; "Radcliffe"; "Daniel"; "Actor, Writer";
2; "Grint"; "Rupert"; "Actor";
您要查找的步骤是 Group by
,角色 Concatenate strings separated by ,
类型 Aggregation
。
您需要将其他三列指定为 Group field
中的键,因为即使唯一真正的键是 Authority_id,如果您不将它们指定为组字段,它们将消失。
也使用 Memory Group by
,除非你有非常非常多的行,在这种情况下使用 Group by
并确保数据按 Authority_id 排序(它们也会自动按名称排序)。