首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获得卡夫卡Debezium database.server.name连接器?

如何获得卡夫卡Debezium database.server.name连接器?
EN

Stack Overflow用户
提问于 2022-03-12 15:25:21
回答 1查看 1.4K关注 0票数 1

编辑问题:

尝试配置debezium MySQL Kafka连接器,例如

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

我有:

  • 主机名:“EC2-xx.Compute.amazonaws.com”
  • 数据库: mycooldb (我的所有表都在里面)

然后设置如下属性:

代码语言:javascript
复制
"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服务器获得值?。在这个场景中,如果我想在database.include.list中包含多个数据库,那么atabase.server.name的值是多少?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-13 09:42:38

database.server.namedatabase.hostname有什么区别?

根据文档

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

因此,database.hostname必须是可以找到数据库的主机/IP。database.server.name可以是fredfoobar,也可以是salesanythingelse。它只是该数据库的逻辑名称,并在Kafka主题中使用(如上文所述)。

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

编辑:关于你的评论,我的回答仍然是准确的。docs 细节主题命名,特别是在主题的一部分中使用MySQL数据库名称的事实,以及database.server.name。如果您连接到同一个MySQL主机(假设我们称之为database.server.name=fred),并从其中的两个数据库(名为saleswarehouse )中提取数据,并且每个数据库都有一个名为audit的表,那么您将有两个最终的Kafka主题:

  • fred.sales.audit
  • fred.warehouse.audit
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71450836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档