上下文: 1)我们正在建立CDC管道(使用kafka和connect框架)
2)我们正在使用debezium捕获mysql Tx日志
3)我们正在使用Elastic Search连接器将文档添加到ES索引
由Debezium生成的示例更改事件:
{
"source" : {
"before" : {
"Id" : 97,
"name" : "Northland",
"code" : "NTL",
"country_id" : 6,
"is_business_mapped" : 0
},
"after" : {
"Id" : 97,
"name" : "Northland",
"code" : "NTL",
"country_id" : 6,
"is_business_mapped" : 1
},
"source" : {
"version" : "0.7.5",
"name" : "__",
"server_id" : 252639387,
"ts_sec" : 1547805940,
"gtid" : null,
"file" : "mysql-bin-changelog.000570",
"pos" : 236,
"row" : 0,
"snapshot" : false,
"thread" : 614,
"db" : "bazaarify",
"table" : "state"
},
"op" : "u",
"ts_ms" : 1547805939683
}
我们想要的东西:
我们只想可视化kibana中的3列:
1)之前-包含嵌套的JSON作为字符串
2)之后-包含嵌套的JSON作为字符串
3)源-包含嵌套的JSON作为字符串
我可以在这里考虑以下可能性:
a)将嵌套的JSON转换为字符串 b)在弹性搜索中组合列数据
我是弹性搜索的新手。有人可以指导我如何做到这一点。
我也尝试定义自定义映射,但这给了我例外。
答案 0 :(得分:0)
您始终可以在Kibana中将文档作为Raw JSON进行查看。 在弹性索引之前,您不需要操纵它。
由于这与可视化有关,因此只能在Kibana中进行处理。 检查此link以获得屏幕截图。
引用this将要查看的列添加到结果
答案 1 :(得分:0)
我不完全理解您的用例,但是如果您想将一些json转换为其代表的字符串,则可以为此使用logstash,甚至使用Elasticsearch ingest capabilities to convert an object (json) to a string。
在上面的链接中,示例:
PUT _ingest / pipeline / my-pipeline-id {“ description”:“将 id字段的内容转换为整数”,“处理器”:[ { “兑换” : { “ field”:“ source”, “ type”:“字符串” } }]}