(弃用)计算分区

本页面描述的SMT将在将来的版本中移除。请使用新的SMT分区路由

默认情况下,当Debezium检测开云体育官方注册网址到的变化数据收集,它发出一种改变事件与单个分区一个Apache卡夫卡的话题。中描述的定制的卡夫卡自动主题创建连接,您可以自定义缺省配置路由事件到多个分区,基于散列的主键。

然而,在某些情况下,您可能希望Debezium事件路由到一个特定的分区。开云体育官方注册网址计算分区SMT使您能够基于指定的事件路由到目的地分区列名称的值。开云体育官方注册网址Debezium使用指定的哈希值来确定目标分区。

例如:基本配置

你配置计算分区转换Debezium连接器卡夫卡的连接配置。开云体育官方注册网址配置指定以下参数:

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

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

SMT只处理事件起源于指定的数据集合。事件从其他数据收集将被忽略。

配置一个Debezium连接器开云体育官方注册网址路由事件到一个特定的分区,配置ComputePartitionSMT在卡夫卡Debezium连接器的连接配置。开云体育官方注册网址

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

…topic.creation.default.partitions = 2 topic.creation.default.replication.factor = 1…变换= ComputePartition transforms.ComputePartition.type = io.debez开云体育官方注册网址ium.transforms.partitions.ComputePartition transforms.ComputePartition.partition.data-collections.field.mappings = inventory.products:名称,库存。订单:购买者transforms.ComputePartition.partition.data-collections.partition.num.mappings = inventory.products: 2、库存。订单:2…

配置在前面的例子使分区计算的产品订单数据收集。配置指定SMT使用的名字列计算的分区产品数据收集。分区的数量设置为2。指定分区的数量必须与卡夫卡的主题中指定的分区数量配置。

根据配置在这个例子中,以下产品表,SMT路线改变事件的所有记录字段名相同的分区。的物品id104年,105年,106年被路由到相同的分区。

表1。产品表

id

的名字

描述

重量

101年

踏板车

小型两轮摩托车

3.14

102年

汽车电池

12 v汽车电池

8.1

103年

打钻头

12包的钻头尺寸从40 # # 3

0.8

104年

12盎司木工锤

0.75

105年

14 oz木工锤

0.875

106年

16盎司木工锤

1.0

107年

岩石

盒各种岩石

5.3

108年

夹克

防水黑色风衣

0.1

109年

备用轮胎

24寸备用轮胎

22.2

配置选项

下表列出了配置选项,您可以使用计算分区SMT。

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

财产

默认的

描述

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

一个以逗号分隔的冒号分隔对指定分区的数量使用特定的数据收集,例如,inventory.products: 2, inventory.orders: 3