Interface Transformation<R extends ConnectRecord<R>>
- Type Parameters:
R- The type of record (must be an implementation ofConnectRecord)
- All Superinterfaces:
AutoCloseable,Closeable,org.apache.kafka.common.Configurable
Connectors can be configured with transformations to make lightweight message-at-a-time modifications.
Kafka Connect may discover implementations of this interface using the Java ServiceLoader mechanism. To support this, implementations of this interface should also contain a service provider configuration file in META-INF/services/org.apache.kafka.connect.transforms.Transformation.
Implement Monitorable to enable the transformation to register metrics. The following tags are automatically added to all metrics registered: connector set to connector name, task set to the task id and transformation set to the transformation alias.
Method Summary
Modifier and TypeMethodDescriptionApply transformation to therecordand return another record object (which may berecorditself) ornull, corresponding to a map or filter operation respectively.voidclose()Signal that this transformation instance will no longer will be used.org.apache.kafka.common.config.ConfigDefconfig()Configuration specification for this transformation.Methods inherited from interface org.apache.kafka.common.Configurable
configure
Method Details
apply
Apply transformation to therecordand return another record object (which may berecorditself) ornull, corresponding to a map or filter operation respectively.A transformation must not mutate objects reachable from the given
record(including, but not limited to,Headers,Structs,Lists, andMaps). If such objects need to be changed, a newConnectRecordshould be created and returned.The implementation must be thread-safe.
- Parameters:
record- the record to be transformed; may not be null- Returns:
- the transformed record; may be null to indicate that the record should be dropped
config
org.apache.kafka.common.config.ConfigDef config()Configuration specification for this transformation.close
void close()Signal that this transformation instance will no longer will be used.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable