Class ExtractNewDocumentState<R extends org.apache.kafka.connect.connector.ConnectRecord<R>>
java.lang.Object
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.transforms.Transformation<R>
public class ExtractNewDocumentState<R extends org.apache.kafka.connect.connector.ConnectRecord<R>>
extends Object
implements org.apache.kafka.connect.transforms.Transformation<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 ClassesModifier and TypeClassDescriptionstatic enumprivate static classRepresents a field that should be added to the outgoing record as a header attribute or struct field. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Fieldprivate Stringprivate booleanprivate final org.apache.kafka.connect.transforms.ExtractField<R>private static final Fieldprivate MongoDataConverterprivate Stringprivate static final Fieldprivate booleanprivate static final Patternprivate static final Fieldprivate booleanprivate final org.apache.kafka.connect.transforms.ExtractField<R>private static final org.slf4j.Loggerstatic final Fieldprivate final org.apache.kafka.connect.transforms.ExtractField<R>private final org.apache.kafka.connect.transforms.Flatten<R>static final Fieldprivate SmtManager<R> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidaddAdditionalFieldsSchema(List<ExtractNewDocumentState.FieldReference> additionalFields, R originalRecord, org.apache.kafka.connect.data.SchemaBuilder valueSchemaBuilder) private voidaddFields(List<ExtractNewDocumentState.FieldReference> additionalFields, R originalRecord, org.apache.kafka.connect.data.Struct value) private voidaddSourceFieldsSchema(String fieldPrefix, List<String> addSourceFields, R originalRecord, org.apache.kafka.connect.data.SchemaBuilder valueSchemaBuilder) private voidaddSourceFieldsValue(List<String> addSourceFields, R originalRecord, org.apache.kafka.connect.data.Struct valueStruct) voidclose()org.apache.kafka.common.config.ConfigDefconfig()voiddetermineAdditionalSourceField(String addSourceFieldsConfig) private org.bson.BsonDocumentgetInsertDocument(R record, org.bson.BsonDocument key) private org.bson.BsonDocumentgetUpdateDocument(R patchRecord, org.bson.BsonDocument keyDocument) private org.apache.kafka.connect.header.HeadersmakeHeaders(List<ExtractNewDocumentState.FieldReference> additionalHeaders, org.apache.kafka.connect.data.Struct originalRecordValue) private R
-
Field Details
-
addFieldsPrefix
-
LOGGER
private static final org.slf4j.Logger LOGGER -
FIELD_SEPARATOR
-
ARRAY_ENCODING
-
FLATTEN_STRUCT
-
DELIMITER
-
SANITIZE_FIELD_NAMES
-
ADD_SOURCE_FIELDS
-
OPERATION_HEADER
-
afterExtractor
-
patchExtractor
-
keyExtractor
-
converter
-
recordFlattener
-
addOperationHeader
private boolean addOperationHeader -
addSourceFields
-
additionalHeaders
-
additionalFields
-
flattenStruct
private boolean flattenStruct -
delimiter
-
dropTombstones
private boolean dropTombstones -
handleDeletes
-
smtManager
-
-
Constructor Details
-
ExtractNewDocumentState
public ExtractNewDocumentState()
-
-
Method Details
-
apply
-
newRecord
-
addSourceFieldsSchema
-
addAdditionalFieldsSchema
private void addAdditionalFieldsSchema(List<ExtractNewDocumentState.FieldReference> additionalFields, R originalRecord, org.apache.kafka.connect.data.SchemaBuilder valueSchemaBuilder) -
addSourceFieldsValue
-
addFields
private void addFields(List<ExtractNewDocumentState.FieldReference> additionalFields, R originalRecord, org.apache.kafka.connect.data.Struct value) -
getUpdateDocument
-
getInsertDocument
-
makeHeaders
private org.apache.kafka.connect.header.Headers makeHeaders(List<ExtractNewDocumentState.FieldReference> additionalHeaders, org.apache.kafka.connect.data.Struct originalRecordValue) -
config
public org.apache.kafka.common.config.ConfigDef config() -
close
public void close() -
configure
- Specified by:
configurein interfaceorg.apache.kafka.common.Configurable
-
determineAdditionalSourceField
-