По сути, каждая строка CSV считается документом, когда-то превращенным в JSON. Теперь у вас есть несколько вариантов.
A. Вы можете сохранить свой CSV-файл в том виде, в каком он есть, и использовать Logstash, чтобы использовать его с помощью фильтра csv
и отправлять полученные документы JSON в Elasticsearch.
B. Вы можете преобразовать ваш файл CSV в другой файл, где каждая строка CSV превращается в однострочный документ JSON, т.е.
Вместо
Col1,Col2,Col3
Cell11,Cell12,Cell13
Cell21,Cell22,Cell23
У вас есть
{ "Col1": "Cell11", "Col2": "Cell12", "Col3": "Cell13" }
{ "Col1": "Cell21", "Col2": "Cell22", "Col3": "Cell23" }
Но вам все равно нужно будет использовать Logstash, чтобы загрузить этот файл с несколькими JSON в Elasticsearch
C. Последний вариант - преобразовать CSV-файл в так называемый массовый файл , который будет выглядеть следующим образом:
{ "index": {}}
{ "Col1": "Cell11", "Col2": "Cell12", "Col3": "Cell13" }
{ "index": {}}
{ "Col1": "Cell21", "Col2": "Cell22", "Col3": "Cell23" }
И затем вы можете загрузить этот файл с помощью одной команды через Bulk API .