9.4.6.2 カスタム・データ変換の開発
カスタム・データ変換の実装は、次の例で示すように、マッチャ・インタフェースとコンバータ・インタフェースを実装することで実現できます。
Replicatプロセスの間に機密フィールドの値をマスクするというシナリオについて考えてみます。- ターゲット列(次の基準に一致する)を構成します:
- カタログ名:
Cat1
- スキーマ名:
Sch1
- 表名:
Sample_Table
- 列名:
Sample_Column
- カタログ名:
- 変換の実装を含めてコンバータを構成します。
- 前述の条件に一致した列の列値を、マスクした値に置き換えます
@Matcher(id = "matcher1", description = "Custom target column matcher.") public class CustomTargetMatcher implements TargetMatcher { @Override public boolean matches(final TableMetaData tableMetaData) { return tableMetaData.getCatalogName().equals("Cat1") && tableMetaData.getSchemaName().equals("Sch1") && tableMetaData.getTableName().equals("Sample_Table"); } @Override public boolean matches(final ColumnMetaData columnMetaData) { return columnMetaData.getColumnName().equals("Sample_Column"); } } @Converter(id = "converter1", description = "Custom data converter.") public class CustomConverter implements DataConverter { public String convert(String originalData, final TableMetaData tableMetaData, final ColumnMetaData columnMetaData) { return "********"; // Masked Value } }
この実装のアダプタ・プロパティ
gg.transforms=t1 # This config corresponds to the @Matcher => id param gg.transform.t1.matcher=matcher1 # This config corresponds to the @Converter => id param gg.transform.t1.converter=converter1
カスタム・クラスを使用するには:
カスタム・クラスをJARに配置し、それらをクラスパスに含めます。Javaプロパティ(jvm.bootoptions
プロパティでのjava.class.path
を使用)を使用して、またはgg.classpath
で、カスタムJARファイルをJVMクラスパスに含めます。
親トピック: データ変換の構成