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

How should I perform data masking with pentaho PDI (spoon)?

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

我曾尝试使用 pentaho PDI 工具来屏蔽数据,但我找不到如何用它编写屏蔽数据。

我应该如何使用 Pentaho 执行数据屏蔽? 我认为其中一种方法是使用名为 "replace in String" 的工具,但即使我尝试使用它也无法更改任何字符串。

我的问题是,

  1. 使用"replace in String"来处理数据是否正确 屏蔽。
  2. 如果正确,我应该如何填写相应字段中的值?

我想用 * 替换一些值,比方说,值是 "this is sample value" 它应该是 "txxx xx xxxxx xxxxe" 像这样的东西。

请帮忙。

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

但是有一种变通方法可以使它更容易

JavaScript-步进str.replace

这可以通过使用 javascript 步来完成,例如:

//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 的回答也很有效,也许更优雅一些:)