分区路由
默认情况下,当Debezium检测开云体育官方注册网址到数据集合中的更改时,它发出的更改事件将被发送到使用单个Apache Kafka分区的主题。如在自定义Kafka连接自动主题创建,您可以自定义默认配置,根据主键的散列将事件路由到多个分区。
但是,在某些情况下,您可能希望Debezium将事件路由到特定分区。开云体育官方注册网址分区路由SMT允许您根据指定的列名值将事件路由到特定的目标分区。开云体育官方注册网址Debezium使用指定值的散列来确定目标分区。
举例:基本配置
在Debezium连接器的Kafka Connect配置中配置分区路由转换。开云体育官方注册网址配置参数如下:
用于计算目标分区的数据收集列。
允许数据收集的最大分区数。
只有来自配置数据集合的事件才会被处理。其他的将被简单地保持原样。
要配置Debezium连接器将开云体育官方注册网址事件路由到特定分区,请配置ComputePartition
SMT在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
分区。
鉴于这种产品
表格
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路由将根据配置更改具有字段名的记录的事件锤
到同一个分区。也就是带有的项目id
值104
,105
,106
路由到相同的分区。