我有一条Kafka消息,如下所示。
{
“prop1”: “val1”,
“prop2”: “val2”,
“sub_msg”: {
“prop3”: “val3”,
“prop4”: “val4”,
},
“prop5”: “val5”
}
我需要把它压平,就像下面一样。
{
“prop1”: “val1”,
“prop2”: “val2”,
“prop3”: “val3”,
“prop4”: “val4”,
“prop5”: “val5”
}
我正在研究能够在平面结构中替换字段名称的ReplaceField SMT
我的问题是,这个SMT也能处理嵌套结构吗?或者——是否存在";压扁器";SMT可以开箱即用吗?
编辑(1(
我可以看到扁平的SMT,但它添加了";路径";如果我可以禁用嵌套对象的";路径";串联-它可能对我有用。我无论如何都看不到在文档中禁用它。
EDIT(2(
我目前的方向是扩展压扁器,使其可以不连接字段名。
新配置字段:
- concatenate.field.names|布尔值|默认值:true
- duplicate.field.strategy|枚举(FirstSeeWins,LastSeeWins(|默认值:LastSeeWinss
使用上面的两个配置属性,可以设置关于字段名称串联的SMT行为,并控制在重复的情况下应该发生的情况
ReplaceField只能用于顶级字段。
您需要将扁平变换与重命名变换相结合,才能删除sub_msg
前缀。