Sql server 如何在kafka conect分发模式下手动定义主题分区和复制

Sql server 如何在kafka conect分发模式下手动定义主题分区和复制,sql-server,apache-kafka-connect,debezium,Sql Server,Apache Kafka Connect,Debezium,我正在使用sql server kafka connect和debezium来监视sql server数据库,但是当我发布并运行我的worker时,主题已经用名称{server_name}.{schema_name}.{table_name}创建,默认分区为1&复制为1,即使我在“bootstrap.servers”参数中指定了两个代理。如何手动更改表主题的分区和复制,或者如何在worker/connector配置中预先指定?此外,不同的主题可能具有不同的分区和复制。本文档介绍如何配置主题 请记

我正在使用sql server kafka connect和debezium来监视sql server数据库,但是当我发布并运行我的worker时,主题已经用名称{server_name}.{schema_name}.{table_name}创建,默认分区为1&复制为1,即使我在“bootstrap.servers”参数中指定了两个代理。如何手动更改表主题的分区和复制,或者如何在worker/connector配置中预先指定?此外,不同的主题可能具有不同的分区和复制。

本文档介绍如何配置主题

请记住,当主题被自动创建时(这是Kafka代理设置),它们将使用Kafka代理的默认主题设置

因此,您应该提前手动创建它们,或者更改Kafka broker默认值,或者使用
Kafka topics.sh
工具更改复制。

有两个选项:

  • 在使用所需数量的分区和复制因子启动debezium connector之前,可以为每个表创建主题。这是可能的,因为数据库服务器、架构和表名是已知的(在配置中指定)
  • 即使连接器正在运行,也只需修改主题以增加分区数和复制系数。例如

    ./kafka-topics.sh --zookeeper localhost:2181 --alter --topic server.schema.table --partitions 5
    
    请注意,在此之前的所有消息都将在一个分区中,而新记录将被分发(基于kafka密钥散列)


  • 尝试更改主题创建代理设置,因为它们的默认值设置为partitions=1和replication factor=1。但这将为所有主题保存这些参数,而对于不同的主题@FatemaSagar,这些参数应该有所不同