Elasticsearch同步MySQL
花了一个晚上+一个上午,终于将MySQL中的数据同步到
Elasticsearch
,做个简单的记录。整个过程需要用到MySQL的
river
插件,GitHub
上有installation
可以参考。虽然最后的配置过程很简单,但我在配置的过程中遇到了不少的问题,可能是因为
ES
版本的原因吧。可以参考...环境:
Ubuntu
+
JDK7
配置过程如下:
step 1.
下载ES
,我选择的版本是elasticsearch-1.1.0
,选择自己的安装路径${ES_HOME}
step 2.
进入${ES_HOME}
cd ${ES_HOME}
安装river
插件
bin/plugin --install river-jdbc --url http://bit.ly/1jyXrR9
下载mysql-connector-java-5.1.30-bin.jar
,把它放到${ES_HOME}/lib
下
step 3.
创建一个JDBC river
curl -XPUT 'localhost:9200/_river/my_jdbc_river/_meta' -d '{ "type" : "jdbc", "jdbc" : { "driver" : "com.mysql.jdbc.Driver", "url" : "jdbc:mysql://localhost:3306/profile", "user" : "", "password" : "", "sql" : "select * from profile.user", "index" : "profile", "type" : "user" } }'
其中profile
为scheme
的名称,user
为table
的名称,作为测试用。
step 4.
测试导入效果
curl -XGET 'localhost:9200/profile/user/_search?pretty&q=*'