Как настроить Debezium для использования указанного столбца c в качестве ключа сообщения Kafka? - PullRequest
0 голосов
/ 18 марта 2020

По умолчанию Debezium использует первичный ключ таблицы в качестве ключа сообщения. Например, если у вас есть таблица

create table users
(
    id            bigint auto_increment primary key,
    department_id bigint
);

с данными

+----+----------------+
| id | department_id  |
+----+----------------+
|  5 |              1 |
|  6 |              1 |
|  7 |              2 |
+----+----------------+

Дебезиум выдаст следующие сообщения Кафки:

Key: {"id": 5} Value: {"id": 5, "department_id": 1}
Key: {"id": 6} Value: {"id": 6, "department_id": 1}
Key: {"id": 7} Value: {"id": 7, "department_id": 2}

Вопрос в том, как настроить Debezium для использования department_id или любого другого столбца в качестве ключа сообщения Kafka?

1 Ответ

2 голосов
/ 18 марта 2020

Для этого есть параметр message.key.columns. В конфигурации вашего коннектора вы должны установить его следующим образом:

{
  "name": "my-connector",
  "config": {
    "connector.class": "io.debezium.connector.mysql.MySqlConnector",
    "tasks.max": "1",
    "database.hostname": "mysql",
    "database.port": "3306",
    "database.whitelist": "my_database",
    ...
    "message.key.columns": "my_database.users:department_id"
  }
}

Этот параметр поддерживается всеми реляционными коннекторами Debezium.

Дополнительную информацию можно найти здесь:

https://debezium.io/blog/2019/09/26/debezium-0-10-0-cr2-released/ https://debezium.io/documentation/reference/1.0/assemblies/cdc-mysql-connector/as_deploy-the-mysql-connector.html#mysql -connect-configuration-properties_debezium

...