我会为超过10个表执行数据屏蔽,每个表有超过100列。
我试图使用pentaho PDI工具屏蔽数据,但我无法知道如何用它来编写屏蔽数据。
我应该如何使用Pentaho执行数据屏蔽? 我认为其中一种方法是使用名为&#34的工具;替换为String"但即使我试图使用它,我也无法改变任何字符串。
我的问题是,
答案 0 :(得分:2)
这不是关于水壶,而是关于正则表达式。 我可以确认“字符串替换”具有奇怪的不可预测的行为,如果在此步骤中使用正则表达式。官方文档中没有“替换字符串”步骤的解释,实际上并不多。 无论如何,您可以使用RegexEvaluation步骤捕获所需的部分并替换原始字符串。
但有一种解决方法可以让它更容易
答案 1 :(得分:1)
这可以通过使用javascript-step来完成,例如:
//variable
var str = data_to_mask;
//first letter
var first = str.match(/^[A-Za-z0-9]/);
//last letter
var last = str.match(/[A-Za-z0-9]$/);
//replace all with "x"
str = str.replace(/[A-Za-z0-9]/gi, "x");
//get the first and the last letter back
str = str.replace(/^[A-Za-z0-9]/, first);
str = str.replace(/[A-Za-z0-9]$/, last);
(Simar的答案也很有效,我想也许它更优雅一点:)