# 数据脱敏示例
本示例主要介绍数据脱敏组件的使用。
主要步骤如下:
# 准备数据
创建表 userinfo_idcard作为来源表。
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for userinfo_idcard
-- ----------------------------
DROP TABLE IF EXISTS `userinfo_idcard`;
CREATE TABLE `userinfo_idcard` (
`usercode` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户编码',
`username` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户姓名',
`idcard` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '身份证号',
`sex` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '性别',
`age` int(11) NULL DEFAULT NULL COMMENT '年龄',
`unitcode` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '所属单位',
`deptcode` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '所属部门',
`telephone` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '联系方式',
`createtime` date NULL DEFAULT NULL COMMENT '创建时间',
`updatetime` date NULL DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`usercode`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of userinfo_idcard
-- ----------------------------
INSERT INTO `userinfo_idcard` VALUES ('1', '张聪', '110101199001011990', '男', 30, '普元信息', '技术部', '18091256632', '2018-12-13', '2018-12-13');
INSERT INTO `userinfo_idcard` VALUES ('10', '王林', '120103200506163498', '男', 25, '普元信息', '技术部', '15901214578', '2018-12-13', '2018-12-13');
INSERT INTO `userinfo_idcard` VALUES ('101', '张三', '110101199001013195', '男', 35, '普元', '技术部', '11112222999', '2019-01-01', '2023-03-12');
INSERT INTO `userinfo_idcard` VALUES ('2', '王强', '130302199305141517', '男', 25, '普元信息', '售后', '15389012334', '2018-12-13', '2018-12-13');
INSERT INTO `userinfo_idcard` VALUES ('3', '魏雨', '130302199305141082', '女', 26, '普元信息', '售后', '15309872351', '2018-12-13', '2018-12-13');
INSERT INTO `userinfo_idcard` VALUES ('4', '刘飞', '450421200007167799', '男', 25, '普元信息', '事业部', '15091345789', '2018-12-13', '2019-12-13');
INSERT INTO `userinfo_idcard` VALUES ('5', '许馨', '21020219820216840X', '女', 25, '普元信息', '售后', '13090012019', '2018-12-13', '2023-12-18');
INSERT INTO `userinfo_idcard` VALUES ('6', '蔡亮', '120103200506164191', '男', 24, '普元信息', '技术部', '19081234789', '2018-12-13', '2020-12-13');
INSERT INTO `userinfo_idcard` VALUES ('7', '张强', '450421200506166854', '男', 27, '普元信息', '事业部', '19087652123', '2018-12-13', '2018-12-13');
INSERT INTO `userinfo_idcard` VALUES ('8', '杨孟', '632322199403286619', '男', 30, '普元信息', '事业部', '18790123567', '2018-12-13', '2023-11-14');
INSERT INTO `userinfo_idcard` VALUES ('9', '李建国', '63232219950328707X', '男', 50, '普元信息', '技术部', '15998760132', '2018-12-13', '2018-12-13');
SET FOREIGN_KEY_CHECKS = 1;
# 新建批量作业
在【集成作业】节点下,点击【数据集成】节点上的【...】,选择弹出菜单【新建数据集成作业】。
填写作业名称、选择作业类型"离线转换"。
# 画布中拖拽关系型数据库输入、数据脱敏、写日志图元
分别用鼠标拖拽"关系型数据库输入"、"数据脱敏"和"写日志"图元到画布。当鼠标放置到画布中的"关系型数据库输入"图元上时四周会显示"连接桩",此时拖住鼠标将"关系型数据库输入"与"数据脱敏"连接起来。
# 配置"关系型数据库输入"组件属性
在"关系型数据库输入"图元上右键,点击【编辑】按钮,弹出"关系型数据库输入"组件的弹窗。通过下拉框选择数据源。
选择库/schema,点击【获取SQL查询语句】,选择一个表名后点击【确定】按钮,SQL 语句自动回填到编辑框。用户也可以自行编写 SQL 语句。
# 配置"数据脱敏"组件属性
在"数据脱敏"图元上右键,点击【编辑】按钮,弹出"数据脱敏"组件的弹窗。
获取字段后,配置各字段加密算法,其中REVERSIBLE_REG_REPLACE
算法需要指定字符参数
和替换字符
。
正则替换身份证: 身份证保留前六位和后四位,中间用号加密 ,选择REVERSIBLE_REG_REPLACE 算法,字符参数填: (\d{6})\d([0-9a-zA-Z]{4}) 替换字符:$1******$2
# 配置"写日志"组件属性
在"写日志"图元上右键,点击【编辑】按钮,弹出"写日志"组件的弹窗。
点击获取字段按钮并点击确定保存
# 通用配置
在通用配置中可以配置任务优先级、Worker 分组、命名参数、本地参数、超时告警。 修改属性后请务必点击【确定】按钮。
# 运行
点击【运行】按钮,可以运行已经开发完毕的场景,在日志栏可以看运行日志及运行结果,日志中显示数据已脱敏输出。
# 提交版本
当草稿运行正常后,点击【提交】按钮可以将该版本提交到作业调度,每次修改提交都会生成新的版本,可以看到提交的历史版本,并可以随意切换版本。
提交后的版本,可以在作业调度中进行"定时"调度配置。