将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,我们真的非常感谢。

广告
将在 10 秒后关闭
bannerAds