您的位置:首页 > 其它

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/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=”
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: