前段时间做的东西,闲下来做一下整理记录。
业务:将数据从本地恢复到ES上,本地文件较大,解压后数据量在10个G左右的数据。
逻辑处理:针对业务需求,共尝试过三种次实践。
一、使用bulk:ES本地支持的批量导入方式,推荐文本大小在10-15M左右,文件的上限应该是不能超过200M(不确定)。
二、使用logstash:ES官方的另一个产品,将数据文本转换为ES的数据源。
三、使用Java:springData-ES的java方式。第三种方式使用线程池+缓存队列+springData对Es的封装逻辑,晚点另更
一、使用bulk(win7+es6.6.1+json文本)
1.准备正确的json数据格式
es对于json文本的格式要求是很严格的,合理的json数据格式如下:
{"index":"demo","id":0}
{"id":null,"dev_id":"1","rcv_time":1557303257,"date":null,"dname":null,"logtype":"1","pri":null,"mod":"pf","sa":null,"sport":null,"ttype":null,"da":null,"dport":null,"code":null,"proto":null,"policy":null,"duration":"0","rcvd":null,"sent":null,"fwlog":null,"dsp_msg":"包过滤日志","failmsg":null,"custom":null,"smac":null,"dmac":null,"type":null,"in_traffic":"52","out_traffic":