技术标签: Kettle 数据脱敏 脱敏 脱敏技术 mysql 数据脱敏
CSDN 脱敏后为 C**N //4-2 = 2 个 *
abcdefg 脱敏后为 a*****g //7-2 =5 个 *
即在中间输出:(字符串的长度-2)个 *
步骤:
1. 数据库中各个字段以及内容
在这里我们可以看到爬取时间后面有时分秒,用户名也是完整显示
2. 添加JAVA代码进行用户名动态脱敏
代码位于Processor部分,红框中的代码是动态处理的部分,
import java.util.*;
import java.util.Collections;
public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException
{
if (first){
first = false;
}
Object[] r = getRow();
if (r == null) {
setOutputDone();
return false;
}
// It is always safest to call createOutputRow() to ensure that your output row's Object[] is large
// enough to handle any new fields you are creating in this step.
r = createOutputRow(r, data.outputRowMeta.size());
/* TODO: Your code here. (See Sample)
// Get the value from an input field
String foobar = get(Fields.In, "a_fieldname").getString(r);
foobar += "bar";
// Set a value in a new output field
get(Fields.Out, "output_fieldname").setValue(r, foobar);
*/
String id = get(Fields.In, "评论者ID").getString(r);//获取输入
int len = id.length();
if (len == 1) {
id = "*";
}
else if (len == 2) {
id = id.charAt(0)+"*";
}
else {
String replace = String.join("", Collections.nCopies(len-2, "*"));
id = id.charAt(0)+replace+id.charAt(len-1);
}
get(Fields.Out, "评论者ID_mask").setValue(r, id);
// Send the row on to the next step.
putRow(data.outputRowMeta, r);//输出
return true;
}
3. 使用字段选择实现时间模糊
4.添加excel输出,输出到xls文件
5.连接控件
6.启动并输出结果
存储引擎1.简介类似Linux的文件系统,比文件系统要高级。2.MySQL存储引擎类型(笔试:3-4种)InnoDB 5.5以后默认的存储引擎。select @@default_+------------------------------+| @@default_tmp_storage_engine |+------------------------------..._独立表空间迁移全备单库
预计阅读时间: 13分钟json 格式使用非常方便,通常情况下我们反序列化的时候需要指定具体类型。如果遇到继承类型可能会解析失败。今天总结下基于类型扩展的子类自动适配,能够实现反序列化时按..._jackson 反序列化子类
语法public String replaceAll(String regex, String replacement)参数regex:regex–正则表达式代表在该字符串中通过正则表达式查找符合添加的子字符串replacement:需要替换的需要的字符串返回值成功则返回替换的字符串,失败则返回原始字符串。案例:手机号隐藏 String phone = "12345678910"; String replace = phone.replaceAll("(\\d{_string的replaceall
点击上方“码农突围”,马上关注这里是码农充电第一站,回复“666”,获取一份专属大礼包真爱,请设置“星标”或点个“在看”作者:黄哲铿 |编辑:玲玲来源:公众号@技术领导力标题来源于一..._百万年薪。技术总监
十六进制转byte在Java中想把 FD 转成 byte,首先想到的是byte v = Byte.parseByte(“FD”, 16);结果得到一个java.lang.NumberFormatException,说值的范围越界了。是的,byte的范围是-128~127,如果把9D当成正数来转换,结果是157,当然越界了。所以有这样三个处理办法byte v = (byte) Integ..._16进制转byte
计算机组成原理笔记(王道考研) 第二章:数据的表示和运算1_8位字长的计算机怎么计算int
首先cpu爆满一样是出现循环无法结束的情况,还是查看linux进程和进程对应的线程,用堆栈信息打印当前运行情况,不多说,看命令:1. 先查进程: ps -ef|grep java2.查进程对应线程,按cpu使用率排序:top -Hp 29923.线程号需要转换成16进制,网上有在线工具,例如4.打印堆栈信息:jstack 2992|grep -C30 cb9这样就能定位问题大致出现在哪里..._jpa一万条数据cpu爆了
torch.bmm(batch1, batch2, out=None) → Tensor参数:batch1 (Tensor) – 第一批相乘矩阵 batch2 (Tensor) – 第二批相乘矩阵 out (Tensor, optional) – 输出张量举例import torch batch1 = torch.randn(8, 2, 6) batch2 ..._pytorch torch.bmm
在工业领域对智慧安全体系的逐渐拓展完善过程中,UWB定位技术受到越来越多的重视,本篇文章将对UWB的硬件设施部分进行阐述,让读者能够更快速的理解UWB在工业中是如何精准定位的。UWB的定位原则人员定位技术在工业领域中的应用会根据不同的需求进行不同模式的定位,主要分为存在性的零维定位、只需要检测相对位置的一维定位、区域内精准需求的二维和对高度有一定要求的三维定位。零维定位,也被称作存在性检测,区域内安装1台定位基站,可实现区域内人员的存在性检测和统计,一般用于小型房间等区域。一维定位,一维定位主要应用_简述uwb
首先,让我对IE浏览器致以最热烈的问候:我次奥~当页面上内嵌了iframe,同时此iframe中还内嵌了iframe,弹出窗口后,原来textarea中编辑的光标位置就会丢失。在chorme和firefox下不会出现此问题。解决方法:在textarea的mouse和key事件中保存当前光标位置,然后在窗口关闭时还原。1.保存光标位置var ieSelectionBookmark;_textarea 丢失光标
在android中如果需要录制PCM流需要用到AudioRecord这个类,然后播放的话需要用AudioTrack先看下效果图:好了我们先看下如何录制PCM,看下核心代码 try { //输出流 OutputStream os = new FileOutputStream(recordFile); BufferedOutputStream bos = new BufferedOutputStream(os); _pcm流
一、前言最近参加了几轮面试,发现很多5-7年工作经验的候选人在性能优化这一块,基本上只能说出传统的分析方式,例如ANR分析,是通过查看/data/anr/ 下的log,分析主线程堆栈、cpu、锁信息等,然而,这种方法有一定的局限性,并不是每次都奏效,很多时候是没有堆栈信息给你分析的,例如有些高版本设备需要root权限才能访问/data/anr/ 目录,或者是线上用户的反馈,只有一张ANR的截图加上一句话描述。假如你的App没有实现ANR监控上报,那么你大概率会把这个问题当成“未复现”处理掉,而没有真正_死锁导致anr