Контекст: 1) Мы строим конвейер CDC (используя kafka & connect Framework)
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
}
Что мы хотим:
Мы хотим визуализировать только 3 столбца в кибане:
1) before - содержащий вложенный JSON в виде строки
2) after - содержащийвложенный JSON в виде строки
3) source - содержащий вложенный JSON в виде строки
Ниже представлены возможные варианты:
a) Либо преобразование вложенного JSON в строку b)Объединение данных столбца в упругом поиске
Я новичок в упругом поиске.Может кто-нибудь, пожалуйста, подскажите мне, как это сделать.
Я также попытался определить пользовательское сопоставление, но оно дает мне исключение.