带有正则表达式的debezium表白名单

时间:2018-07-15 05:51:17

标签: regex debezium

我有一些带有bg_和cp_前缀的数据库表,例如“ bg_table1”,“ bg_table2”和“ cp_table1”。还有一些没有任何前缀的表,例如my_table1,user_action等。

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

  • 在第一个连接器中,我要加载名称以 bg _ cp _
  • 开头的表
  • 在第二个连接器中,我想加载其余表- bg _ cp _
  • 开头

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

第一个连接器配置:

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

第二个连接器配置:

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

如果有人可以帮助我解决问题,那就太好了。预先感谢!

1 个答案:

答案 0 :(得分:4)

尝试使用此白名单:

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

Demo

为您的黑名单尝试一下:

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

Demo

第一个模式几乎可以在任何正则表达式引擎上工作。第二种模式使用负前瞻。只有在您的正则表达式引擎支持的情况下,它才起作用。如果没有,那么将很难用您要使用的逻辑来编写模式。

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

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