如何在 Kafka Source Connector 中编写自定义 SMT 来混淆私有数据
How to write custom SMT in Kafka Source Connector to obfuscate private data
假设我想设置一个 Kafka 源连接器以将一些数据从我的数据库泵入我的 Kafka。现在,假设出于安全原因,我想对我的数据库中的某些列进行混淆处理(例如,应用哈希函数)。是否有使用 Kafka Connect 的标准方法,或者我是否必须首先创建私人主题,然后编写一些自定义代码来创建这些主题的 public 个版本(敏感数据具有哈希值)?
我知道有转换(MaskField 等)之类的东西,但是 none 似乎可以解决我的问题。例如,MaskField 会做类似 +1-234-567-8987 -> “--****”之类的事情,我不会这样做想要发生,因为我仍然想为不同的输入值设置不同的条目。
Kafka Connect 使编写您自己的单一消息转换 (SMT) 变得非常方便。如果 none 个默认转换符合您的目的,您可以构建自定义转换程序。
这个blog explains how to build your own, together with a full example provided on GitHub:
您需要实施 Transformation<R>
并使用您的自定义算法覆盖 apply()
方法来处理个人相关数据。
当您将该代码编译为 JAR 并通过 Connect worker 属性文件中指定的 plugin.path
使其可用于 Kafka Connect 时,然后可以在连接器属性中配置转换。
假设我想设置一个 Kafka 源连接器以将一些数据从我的数据库泵入我的 Kafka。现在,假设出于安全原因,我想对我的数据库中的某些列进行混淆处理(例如,应用哈希函数)。是否有使用 Kafka Connect 的标准方法,或者我是否必须首先创建私人主题,然后编写一些自定义代码来创建这些主题的 public 个版本(敏感数据具有哈希值)?
我知道有转换(MaskField 等)之类的东西,但是 none 似乎可以解决我的问题。例如,MaskField 会做类似 +1-234-567-8987 -> “--****”之类的事情,我不会这样做想要发生,因为我仍然想为不同的输入值设置不同的条目。
Kafka Connect 使编写您自己的单一消息转换 (SMT) 变得非常方便。如果 none 个默认转换符合您的目的,您可以构建自定义转换程序。
这个blog explains how to build your own, together with a full example provided on GitHub:
您需要实施 Transformation<R>
并使用您的自定义算法覆盖 apply()
方法来处理个人相关数据。
当您将该代码编译为 JAR 并通过 Connect worker 属性文件中指定的 plugin.path
使其可用于 Kafka Connect 时,然后可以在连接器属性中配置转换。