在 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 变换过滤器?