将mysql的数据导入到Elasticsearch中
以下是在CentOS上安装和启动ElasticSearch的继续操作【版本2.1.1】!
环境(2016年1月12日)
-
- CentOS6.5
- ElasticSearch2.1.1
简要总结
我们使用Embulk来进行数据导入!Embulk非常有用,可以与BigQuery、Redshift和ElasticSearch一起使用,真是太方便了。
請澄清上下文以便我更好地回答您的問題。當提到”流れ”時,您是指指涉的主題是什麼?
安装Embulk
请从 https://github.com/embulk/embulk#linux–mac–bsd 下载Embulk主程序。
安装所需的插件。
这次的输入是 embulk-input-mysql,输出是 embulk-output-elasticsearch。
对于 embulk-input-mysql,只需使用 embulk gem install embulk-input-mysql。
但是对于 embulk-output-elasticsearch,如果直接安装(按照2016/01/12的信息)会在运行时报 Failed to deserialize exception response from stream 错误,所以需要通过 gitclone 然后构建(build) 它。
cd [任意のディレクトリ ※今回は/tmpを例にする]
git clone https://github.com/muga/embulk-output-elasticsearch.git
cd embulk-output-elasticsearch
./gradlew gem
编辑Elasticsearch的配置文件。
# 下記を追加する。
# 今回はクラスタとかを組むわけではないので、このノードをマスターにする
# これを設定しないnodeないよ〜ってエラーになる。
node.master: true
创建配置文件
in:
type: mysql
user: [user名]
password: [password]
database: [データベース名]
table: [テーブル名]
host: [host]
select: "*"
out:
type: elasticsearch
index: [index名]
index_type: [indexのタイプ]
nodes:
- {host: localhost, port: 9300}
预览
embulk preview -I /tmp/embulk-output-elasticsearch/lib config.yml
重要的是指定-I /tmp/embulk-output-elasticsearch/lib,這是剛剛安裝的embulk-output-elasticsearch。
如果不指定這個,將會出現錯誤。
跑步
embulk run -I /tmp/embulk-output-elasticsearch/lib config.yml
确认实施
确认是否已经进行了地图映射
curl -XGET 'http://localhost:9200/[index名]?pretty'
检查数据的存储量。
curl -XGET 'http://localhost:9200/[index名]/[indexタイプ]/_count?pretty'
最后
对于Embulk,我们真的非常感谢。