elasticsearch与oracle数据库数据同步

在看本博客之前需要先按照顺序看以下几篇博客将工具安装好。

1.elasticsearch5.4和5.X安装和elasticsearch head插件安装

2.elasticsearch安全框架之X-pack

3.elasticsearch与数据库同步工具Logstash-input-jdbc


1.      首先启动elasticsearch服务。


然后进入到head插件的目录下,在此目录下使用命令行打开,输入grunt server


2.打开浏览器,输入http://localhost:9100/?auth_user=elastic&auth_password=changeme


连接上elasticsearch服务。

 

3.进入到logstash的bin目录下建立一个文件夹叫logstash_jdbc_test,当然这个文件夹也可以不用建立在logstash的bin文件的夹中,文件名也可以不用这个,在这里主要是为了方便建立一个文件夹,一因为这里需要在这个文件夹中建立两个文件,一个是XXXX.sql(用于同步数据库的sql语句),一个是XXXX.conf(同步的输入输出,拦截器的配置文件),在这里我命名为jdbc.sql和jdbc.conf


4.配置jdbc.conf


Input里面是输入的配置,即需要同步的数据来源,在这里同步的是oralce的数据库,如果是oracle数据,则jdbc_connection_string => "jdbc:oracle:thin:HNTEST/ZLB123456@//112.67.241.58:1512/orcl"必须这么写,jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"驱动也必须这么写,不然是连接不上的,Mysql是和平常一样的写法,oracle在这里有点区别。Statement_filepath是同步时查询oracle的sql语句文件,用于查询出需要同步的数据。


由于logstash-input-jdbc内置的一个时间变量:sql_last_value是timestamp类型,经过多次测试发现在oracle中并不适用,只是适用于mysql数据库,所在在这里我的处理方式是最后的更新时间大于当前时间减去一分钟,并且在jdbc.conf的文件中input配置的是schedule=”* * * * *”意思是每隔一分钟执行一次这个sql文件中的sql语句,这样就可以做到实时的增量同步。

Jdbc.conf的filter 是用于过滤数据,或者处理数据格式的,这里是将数据库中查询出来的数据转成需要插入elasticsearch中所要的json格式。

Output是elasticsearch的配置,在elasticsearch中有索引库的概念,索引库相当于一个数据库,索引库中有一个或多个类型,相当于数据库中的表。这里的类型配置在input中的type=”tab”,这里的output的意思是数据同步到elasticsearch的indexdb索引库的tab类型中。

 

6.启动同步

进入到logstash的bin目录中打开命令行:


也可以在 logstash -f D:\logstash-5.4.3\bin\logstash_jdbc_test\jdbc.conf后面加个-t来检测配置文件是否正确,正确后输入logstash -fD:\logstash-5.4.3\bin\logstash_jdbc_test\jdbc.conf就可以开始同步数据了。


请继续看本博客的elasticsearch其他的文章,这几篇都是一起的,主要是实现elasticsearch与Oracle数据库同步的

  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翅膀君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值