logstash-input-jdbc实现oracle 与elasticsearch实时同步详解
2016-07-04 23:32
781 查看
前言:logstash-input-jdbc实现mysql 与elasticsearch的解读之前博文已经解析。本次只是在原有的基础上,针对oracle特性部分做解读。 目标:实现了oracle与ES同步增、删、改、查。
1、配置文件[root@5b9dbaaa148a logstash_jdbc_test]# cat jdbc_oracle.confinput { stdin { } jdbc { # oracle jdbc connection string to our backup databse jdbc_connection_string => "jdbc:oracle:thin:system/123456@//100.1.1.31:1521/xe" # the user we wish to excute our statement as jdbc_user => "system" jdbc_password => "123456" # the path to our downloaded jdbc driver jdbc_driver_library => "/elasticsearch-jdbc-2.3.2.0/lib/ojdbc6.jar" # the name of the driver class for oracle jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
#new add begin 2016-6-28 record_last_run => "true" use_column_value => "false" tracking_column => "id" last_run_metadata_path => "/etc/logstash/run_metadata.d/my_info" clean_run => "false" #new add by end
jdbc_paging_enabled => "true" jdbc_page_size => "50000" statement_filepath => "/usr/local/logstash/bin/logstash_jdbc_test/jdbc_oracle.sql" schedule => "* * * * *" type => "tstype" }}
filter { json { source => "message" remove_field => ["message"] } #grok { #match => { "message" => "%{COMBINEDAPACHELOG}" } #match => { "message" => "test" }#} date { match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ] }}
output { elasticsearch { hosts => "10.8.5.101:9200" index => "tsuser" document_id => "%{user_id}" } stdout { codec => json_lines }}
[root@5b9dbaaa148a logstash_jdbc_test]# cat jdbc_oracle.sqlselect *from TS_USER
2、其中:(1) jdbc_connection_string配置 jdbc_connection_string => "jdbc:oracle:thin:system/123456@//100.1.1.31:1521/xe"system/123456@// 100.1.1.31:1521 /xe 含义:用户名/密码@//oracleIP地址:端口/标识符SID
(2) jdbc_driver_library 配置 jdbc_driver_library => "/elasticsearch-jdbc-2.3.2.0/lib/ojdbc6.jar"ojdbc6.jar所在oracle机器的安装位置如下:[root@W01 ~]# find / -name "ojdbc6.jar" /u01/app/oracle/product/11.2.0/xe/jdbc/lib/ojdbc6.jarojdbc6.jar 需要ES所在机器放置的位置:[root@5b9dbaaaa lib]# find / -name "ojdbc6.jar" /elasticsearch-jdbc-2.3.2.0/lib/ojdbc6.ja
(3) jdbc_driver_class配置 jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
同步执行脚本:[root@5b9dbaa148a bin]# ./logstash -f ./logstash_jdbc_test/jdbc_oracle.conf
update,insert测试ok。 参考详解(原理同):http://blog.csdn.net/laoyang360/article/details/51747266 NB参考:http://o7planning.org/en/10227/jdbc-driver-libraries-for-different-types-of-database-in-java
——————————————————————————————————**更多ES相关实战干货经验分享**,请扫描下方【铭毅天下】微信公众号二维码关注。(每周至少更新一篇!)
和你一起,**死磕Elasticsearch**!——————————————————————————————————
作者:铭毅天下
转载请标明出处,原文地址:http://blog.csdn.net/laoyang360/article/details/51824617
如果感觉本文对您有帮助,请点击‘顶’支持一下,您的支持是我坚持写作最大的动力,谢谢!
1、配置文件[root@5b9dbaaa148a logstash_jdbc_test]# cat jdbc_oracle.confinput { stdin { } jdbc { # oracle jdbc connection string to our backup databse jdbc_connection_string => "jdbc:oracle:thin:system/123456@//100.1.1.31:1521/xe" # the user we wish to excute our statement as jdbc_user => "system" jdbc_password => "123456" # the path to our downloaded jdbc driver jdbc_driver_library => "/elasticsearch-jdbc-2.3.2.0/lib/ojdbc6.jar" # the name of the driver class for oracle jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
#new add begin 2016-6-28 record_last_run => "true" use_column_value => "false" tracking_column => "id" last_run_metadata_path => "/etc/logstash/run_metadata.d/my_info" clean_run => "false" #new add by end
jdbc_paging_enabled => "true" jdbc_page_size => "50000" statement_filepath => "/usr/local/logstash/bin/logstash_jdbc_test/jdbc_oracle.sql" schedule => "* * * * *" type => "tstype" }}
filter { json { source => "message" remove_field => ["message"] } #grok { #match => { "message" => "%{COMBINEDAPACHELOG}" } #match => { "message" => "test" }#} date { match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ] }}
output { elasticsearch { hosts => "10.8.5.101:9200" index => "tsuser" document_id => "%{user_id}" } stdout { codec => json_lines }}
[root@5b9dbaaa148a logstash_jdbc_test]# cat jdbc_oracle.sqlselect *from TS_USER
2、其中:(1) jdbc_connection_string配置 jdbc_connection_string => "jdbc:oracle:thin:system/123456@//100.1.1.31:1521/xe"system/123456@// 100.1.1.31:1521 /xe 含义:用户名/密码@//oracleIP地址:端口/标识符SID
(2) jdbc_driver_library 配置 jdbc_driver_library => "/elasticsearch-jdbc-2.3.2.0/lib/ojdbc6.jar"ojdbc6.jar所在oracle机器的安装位置如下:[root@W01 ~]# find / -name "ojdbc6.jar" /u01/app/oracle/product/11.2.0/xe/jdbc/lib/ojdbc6.jarojdbc6.jar 需要ES所在机器放置的位置:[root@5b9dbaaaa lib]# find / -name "ojdbc6.jar" /elasticsearch-jdbc-2.3.2.0/lib/ojdbc6.ja
(3) jdbc_driver_class配置 jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
同步执行脚本:[root@5b9dbaa148a bin]# ./logstash -f ./logstash_jdbc_test/jdbc_oracle.conf
update,insert测试ok。 参考详解(原理同):http://blog.csdn.net/laoyang360/article/details/51747266 NB参考:http://o7planning.org/en/10227/jdbc-driver-libraries-for-different-types-of-database-in-java
——————————————————————————————————**更多ES相关实战干货经验分享**,请扫描下方【铭毅天下】微信公众号二维码关注。(每周至少更新一篇!)
和你一起,**死磕Elasticsearch**!——————————————————————————————————
作者:铭毅天下
转载请标明出处,原文地址:http://blog.csdn.net/laoyang360/article/details/51824617
如果感觉本文对您有帮助,请点击‘顶’支持一下,您的支持是我坚持写作最大的动力,谢谢!
相关文章推荐
- oracle启动错误提示---hostname原因导致
- oracle没有limit用法
- oracle 游标变量
- plsql远程连接服务器oracle数据提示字符集错误的解决方法
- Oracle入门学习(6)
- oracle 11g数据库的基础概念
- Oracle datagurad 实现步骤:
- Oracle中几个需要用动态语句执行的情况
- DML、DDL、DCL区别 .
- PL/SQL如何调试Oracle存储过程
- Oracle 索引结构、内部管理
- oracle
- Oracle存储过程总结
- oracle建表空间、用户
- oracle存储过程定义游标用动态sql
- Oracle----oracle 事务总结
- C# 处理批量插入数据(事物) mysql oracle sqlserver三个版本
- Oracle体系结构详细图解
- Oracle存储过程给变量赋值的方法
- Entity Framework6 with Oracle(可实现code first)