Elasticsearch-jdbc数据同步配置
2017-10-11 09:29
621 查看
一、 简介
在使用 Elasticsearch 的时候,经常会涉及到要将其它数据源的数据导入到 Elasticsearch 中,在使用logstash进行数据同步的时候发现在大批量数据同步过程中效率不高,所以在实现数据导入和增量索引用到一个Elasticsearch 的插件 elasticsearch-jdbc。本文档中使用的资源和版本为:Elasticsearch 版本:2.4.1;elasticsearch-jdbc 版本 :2.3.4.0;java版本:1.8
二、 安装 Elasticsearch -jdbc
jdbc 的压缩包我已经放在了/home/hadoop目录下,可以去它的 GitHub地址 获取对应版本的压缩包。
执行cd /home/Hadoop
unzip ./elasticsearch-jdbc-2.3.4.zip
三、 使用jdbc
1、数据源导入
首先执行全部数据导入(注:ES 使用的是默认配置),写一个名叫oracle_ar01.sh的bash脚本,并放在/home/hadoop/elasticsearch-jdbc-2.3.4.0/bin下面,脚本内容如下
bin=/home/hadoop/elasticsearch-jdbc-2.3.4.0/bin
lib=/home/hadoop/elasticsearch-jdbc-2.3.4.0/lib
echo ’
{
“type” : “jdbc”,
“jdbc” : {
“url” : “jdbc:oracle:thin:@192.168.10.198:1521:qzj04db”,
“statefile” : “ar01.json”,
“schedule” : “0 0-59 0-23 ? * *”,
“user” : “”,
“password” : “”,
“sql” :[{“statement” :”SELECT jaa001||jar052 AS \”_id\”,JAR054,JAR051,JAR053,JAR058,JAR005,JAR057,JAR055,JAR052,JAR056,JAR003,JAA002,JAA001,JAR002,JAR004 FROM t_arj_01 where abg018 > ?”,
“parameter” : [ “metrics.lastexecutionstart” ]}],
“index” : “ar01”,
“type” : “jdbc”,
“ignore_null_values” : true,
“metrics”: {
“enabled” : true
},
“elasticsearch” : {
“cluster” : “elasticsearch”,
“host” : “192.168.10.197”,
“port” : 9300
}
}
}
’ | java \
-cp “metrics.lastexecutionstart” ]}], “index” : “ar01”, “type” : “jdbc”, “ignore_null_values” : true, “metrics”: { “enabled” : true }, “elasticsearch” : { “cluster” : “elasticsearch”, “host” : “192.168.10.197”, “port” : 9300 } } } ’ | java \ -cp “{lib}/*” \
-Dlog4j.configurationFile=bin/log4j2.xml org.xbib.tools.Runner org.xbib.tools.JDBCImporter运行该文件hadoop@Slave1: /elasticsearch−jdbc−2.3.4.0/binbin/log4j2.xml org.xbib.tools.Runner org.xbib.tools.JDBCImporter运行该文件hadoop@Slave1: /elasticsearch−jdbc−2.3.4.0/bin sh oracle_ar01.sh可以看到 命令行端被占用,一直在运行,并且在oracle-ar01.sh 的同级目录下生成了一个 oracle-ar01.json 的文件,sql 语句中需要的数据 lastexecutionstart 就保存在该文件中。
在我们来改动一下ORACLE 中的数据,增加一条数据
INSERT INTO t_arj_01 (jaa001,jar052,abg018)VALUES(‘testjdbc’,’test’,SYSDATE)
最多等一分钟,再看看ES 中的数据
系统运维部 > Elasticsearch-jdbc数据同步配置 > image2016-11-4 16:57:28.png
测试成功。 为了让 oracle-ar01.sh后台执行,我们可以使用 nohup 命令。当我们想停止执行的时候。使用 kill 命令关闭进程,
至此,Oracle数据源的 增量索引和更新就完成了。
3、bash 文件释义
增量索引的bash文件注释如下,更多详细配置请查阅官方文档
在使用 Elasticsearch 的时候,经常会涉及到要将其它数据源的数据导入到 Elasticsearch 中,在使用logstash进行数据同步的时候发现在大批量数据同步过程中效率不高,所以在实现数据导入和增量索引用到一个Elasticsearch 的插件 elasticsearch-jdbc。本文档中使用的资源和版本为:Elasticsearch 版本:2.4.1;elasticsearch-jdbc 版本 :2.3.4.0;java版本:1.8
二、 安装 Elasticsearch -jdbc
jdbc 的压缩包我已经放在了/home/hadoop目录下,可以去它的 GitHub地址 获取对应版本的压缩包。
执行cd /home/Hadoop
unzip ./elasticsearch-jdbc-2.3.4.zip
三、 使用jdbc
1、数据源导入
首先执行全部数据导入(注:ES 使用的是默认配置),写一个名叫oracle_ar01.sh的bash脚本,并放在/home/hadoop/elasticsearch-jdbc-2.3.4.0/bin下面,脚本内容如下
执行:./bin/oracle_ar01.sh
文件内容如下:
!/bin/sh
DIR=”(cd"(cd"( dirname “${BASH_SOURCE[0]}” )” && pwd )”bin=/home/hadoop/elasticsearch-jdbc-2.3.4.0/bin
lib=/home/hadoop/elasticsearch-jdbc-2.3.4.0/lib
echo ’
{
“type” : “jdbc”,
“jdbc” : {
“url” : “jdbc:oracle:thin:@192.168.10.198:1521:qzj04db”,
“statefile” : “ar01.json”,
“schedule” : “0 0-59 0-23 ? * *”,
“user” : “”,
“password” : “”,
“sql” :[{“statement” :”SELECT jaa001||jar052 AS \”_id\”,JAR054,JAR051,JAR053,JAR058,JAR005,JAR057,JAR055,JAR052,JAR056,JAR003,JAA002,JAA001,JAR002,JAR004 FROM t_arj_01 where abg018 > ?”,
“parameter” : [ “metrics.lastexecutionstart” ]}],
“index” : “ar01”,
“type” : “jdbc”,
“ignore_null_values” : true,
“metrics”: {
“enabled” : true
},
“elasticsearch” : {
“cluster” : “elasticsearch”,
“host” : “192.168.10.197”,
“port” : 9300
}
}
}
’ | java \
-cp “metrics.lastexecutionstart” ]}], “index” : “ar01”, “type” : “jdbc”, “ignore_null_values” : true, “metrics”: { “enabled” : true }, “elasticsearch” : { “cluster” : “elasticsearch”, “host” : “192.168.10.197”, “port” : 9300 } } } ’ | java \ -cp “{lib}/*” \
-Dlog4j.configurationFile=bin/log4j2.xml org.xbib.tools.Runner org.xbib.tools.JDBCImporter运行该文件hadoop@Slave1: /elasticsearch−jdbc−2.3.4.0/binbin/log4j2.xml org.xbib.tools.Runner org.xbib.tools.JDBCImporter运行该文件hadoop@Slave1: /elasticsearch−jdbc−2.3.4.0/bin sh oracle_ar01.sh可以看到 命令行端被占用,一直在运行,并且在oracle-ar01.sh 的同级目录下生成了一个 oracle-ar01.json 的文件,sql 语句中需要的数据 lastexecutionstart 就保存在该文件中。
在我们来改动一下ORACLE 中的数据,增加一条数据
INSERT INTO t_arj_01 (jaa001,jar052,abg018)VALUES(‘testjdbc’,’test’,SYSDATE)
最多等一分钟,再看看ES 中的数据
系统运维部 > Elasticsearch-jdbc数据同步配置 > image2016-11-4 16:57:28.png
测试成功。 为了让 oracle-ar01.sh后台执行,我们可以使用 nohup 命令。当我们想停止执行的时候。使用 kill 命令关闭进程,
至此,Oracle数据源的 增量索引和更新就完成了。
3、bash 文件释义
增量索引的bash文件注释如下,更多详细配置请查阅官方文档
!/bin/sh
当前脚本的绝对路径
DIR=”相关文章推荐
- Elasticsearch2.3.4+elasticsearch-jdbc-2.3.4.1同步oracle数据及简单调优
- ElasticSearch5+logstash的logstash-input-jdbc实现mysql数据同步
- elasticsearch-jdbc同步myslq数据到elasticsearch
- Elasticsearch和mysql数据同步(elasticsearch-jdbc)
- 各大数据库的配置 & logstash-out-mongodb实现elasticsearch到Mongodb的数据同步
- ElasticSearch5+logstash的logstash-input-jdbc实现mysql数据同步
- ElasticSearch5.4.3使用logstash的logstash-input-jdbc实现mysql数据同步
- 使用logstash-6.2.2和logstash-input-jdbc插件实现mysql数据同步到Elasticsearch
- 关于Elasticsearch使用jdbc-river同步数据每次追加的问题
- ElasticSearch5+logstash的logstash-input-jdbc实现mysql数据同步
- Logstash的logstash-input-jdbc插件mysql数据同步ElasticSearch及词库
- 用elasticsearch-river-jdbc同步数据到elasticsearch
- 用elasticsearch-river-jdbc同步数据到elasticsearch
- ElasticSearch5+logstash的logstash-input-jdbc实现mysql数据同步
- windows下rsync的安装配置【数据同步】
- elasticsearch与oracle数据库数据同步
- MYSQL的master/slave数据同步配置 ZT
- Sersync+Rsync实现服务器数据实时同步及xml高级配置!
- 配置数据同步
- Elasticsearch安装及自动同步mysql数据库数据