Class ExtractNewDocumentState<R extends org.apache.kafka.connect.connector.ConnectRecord<R>>
java.lang.Object
io.debezium.transforms.AbstractExtractNewRecordState<R>
io.debezium.connector.mongodb.transforms.ExtractNewDocumentState<R>
- Type Parameters:
R- the subtype ofConnectRecordon which this transformation will operate
- All Implemented Interfaces:
Closeable,AutoCloseable,org.apache.kafka.common.Configurable,org.apache.kafka.connect.components.Versioned,org.apache.kafka.connect.transforms.Transformation<R>
public class ExtractNewDocumentState<R extends org.apache.kafka.connect.connector.ConnectRecord<R>>
extends AbstractExtractNewRecordState<R>
Debezium Mongo Connector generates the CDC records in String format. Sink connectors usually are not able to parse
the string and insert the document as it is represented in the Source. so a user use this SMT to parse the String
and insert the MongoDB document in the JSON format.
- Author:
- Sairam Polavarapu, Renato mefi
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class io.debezium.transforms.AbstractExtractNewRecordState
AbstractExtractNewRecordState.FieldReference, AbstractExtractNewRecordState.NewRecordValueMetadata -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final Fieldprivate final Field.Setprivate MongoDataConverterprivate Stringprivate static final Fieldprivate static final Fieldprivate booleanprivate org.apache.kafka.connect.transforms.ExtractField<R>private static final org.slf4j.Loggerprivate org.apache.kafka.connect.transforms.Flatten<R>Fields inherited from class io.debezium.transforms.AbstractExtractNewRecordState
additionalFields, additionalHeaders, config, extractRecordStrategy, PURPOSE, routeByField, smtManager -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidaddAdditionalFieldsSchema(List<AbstractExtractNewRecordState.FieldReference> additionalFields, R originalRecord, org.apache.kafka.connect.data.SchemaBuilder valueSchemaBuilder) private voidaddFields(List<AbstractExtractNewRecordState.FieldReference> additionalFields, R originalRecord, org.apache.kafka.connect.data.Struct value) voidclose()org.apache.kafka.common.config.ConfigDefconfig()voidprivate org.bson.BsonDocumentgetFullDocument(R record, org.bson.BsonDocument key) private org.bson.BsonDocumentgetPartialUpdateDocument(R beforeRecord, R updateDescriptionRecord, org.bson.BsonDocument keyDocument) private RMethods inherited from class io.debezium.transforms.AbstractExtractNewRecordState
apply, getHeaderByName, makeHeaders, setTopic, version
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
ARRAY_ENCODING
-
FLATTEN_STRUCT
-
DELIMITER
-
keyExtractor
-
recordFlattener
-
converter
-
flattenStruct
private boolean flattenStruct -
delimiter
-
configFields
-
-
Constructor Details
-
ExtractNewDocumentState
public ExtractNewDocumentState()
-
-
Method Details
-
configure
- Specified by:
configurein interfaceorg.apache.kafka.common.Configurable- Overrides:
configurein classAbstractExtractNewRecordState<R extends org.apache.kafka.connect.connector.ConnectRecord<R>>
-
doApply
- Specified by:
doApplyin classAbstractExtractNewRecordState<R extends org.apache.kafka.connect.connector.ConnectRecord<R>>
-
validateConfigFields
- Specified by:
validateConfigFieldsin classAbstractExtractNewRecordState<R extends org.apache.kafka.connect.connector.ConnectRecord<R>>
-
config
public org.apache.kafka.common.config.ConfigDef config() -
close
public void close()- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein interfaceorg.apache.kafka.connect.transforms.Transformation<R extends org.apache.kafka.connect.connector.ConnectRecord<R>>- Overrides:
closein classAbstractExtractNewRecordState<R extends org.apache.kafka.connect.connector.ConnectRecord<R>>
-
newRecord
-
addAdditionalFieldsSchema
private void addAdditionalFieldsSchema(List<AbstractExtractNewRecordState.FieldReference> additionalFields, R originalRecord, org.apache.kafka.connect.data.SchemaBuilder valueSchemaBuilder) -
addFields
private void addFields(List<AbstractExtractNewRecordState.FieldReference> additionalFields, R originalRecord, org.apache.kafka.connect.data.Struct value) -
getPartialUpdateDocument
-
getFullDocument
-