我应该如何使用 pentaho PDI(勺子)执行数据屏蔽?
How should I perform data masking with pentaho PDI (spoon)?
我会为超过 10 个表执行数据屏蔽,并且每个表都有超过 100 列。
我曾尝试使用 pentaho PDI 工具来屏蔽数据,但我找不到如何用它编写屏蔽数据。
我应该如何使用 Pentaho 执行数据屏蔽?
我认为其中一种方法是使用名为 "replace in String" 的工具,但即使我尝试使用它也无法更改任何字符串。
我的问题是,
- 使用"replace in String"来处理数据是否正确
屏蔽。
- 如果正确,我应该如何填写相应字段中的值?
我想用 * 替换一些值,比方说,值是 "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 的回答也很有效,也许更优雅一些:)
我会为超过 10 个表执行数据屏蔽,并且每个表都有超过 100 列。
我曾尝试使用 pentaho PDI 工具来屏蔽数据,但我找不到如何用它编写屏蔽数据。
我应该如何使用 Pentaho 执行数据屏蔽? 我认为其中一种方法是使用名为 "replace in String" 的工具,但即使我尝试使用它也无法更改任何字符串。
我的问题是,
- 使用"replace in String"来处理数据是否正确 屏蔽。
- 如果正确,我应该如何填写相应字段中的值?
我想用 * 替换一些值,比方说,值是 "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 的回答也很有效,也许更优雅一些:)