apache-kafka - 如何获取 Kafka Debezium MySQL 连接器的 data

编辑问题:

尝试配置 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 服务器获取值?。在这种情况下,如果我想在 database.include.list 中包含多个数据库,那么 atabase.server.name 的值是多少?

最佳答案

What is the difference between database.server.name and database.hostname

根据 docs :

  • database.hostname: IP address or host name of the MySQL database server
  • database.server.name: Logical name that identifies and provides a namespace for the particular MySQL database server/cluster in which Debezium is capturing changes. The logical name should be unique across all other connectors, since it is used as a prefix for all Kafka topic names that receive events emitted by this connector. Only alphanumeric characters, hyphens, dots and underscores must be used in the database server logical name.

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

如果没有 database.server.name,您可能会遇到潜在的问题,即使用两个不同的 Debezium 连接器从两个不同的数据库中提取一个名为 foo 的表并尝试存储它在名为 foo 的 Kafka 主题中。因此文档中的注释是 database.server.name “...provides a namespace


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

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

关于apache-kafka - 如何获取 Kafka Debezium MySQL 连接器的 database.server.name?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71450836/

相关文章:

javascript - 数组方法练习

rust - 如何在 CLI 应用程序中处理 "./"、 "~/"和相关参数

html - 如何使用 html + Tailwind CSS 使表格可滚动

r - 识别匹配对并创建一个公共(public) key

javascript - 如何根据属性值从单个对象数组创建多个对象数组

c++ - 没有非空函数的返回语句是否是未定义的行为,其中控制永远不会结束?

c++ - 为什么 deques 默认用作堆栈的底层容器,而 vectors 可以做到这一点?

c - 使用宏从一组给定的不同值中查找不等于任何值的值

vue.js - Vitest 与 Quasar 的集成

javascript - Prop 验证中缺少 react / Prop 类型