Как сохранить вложенный документ как String в упругом поиске - PullRequest
0 голосов
/ 30 января 2019

Контекст: 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)Объединение данных столбца в упругом поиске

Я новичок в упругом поиске.Может кто-нибудь, пожалуйста, подскажите мне, как это сделать.

Я также попытался определить пользовательское сопоставление, но оно дает мне исключение.

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Я не совсем понимаю ваш вариант использования, но если вы хотите превратить некоторые json в их представляющие строки, то вы можете использовать logstash для этого или даже Elasticsearch ingest возможности для преобразования объекта (json)в строку .

. По приведенной выше ссылке пример:

PUT _ingest / pipeline / my-pipeline-id {"description": "преобразует содержимоеполе id в целое число "," processors ": [{" convert ": {" field ":" source "," type ":" string "}}]}

0 голосов
/ 30 января 2019

Вы всегда можете просмотреть свой документ как Raw JSON в Kibana.Вам не нужно манипулировать им перед индексацией в эластичном.

Поскольку это связано с визуализацией, обрабатывайте это только в Кибане.Проверьте эту ссылку для скриншота.

См. this , чтобы добавить столбцы, которые вы хотите видеть в результатах

...