Я новичок в 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 для настройки имен свойств документов индексов при загрузке данных?
Большое спасибо.
С наилучшими пожеланиями