mazeltov7のweb断片

備忘録的なテキトーなことを書きます。(技術記事はQiitaに移行しました http://qiita.com/mazeltov7 )

MysqlからElasticsearchにデータを入れる

embulkを入れる

GitHub - embulk/embulk: Embulk: Pluggable Bulk Data Loader. http://www.embulk.org

$ brew install embulk

ドキュメントのGetting Startedやって雰囲気をつかむ。

embulkのpluginのembulk-input-mysql, embulk-output-elasticsearchを入れる

embulk-input-jdbc/embulk-input-mysql at master · embulk/embulk-input-jdbc · GitHub
GitHub - muga/embulk-output-elasticsearch

$ embulk gem install embulk-input-mysql
$ embulk gem install embulk-output-elasticsearch

で、入れるmysqlのデータ、ESのデータのconfigurationのconfig.ymlを書く。

in:
  type: mysql
  host: localhost
  user: $user_name
  password: $password_name
  database: $database_name
  table: $table_name
  select: "*"
out:
  type: elasticsearch
  index: $index_name
  index_type: $index_type_name
  nodes:
    - {host: localhost, port: 9300}

で、

$ embulk preview config.yml // 確認
$ embulk run config.yml // 実行

PS: 200万件くらい入れたら、途中数回エラーが出て5000件ほど入ってなかったので確認をば。queueのcapacityが50にしてて、そのを越えた?っぽい。ので調整で再トライ。esrejectedexecutionexception queue capacity 50この辺ぽい