在 Debezium 1.5 中使用过滤器变换

Posted

技术标签:

【中文标题】在 Debezium 1.5 中使用过滤器变换【英文标题】:Using the filter transform in Debezium 1.5 【发布时间】:2021-06-01 23:26:22 【问题描述】:

我想过滤我创建的源连接器中的一些记录。 该图像包含/kafka/connect/debezium-connector-mysql 中的debezium-scripting-1.5.0.Beta1.jar(使用连接基础图像上的属性"ENABLE_DEBEZIUM_SCRIPTING=true" 启用)。

我的连接器具有以下属性:

"transforms": "filter",
"transforms.filter.type": "io.debezium.transforms.Filter"

注册我的源连接器时,无法使用以下堆栈跟踪配置连接器:

Caused by: java.lang.ClassNotFoundException: io.debezium.config.EnumeratedValue
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
        at org.apache.kafka.connect.runtime.isolation.PluginClassLoader.loadClass(PluginClassLoader.java:104)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)

消息很清楚:我没有找到 EnumeratedValue 类(它是 debezium 核心包的一部分)。 但是当我将"transforms"属性改为"unwrap"时,就没有更多的错误了。

【问题讨论】:

你知道如何解决这个问题吗?有同样的问题 【参考方案1】:

这种方法对我有用。 我有 <some-path>/debezium/debezium-connector-mongo/ 文件夹和 plugin.path=<some-path>/debezium 当我启动连接器时,它工作正常。 但是,当我在 <some-path>/debezium/debezium-script/ 文件夹中添加 debezium-script 插件时(在同一 plugin.path 中),出现错误。

所以我将<some-path>/debezium/debezium-script/ 中的所有插件移动到<some-path>/debezium/debezium-connector-mongo/ 中(将两个文件夹合并为一个),这很有效。

【讨论】:

以上是关于在 Debezium 1.5 中使用过滤器变换的主要内容,如果未能解决你的问题,请参考以下文章

在 Firefox 上具有变换 3D 和过滤器模糊的背景中心

具有多个视频帧的 DirectShow 变换过滤器 - 与音频同步

[TensorFlow系列-13]:TensorFlow基础 - 张量的操作 - 筛选过滤

高于 FullHD 分辨率的帧丢失。MediaFoundation 中是不是提供 AVI Decompressor 变换过滤器?

在kafka connect中按某个值过滤记录

[PyTroch系列-13]:PyTorch基础 - 张量的操作 - 筛选过滤