【发布时间】:2016-09-07 20:49:04
【问题描述】:
我有输入字段change_event(json 数据类型),看起来像
[
{
"fieldName":"address",
"oldValue":{
"addressLine1":"36 ABC St",
"addressLine2":"Suite 1200",
"city":"Toronto",
"stateProvince":"ON",
"zipPostalCode":"M5C111",
"country":null
},
"newValue":{
"addressLine1":"36 ABC St",
"addressLine2":"Suite 1200",
"city":"Toronto",
"stateProvince":"ON",
"zipPostalCode":"M5C111",
"country":""
},
"reason":null
},
{
"fieldName":"email",
"oldValue":"test@gmail.com",
"newValue":"testemail@gmail.com",
"reason":null
},
{
"fieldName":"DATE_OF_BIRTH",
"oldValue":"1901-01-01",
"newValue":"1901-1-1",
"reason":null
},
{
"fieldName":"IS_VALIDATED",
"oldValue":"true",
"newValue":"true",
"reason":null
},
{
"fieldName":"MOBILE_NUMBER",
"oldValue":null,
"newValue":"",
"reason":null
},
{
"fieldName":"SALUTATION",
"oldValue":"",
"newValue":"Dr.",
"reason":null
},
{
"fieldName":"LANGUAGE",
"oldValue":"en",
"newValue":"en",
"reason":null
},
{
"fieldName":"firstName",
"oldValue":"JOHN",
"newValue":"JOHN",
"reason":null
},
{
"fieldName":"lastName",
"oldValue":"DOE",
"newValue":"DOE",
"reason":null
}
]
我的要求是在将change_event 字段加载到数据仓库之前,在address,firstName, lastName, phoneNumber, and email 中屏蔽oldValue and newValue 其中fieldName。
我尝试在 Pentaho 中使用 Json Inputstep 来做到这一点
之后,我过滤了fieldName 在address,firstName, lastName, phoneNumber, and email 中的行。屏蔽(Postgresql MD5)oldValue and newValue 值。然后尝试使用 Json 输出步骤将所有 fieldName 一起恢复。
但最终结果对于每个 fieldName, oldValue, and newValue 都有单独的 json。
输出:
[{"fieldName":"DATE_OF_BIRTH","oldValue":"1901-01-01", "newValue":"1901-1-1"},{"fieldName":"IS_VALIDATED","oldValue":"true","newValue":"true"}
,{"fieldName":"LANGUAGE","oldValue":"en","newValue":"en"},
{"fieldName":"email","oldValue":"c2f72a3799a2bdb1c852c93466a356c5","newValue":"9cb14b499be76bb04fdbef92f29c744b"},{"fieldName":"MOBILE_NUMBER","oldValue":null,"newValue":null}
,{"fieldName":"SALUTATION","oldValue":null,"newValue":"2aaa2bf3b9a34ee7a4467803f7578f46"},{"fieldName":"firstName","oldValue":"e2577c04131c5b0c7e7580f978322b31","newValue":"e2577c04131c5b0c7e7580f978322b31"},{"fieldName":"lastName","oldValue":"85d05fd9229df84c06f2cbc6267e4fd7","newValue":"85d05fd9229df84c06f2cbc6267e4fd7"},{"fieldName":"address","oldValue":"a9bbba5830f6f33b979d03a9e832723a","newValue":"15e1212eeae2af35bc3deb10a2815e8f"}
]
{"":[{"fieldName":"DATE_OF_BIRTH"},{"oldValue":"1901-01-01"},{"newValue":"1901-1-1"},{"fieldName":"IS_VALIDATED"},{"oldValue":"true"},{"newValue":"true"},{"fieldName":"LANGUAGE"},{"oldValue":"en"},{"newValue":"en"},{"fieldName":"address"},{"oldValue":"a9bbba5830f6f33b979d03a9e832723a"},{"newValue":"15e1212eeae2af35bc3deb10a2815e8f"},{"fieldName":"email"},{"oldValue":"c2f72a3799a2bdb1c852c93466a356c5"},{"newValue":"9cb14b499be76bb04fdbef92f29c744b"},{"fieldName":"MOBILE_NUMBER"},{"oldValue":null},{"newValue":null},{"fieldName":"SALUTATION"},{"oldValue":null},{"newValue":"2aaa2bf3b9a34ee7a4467803f7578f46"},{"fieldName":"firstName"},{"oldValue":"e2577c04131c5b0c7e7580f978322b31"},{"newValue":"e2577c04131c5b0c7e7580f978322b31"},{"fieldName":"lastName"},{"oldValue":"85d05fd9229df84c06f2cbc6267e4fd7"},{"newValue":"85d05fd9229df84c06f2cbc6267e4fd7"}]}
期望的输出:
[{"fieldName":"DATE_OF_BIRTH","oldValue":"1901-01-01", "newValue":"1901-1-1"},{"fieldName":"IS_VALIDATED","oldValue":"true","newValue":"true"}
,{"fieldName":"LANGUAGE","oldValue":"en","newValue":"en"},
{"fieldName":"email","oldValue":"c2f72a3799a2bdb1c852c93466a356c5","newValue":"9cb14b499be76bb04fdbef92f29c744b"},{"fieldName":"MOBILE_NUMBER","oldValue":null,"newValue":null}
,{"fieldName":"SALUTATION","oldValue":null,"newValue":"2aaa2bf3b9a34ee7a4467803f7578f46"},{"fieldName":"firstName","oldValue":"e2577c04131c5b0c7e7580f978322b31","newValue":"e2577c04131c5b0c7e7580f978322b31"},{"fieldName":"lastName","oldValue":"85d05fd9229df84c06f2cbc6267e4fd7","newValue":"85d05fd9229df84c06f2cbc6267e4fd7"},{"fieldName":"address","oldValue":"a9bbba5830f6f33b979d03a9e832723a","newValue":"15e1212eeae2af35bc3deb10a2815e8f"}
]
如何获得想要的结果。提前致谢。
【问题讨论】:
-
任何人。谁能帮帮我??
标签: json postgresql pentaho pdi pentaho-data-integration