如何获取Kafka Debezium MySQL连接器的数据库.server.name? [英] How to get database.server.name for Kafka Debezium MySQL connector?

查看:0
本文介绍了如何获取Kafka Debezium MySQL连接器的数据库.server.name?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

编辑问题:

尝试配置debezium MySQL Kafka连接器,以

https://debezium.io/documentation/reference/stable/connectors/mysql.html#mysql-example-configuration

我有:

  • 主机名:";ec2-xxx.compute.amazonaws.com";
  • 数据库:myCooldb(里面有我所有的表)

然后我设置了以下属性:

"database.hostname": "ec2-xxx.compute.amazonaws.com"
"database.include.list": "mycooldb"

而debezium有另一个属性,称为";database.server.name";。如何在MySQL服务器中找到服务器名值?

一台服务器可以有多个数据库,然后在database.include.list中可以包括数据库列表。

database.hostname是主机名或IP的。

我不确定什么是database.server.name如何从MySQL服务器获取值?。在这个场景中,如果我想要将多个数据库包含在antiase.cludde.list中,那么atabase.server.name的值是多少?

推荐答案

database.server.namedatabase.hostname

根据docs

  • database.hostnameMySQL数据库服务器的IP地址或主机名
  • database.server.name标识特定MySQL数据库服务器并为其提供命名空间的逻辑名称/集群,Debezium在该集群中捕获更改。逻辑名称在所有其他连接器中应该是唯一的,因为它用作接收该连接器发出的事件的所有Kafka主题名称的前缀。数据库服务器逻辑名称中只能使用字母数字字符、连字符、圆点和下划线。

sodatabase.hostname必须是数据库所在的主机/IP。database.server.name可以是fredfoobarsalesanythingelse。它只是数据库逻辑名称,并在Kafka主题中使用(如上所述)。

如果没有database.server.name,您可能会遇到一个问题,即使用两个不同的Debezium连接器从两个不同的数据库中摄取一个名为foo的表,并且两个数据库都试图将其存储在一个名为foo的Kafka主题中。因此,文档中的注释database.server.name提供命名空间


编辑:关于您的评论,我的回答仍然是准确的。文档detail topic naming,特别是在主题的一部分中使用了MySQL数据库名称,database.server.name也是如此。如果您连接到同一个MySQL主机(假设我们将其称为database.server.name=fred),并从其上名为saleswarehouse的两个数据库中提取数据,并且每个数据库都有一个名为audit的表,则会有两个Kafka主题:

  • fred.sales.audit
  • fred.warehouse.audit

这篇关于如何获取Kafka Debezium MySQL连接器的数据库.server.name?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆