我应该如何使用pentaho PDI(勺子)进行数据屏蔽?

时间:2015-09-18 06:03:34

标签: pentaho kettle pentaho-spoon pdi data-masking

我会为超过10个表执行数据屏蔽,每个表有超过100列。

我试图使用pentaho PDI工具屏蔽数据,但我无法知道如何用它来编写屏蔽数据。

我应该如何使用Pentaho执行数据屏蔽? 我认为其中一种方法是使用名为&#34的工具;替换为String"但即使我试图使用它,我也无法改变任何字符串。

我的问题是,

  1. 是否正确使用"替换字符串"为了做数据 掩蔽。
  2. 如果正确,我应该如何填写相应字段中的值?
  3. 我想用*替换一些值,比如说,值是"这是样本值"它应该是" txxx xx xxxxx xxxxe"有点像这样。

    screen of PDI

    请帮忙。

2 个答案:

答案 0 :(得分:2)

这不是关于水壶,而是关于正则表达式。 我可以确认“字符串替换”具有奇怪的不可预测的行为,如果在此步骤中使用正则表达式。官方文档中没有“替换字符串”步骤的解释,实际上并不多。 无论如何,您可以使用RegexEvaluation步骤捕获所需的部分并替换原始字符串。

但有一种解决方法可以让它更容易

enter image description here

答案 1 :(得分:1)

使用str.replace的JavaScript-Step

这可以通过使用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的答案也很有效,我想也许它更优雅一点:)