2

10 を超えるテーブルに対してデータ マスキングを実行し、各テーブルには 100 を超える列があります。

pentaho PDI ツールを使用してデータをマスクしようとしましたが、マスク データをどのように記述すればよいかわかりませんでした。

Pentaho でデータ マスキングを実行するにはどうすればよいですか? 「文字列置換」というツールを使うのも一つの方法だと思いますが、使ってみても文字列を変更することができませんでした。

私の質問は、

  1. データマスキングを行うために「文字列で置換」を使用するのは正しい方法ですか。
  2. 正しい場合、それぞれのフィールドにどのように値を入力すればよいですか?

一部の値を * に置き換えたいとします。たとえば、値は「これはサンプル値です」であり、「txxx xx xxxxx xxxxe」のようなものである必要があります。

PDIの画面

助けてください。

4

2 に答える 2

2

やかんではなく、正規表現についてです。このステップ内で正規表現を使用した場合、「文字列置換」が奇妙な予測不可能な動作をすることを確認できます。公式ドキュメントにも「文字列の置換」ステップの説明はありませんが、実際にはあまりありません。とにかく、RegexEvaluation ステップを使用して、必要な部分をキャプチャし、元の文字列内を置き換えることができます。

しかし、それを簡単にする回避策があります

ここに画像の説明を入力

于 2015-09-18T08:24:35.830 に答える
1

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の答えも同様に機能すると思いますが、もう少しエレガントだと思います:)

于 2015-09-18T08:36:34.703 に答える