在Kibaba导入文件到ES 7.7时, 支持以下三种格式:
- Delimited text files, such as CSV and TSV
- Newline-delimited JSON
- Log files with a common format for the timestamp
最大文件限制 100MB.
在导入csv时发现经常无法正常识别栏位(虽然第一行已经是栏位列表), 故决定使用json格式.
而Navicat和SQLyog导出的json文件都是下面这种:
[
{
"id":1,
"title":"电脑维修",
"posttime":1273818981,
},
{
"id":2,
"title":"手机维修",
"posttime":1273818981,
},
....
]
这个不符合"Newline-delimited JSON"的要求, 正确的格式应该是: "每行一个json"
{"id":1,"title":"电脑维修","posttime":1273818981}
{"id":2,"title":"手机维修","posttime":1273818981}
So, 还是只能自己写脚本把数据导出来, 然后再导入.
如果是在window下使用curl命令给es导入数据,要在最后增加一个空行,否则最后一条数据将录不进去。
批量导入Bulk的内容见 https://my.oschina.net/abensky/blog/5280522