debezium table 正则表达式白名单

debezium table whitelist with regular expression

我有一些带有 bg_ 和 cp_ 前缀的数据库 table,例如 "bg_table1"、"bg_table2" 和 "cp_table1"。还有一些其他 table 没有my_table1、user_action 等任何前缀。

我有两个 debezium postgreSQL 连接器并尝试按照 Debezium - http://debezium.io/docs/connectors/postgresql/#connector-properties 配置 table.whitelist 属性。我的要求如下:

我在连接器配置中使用类似下面的内容,但不起作用:

第一个连接器配置:

"table.whitelist": "public.bg_*,public.cp_*" 

第二个连接器配置:

"table.whitelist": ""  Cannot figure out need your help

如果有人能帮我弄明白就太好了。提前致谢!

为您的白名单试试这个:

"table.whitelist": "public\.(bg|cp)_.*"

Demo

并为您的黑名单试试这个:

"table.whitelist": "public\.(?!(bg|cp)_)[^_]+_.*"

Demo

第一个模式应该适用于任何正则表达式引擎。第二种模式使用负前瞻。它只有在您的正则表达式引擎支持的情况下才有效。如果不是,那么用您想要使用的逻辑编写模式将更加困难。

注意:在 Java 代码的上下文中,您可能需要加倍反斜杠以转义点之类的内容。也就是说,您可能必须使用以下版本,例如

"table.whitelist": "public\.(bg|cp)_.*"