分区路由

默认情况下,当Debezium检测开云体育官方注册网址到数据集合中的更改时,它发出的更改事件将被发送到使用单个Apache Kafka分区的主题。如在自定义Kafka连接自动主题创建,您可以自定义默认配置,根据主键的散列将事件路由到多个分区。

但是,在某些情况下,您可能希望Debezium将事件路由到特定分区。开云体育官方注册网址分区路由SMT允许您根据指定的列名值将事件路由到特定的目标分区。开云体育官方注册网址Debezium使用指定值的散列来确定目标分区。

举例:基本配置

在Debezium连接器的Kafka Connect配置中配置分区路由转换。开云体育官方注册网址配置参数如下:

  • 用于计算目标分区的数据收集列。

  • 允许数据收集的最大分区数。

只有来自配置数据集合的事件才会被处理。其他的将被简单地保持原样。

要配置Debezium连接器将开云体育官方注册网址事件路由到特定分区,请配置ComputePartitionSMT在Kafka Connect配置的Debezium连接器。开云体育官方注册网址

例如,您可以在连接器配置中添加以下配置。

...topic. create .default.partitions=2…转换=ComputePartition转换。ComputePartition.type=io. debezu .transfor开云体育官方注册网址ms.partitions.ComputePartition转换。ComputePartition.partition.data-collections.field.mappings=inventory.products:名称,库存。订单:购买者transforms.ComputePartition.partition.data-collections.partition.num.mappings = inventory.products: 2、库存。订单:2…

前面的示例指定为启用分区路由计算产品而且订单表。它指定了的名字列将用于计算的分区产品这个数据集合的分区数是2.注意,分区的数量必须是您为该主题配置的数量。正如您在示例中所看到的,我们已经定义了每个主题都将具有的2分区。

鉴于这种产品表格

表1。产品表

id

的名字

描述

重量

101

踏板车

小型两轮踏板车

3.14

102

汽车电池

12V汽车蓄电池

8.1

103

十二组钻头

12包钻头,尺寸从#40到#3不等

0.8

104

12盎司木工锤

0.75

105

14盎司木工锤

0.875

106

16盎司木工锤

1.0

107

岩石

一盒各式各样的石头

5.3

108

夹克

防水黑色风闸

0.1

109

备用轮胎

24英寸备胎

22.2

SMT路由将根据配置更改具有字段名的记录的事件到同一个分区。也就是带有的项目id104105,106路由到相同的分区。

配置选项

下表列出了可以用于分区路由SMT的配置选项。

表2。分区路由SMT (ComputePartition)配置选项

财产

默认的

描述

以逗号分隔的以冒号分隔的对列表,指定用于特定数据集合的列,例如,inventory.products:名字,inventory.orders:购买者

逗号分隔的以冒号分隔的对列表,指定用于特定数据集合的分区数量,例如,inventory.products: 2, inventory.orders: 3