EDITING问题:
尝试配置 Debezium MySQL Kafka 连接器,以为例
https://debezium.io/documentation/reference/stable/connectors/mysql.html#mysql-example-configuration https://debezium.io/documentation/reference/stable/connectors/mysql.html#mysql-example-configuration
I have:
- 主机名:“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
and 如何从MySQL服务器获取值?。在这种情况下,如果我想在database.include.list中包含多个数据库,那么atabase.server.name的值是多少?
有什么区别database.server.name
and database.hostname
Per the docs https://debezium.io/documentation/reference/stable/connectors/mysql.html#mysql-connector-properties:
-
database.hostname
: MySQL数据库服务器的IP地址或主机名
-
database.server.name
: 逻辑名称,用于标识特定 MySQL 数据库服务器并提供命名空间/cluster,Debezium 正在其中捕获更改。逻辑名称在所有其他连接器中应该是唯一的,因为它用作接收此连接器发出的事件的所有 Kafka 主题名称的前缀。数据库服务器逻辑名称中只能使用字母数字字符、连字符、点和下划线。
So database.hostname
必须是可以找到数据库的主机/IP。database.server.name
可能fred
or foobar
or sales
or anythingelse
。它只是该数据库的逻辑名称,并在 Kafka 主题中使用(如上所述)。
Without database.server.name
您可能会在摄取名为的表时遇到潜在问题foo
来自两个不同的数据库,使用两个不同的 Debezium 连接器,并且都试图将其存储在名为 Kafka 的主题中foo
。因此文档中的评论是database.server.name
"…提供一个命名空间"
Edit: 对于你的评论,我的回答还是准确的。文档详细主题命名 https://debezium.io/documentation/reference/stable/connectors/mysql.html#mysql-topic-names,具体来说,MySQL 数据库名称在主题的一部分中使用,就像database.server.name
。如果您连接到同一个 MySQL 主机(假设我们将其称为database.server.name=fred
),并从其上的两个数据库中提取数据sales
and warehouse
,并且每个都有一个名为的表audit
,您将得到两个 Kafka 主题:
fred.sales.audit
fred.warehouse.audit
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)