У меня есть CSV-файл с 1000 строк и 3 столбца следующим образом:
field1, field2, field3
ABC A65 ZZZ
...
Я хочу экспортировать его содержимое в сопоставление myrecords
индекса myindex
(у меня больше сопоставлений в этом индексе):
PUT /myindex
{
"mappings": {
"myrecords": {
"_all": {
"enabled": false
},
"properties": {
"field1": { "type": "keyword" },
"field2": { "type": "keyword" },
"field3": { "type": "keyword" }
}
}
}
}
Есть ли простой способ сделать это?
ОБНОВЛЕНИЕ:
Я выполнил этот конфигурационный файл Logstash, но хотя размер CSV небольшой (1000 записей), процесс работает вечно. Когда я выполняю GET /myindex/myrecords/_search
, я все время вижу только 1 запись.
input {
file {
path => ["/usr/develop/data.csv"]
start_position => beginning
}
}
filter {
csv {
columns => ["field1","field2","field3"]
separator => ","
}
}
output {
stdout { codec => rubydebug }
elasticsearch {
action => "index"
hosts => ["127.0.0.1:9200"]
index => "myindex"
document_type => "myrecords"
document_id => "%{Id}" // Here I also tried "%{field1}"
workers => 1
}
}
document_id => "%{Id}"
. У меня нет поляId
в моем отображении. Как я могу решить эту проблему? Пожалуйста, мой обновленный вопрос. - person Dinosaurius   schedule 04.09.2017document_id
. - person Val   schedule 04.09.2017GET
из Elastic:[2017-09-04T13:40:49,886][INFO ][logstash.pipeline ] Starting pipeline {"id"=>"main", "pipeline.workers"=>4, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>5, "pipeline.max_inflight"=>500} [2017-09-04T13:40:50,091][INFO ][logstash.pipeline ] Pipeline main started [2017-09-04T13:40:50,140][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600}
- person Dinosaurius   schedule 04.09.2017[2017-09-04T13:42:08,638][INFO ][o.e.c.r.a.DiskThresholdMonitor] [LOQmMI1] low disk watermark [85%] exceeded on [LOQmMI11SJyen1gQOlXnug][LOQmMI1][/usr/local/elasticstack_5.5.0/elasticsearch-5.5.0/data/nodes/0] free: 15.3gb[11%], replicas will not be assigned to this node
- person Dinosaurius   schedule 04.09.2017sincedb_path => "/dev/null"
в свой вводfile
. - person Val   schedule 04.09.2017sincedb_path
? - person Dinosaurius   schedule 04.09.2017sincedb_path
— это просто файл, который позволяет Logstash запоминать строки, которые он уже проанализировал. Установка его в null гарантирует, что logstash запустится в начале файла. - person Val   schedule 04.09.2017