Class PartitionRouting<R extends org.apache.kafka.connect.connector.ConnectRecord<R>>
java.lang.Object
io.debezium.transforms.partitions.PartitionRouting<R>
- Type Parameters:
R
- the subtype ofConnectRecord
on which this transformation will operate
- All Implemented Interfaces:
Closeable
,AutoCloseable
,org.apache.kafka.common.Configurable
,org.apache.kafka.connect.transforms.Transformation<R>
public class PartitionRouting<R extends org.apache.kafka.connect.connector.ConnectRecord<R>>
extends Object
implements org.apache.kafka.connect.transforms.Transformation<R>
This SMT allow to use payload fields to calculate the destination partition.
- Author:
- Mario Fiore Vitale
-
Nested Class Summary
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
static final String
static final String
static final String
(package private) static final Field
private PartitionRouting.HashFunction
private static final org.slf4j.Logger
private static final MurmurHash3
static final String
(package private) static final Field
private int
private SmtManager<R>
(package private) static final Field
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprivate R
buildNewRecord
(R originalRecord, org.apache.kafka.connect.data.Struct envelope, int partition) void
close()
protected int
computePartition
(Integer partitionNumber, List<Object> values) org.apache.kafka.common.config.ConfigDef
config()
void
private static String
getFieldName
(org.apache.kafka.connect.data.Struct envelope, String[] subFields, int i) private static org.apache.kafka.connect.data.Struct
getLastStruct
(org.apache.kafka.connect.data.Struct envelope, String[] subFields)
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
MURMUR_HASH_3
-
NESTING_SEPARATOR
- See Also:
-
CHANGE_SPECIAL_FIELD
- See Also:
-
FIELD_PAYLOAD_FIELD_CONF
- See Also:
-
FIELD_TOPIC_PARTITION_NUM_CONF
- See Also:
-
FIELD_HASH_FUNCTION
- See Also:
-
PARTITION_PAYLOAD_FIELDS_FIELD
-
TOPIC_PARTITION_NUM_FIELD
-
HASH_FUNCTION_FIELD
-
smtManager
-
payloadFields
-
partitionNumber
private int partitionNumber -
hashFc
-
-
Constructor Details
-
PartitionRouting
public PartitionRouting()
-
-
Method Details
-
config
public org.apache.kafka.common.config.ConfigDef config() -
configure
- Specified by:
configure
in interfaceorg.apache.kafka.common.Configurable
-
apply
-
toValue
-
getLastStruct
private static org.apache.kafka.connect.data.Struct getLastStruct(org.apache.kafka.connect.data.Struct envelope, String[] subFields) -
getFieldName
-
buildNewRecord
-
computePartition
-
close
public void close()
-