I have input field change_event
(json datatype) which looks something like
[
{
"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
}
]
My requirement is to mask oldValue and newValue
where fieldName
in address,firstName, lastName, phoneNumber, and email
before I load change_event
field into the data warehouse.
I tried to do this in Pentaho by using Json Input
step
After which I filtered the rows where fieldName
in address,firstName, lastName, phoneNumber, and email
. Masked (Postgresql MD5) oldValue and newValue
values. Then tried to bring back all the fieldName's together using Json Output step.
But the end result had individual json's for each fieldName, oldValue, and newValue
.
OUTPUT:
[{"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"}]}
DESIRED OUTPUT:
[{"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"}
]
How to get the desired result. Thanks in advance.