【问题标题】:How should I perform data masking with pentaho PDI (spoon)?我应该如何使用 pentaho PDI (spoon) 执行数据屏蔽?
【发布时间】:2015-09-18 06:03:33
【问题描述】:

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

我曾尝试使用 pentaho PDI 工具屏蔽数据,但我不知道应该如何使用它编写屏蔽数据。

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

我的问题是,

  1. 使用“替换字符串”来处理数据是否正确? 掩蔽。
  2. 如果正确,应该如何填写相应字段的值?

我想用*替换一些值,比如说,值是“这是样本值”应该是“txxx xx xxxxx xxxe”这样的东西。

请帮忙。

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 这是我想知道的。我可以使用脚本替换数据。
    【解决方案2】:

    带有 str.replace 的 JavaScript 步骤

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

    【讨论】:

    • 感谢您的回答,但我想知道如何在水壶中设置 JavaScript。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多