mysql - Kafka Connect有没有办法忽略模式文件中的1个字段并将其他字段读入数据库
问题描述
我正在尝试将此模式文件下沉到数据库中,其中一种字段类型是布尔值的映射
reservation table
create table "table-reservation" (
"sessionId" varchar,
"enteredReservation" boolean,
latitude double,
longitude double
架构文件
{
"name":"sessionId",
"type":"string
},
{
"name":"enteredReservation",
"type": "map",
"values":"boolean"
},
{
"name":"latitude",
"type":"double"
},
{
"name":"longitude",
"type":"double"
}
接收器连接器的配置
"tasks.max":"1",
"connector.class":"io.confluent.connect.jdbc.JdbcSinkConnector",
"connection.url":"URL",
"topics":"table-reservation",
"quote.sql.identifiers":"always",
"errors.tolerance":"all",
"errors.log.enable":"true",
"errors.log.include.messages":"true"
有没有办法只忽略enteredReservation
字段并将其设置为空。我读到,如果我们使用 SMT 进行 DROP,它可以将其设置为空DROP SMT
但是,它如何知道要删除哪个字段,而其他字段保持不变。或者 JDBC 接收器如何转换布尔值映射。有没有办法做到这一点?
解决方案
下面的配置会忽略您想要的字段:
“变换”:“面具”,
“transforms.mask.type”:“org.apache.kafka.connect.transforms.MaskField$Value”,
“transforms.mask.fields”:“enteredReservation”
但它可能不适用于字符串和数字以外的类型。所以,你也可以尝试加入黑名单:
“变换”:“替换字段”,
"transforms.ReplaceField.type": "org.apache.kafka.connect.transforms.ReplaceField$Value",
“transforms.ReplaceField.blacklist”:“enteredReservation”
推荐阅读
- java - OnClickListener 错误:“[..] 在空对象引用上调用虚拟方法 [...]”,尽管声明了字符串
- reactjs - JSON 文件中的数据,React 表跨域错误
- python - 为什么特定算法通过 ctypes 需要更长的时间?
- assembly - 组装中 HiFive 1 板的稳定输入读数问题
- python - 使用 FieldMask 时,HTTP PATCH 应如何传达资源属性的删除
- c - 如果两个指针指向同一个内存地址,是只需要使用free(ptr)一次还是两次?
- sql - 如何在对齐行时一次从两个不同的表中提取不同的计数
- sparql - 在 SPARQL 中查找常见的超类
- ios - 在初始加载时将数据从 TabBarController 传递到子视图控制器
- python - 将 pyspark 数据帧拆分为块并转换为字典