DataX对接数据脱敏数据的实例
datax对接mysql数据,对姓名只保留姓,名变成**。对这种简单的脱敏,可以不用修改datax源码,直接在配置文件上实现。
//要脱敏的字段在第2个,也就是record.getColumn(1)
{
"job": {
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "root",
"password": "123456",
"column": [
"id",
"name", // 姓名的字段
"age"
],
"splitPk": "",
"connection": [
{
"table": [
"test"
],
"jdbcUrl": [
"jdbc:mysql://127.0.0.1:3306/test"
]
}
]
}
},
"writer": {
"name": "doriswriter",
"parameter": {
"column": [
{
"name": "id",
"type": "INT"
},
{
"name": "name",
"type": "VARCHAR"
},
{
"name": "age",
"type": "INT"
}
],
// 省略其他参数
}
},
// 添加transformer部分
"transformer": [
{
"name": "dx_groovy",
"parameter": {
"code": "Column name = record.getColumn(1);def first = name.asString()[0];def last =null; last= \"*\" * (name.asString().length() - 1);def masked = null; masked = first + last; record.setColumn(1, new StringColumn(masked)); return record;"
}
}],
// 省略其他部分
}
}