ElasticSearch Logstash JDBC: как объединить в разные имена столбцов - PullRequest
0 голосов
/ 27 декабря 2018

Я новичок в Elasticsearch и пытаюсь использовать Logstash для загрузки данных в индекс.Ниже приведена часть моей конфигурации losgstash:

filter {
  aggregate {
    task_id => "%{code}"
    code => "
      map['campaignId'] = event.get('CAM_ID')
      map['country'] = event.get('COUNTRY')
      map['countryName'] = event.get('COUNTRYNAME')
    # etc
    "
    push_previous_map_as_event => true
    timeout => 5
  }
}

output {
  elasticsearch {
    document_id => "%{code}"
    document_type => "company"
    index => "company_v1"
    codec => "json"
    hosts => ["127.0.0.1:9200"]
  }
}

Я ожидал, что агрегация сопоставит, например, столбец CAM_ID со свойством в индексе ElasticSearch как 'campaignId'.Вместо этого создается свойство с именем «cam_id», которое является именем столбца в нижнем регистре.То же самое с остальными свойствами.

Ниже приведен индексный документ после выполнения logstash:

{
  "company_v1": {
    "aliases": {

    },
    "mappings": {
      "company": {
        "properties": {
          "@timestamp": {
            "type": "date"
          },
          "@version": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "cam_id": {
            "type": "long"
          },
          "campaignId": {
            "type": "long"
          },
          "cam_type": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          },
          "campaignType": {
            "type": "text"
          }
        }
      }
    },
    "settings": {
      "index": {
        "creation_date": "1545905435871",
        "number_of_shards": "5",
        "number_of_replicas": "1",
        "uuid": "Dz0x16ohQWWpuhtCB3Y4Vw",
        "version": {
          "created": "6050399"
        },
        "provided_name": "company_v1"
      }
    }
  }
}

ИД кампании и идентификатор кампании были созданы при создании индекса, но logstash создал другой 2.

Может кто-нибудь объяснить мне, как настроить logstash для настройки имен свойств документов индексов при загрузке данных?

Большое спасибо.

С наилучшими пожеланиями

...