Apache kafka Kafka Connect:将数据接收到数据库表时,avro模式中的任何字段都可以忽略吗?
我有一个需求,需要一个多用途的avro模式。avro模式中的某些字段不需要放入数据库表中。例如: 我的avro模式是:Apache kafka Kafka Connect:将数据接收到数据库表时,avro模式中的任何字段都可以忽略吗?,apache-kafka,avro,apache-kafka-connect,confluent-schema-registry,Apache Kafka,Avro,Apache Kafka Connect,Confluent Schema Registry,我有一个需求,需要一个多用途的avro模式。avro模式中的某些字段不需要放入数据库表中。例如: 我的avro模式是: { "namespace": "com.test.clearing", "type": "record", "name": "ClearingTest", "fields": [ { "name": "ID", "type": "int" }, { "name": "ITEM", "type
{
"namespace": "com.test.clearing",
"type": "record",
"name": "ClearingTest",
"fields": [
{
"name": "ID",
"type": "int"
},
{
"name": "ITEM",
"type": "string"
},
{
"name": "STAT",
"type": "string"
}
]
}
我的表DDL是:
-- auto-generated definition
create table CLEARING_TEST
(
ID int not null primary key,
ITEM varchar(200) null
);
我是否可以忽略kafka connector中的
STAT
字段,以便在数据库中下沉?您可以使用kafka Connect的单消息转换(SMT),更准确地说,可以使用黑名单来删除字段,以便在将消息从kafka插入目标数据库时忽略该字段:
"transforms": "ReplaceField",
"transforms.ReplaceField.type": "org.apache.kafka.connect.transforms.ReplaceField$Value",
"transforms.ReplaceField.blacklist": "STAT"
现在是原始信息:
{"ID": 1, "ITEM": "myItem", "STAT": "myStat"}
将转变为:
{"ID": 1, "ITEM": "myItem"}
我是否在接收器连接器属性文件中添加此配置?@Atif是,您需要在连接器的配置文件中添加上述行。@Giorgos,我已在connect-avro-standalone.properties文件中添加,但运气不佳。connect-avro standalone.properties
不是连接器的配置文件,而是Kafka connect配置。您需要在连接器的配置文件中添加转换。谢谢,它可以工作,但是这个字段的$value值是多少?