[es数据同步到数据库]数据库数据倒入es(一)

昨天完成设置爬虫的任务后,今天又要开始es的学习了,捣鼓了这几天,方法都是错误的,跟需求不一样。

领导昨天给了我参考的代码,今天带着参考的代码继续学习。

之前连接数据库用的是logstash,也可以用kafka带的包,但是我们的需求要灵活并且需要稳定,所以需要自己写一个数据库的连接,正好昨天用到了jdbctemplate,今天就用上了。

首先是jdbctemplate连接数据库,就不详细写了,然后是将数据写成json格式,使用的是alibaba的fastjson库

首先是导入pom:

然后直接使用put方法就可以了,非常的简单,下面是我的转化类:

下面是测试的部分:

然后后面是重头戏,使用es的javaRESTapi来访问es,为什么呢,虽然es带有javaapi,但是会引起版本兼容性的问题,以及微弱到可以忽略的性能提升,并且javaapi在未来的es版本会放弃,官方推荐使用javaTESTapi。可怜我前几天看了那么多javaapi的东西啊。

javaRESTapi就是通过http访问,走9200端口(javaapi是9300端口)。

过程是:将从数据库获得的数据转化成json,然后通过http的post,get,put方法,将json传到es中,实现对es的访问。

首先是http的post方法(暂时只实现了post,其他的以后补上)

大概的过程就是将json语句打成包,然后发出去,这块没怎么理解,以后多看看。

之后就是建立索引。首先先建立一个没有mapping的索引,直接向es发送url:port/indexName实现

然后向这个索引里面添加mapping字段,

以上是第一阶段内容。

总结:重点理解json的打包和http的post,put,get过程。复习jdbc的应用

?

?

?

?

?

?

?

?

?

?

?

上一篇:javaAPI操作ES分组聚合


下一篇:03-JAVAAPI-Synchronized原理