データをコピーするelasticdumpは豊富なオプションを備え、手軽にElasticsearch間のデータ転送が行える実用的なツールです。Service#AWS佐々木一洋2020.11.20000この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。はじめにご家庭のElasticsearchクラスタのデータをコピーやダンプをしたい時ってよくありますよね。そのためにスクリプトを書いたりするのはおおげさだし、多くの手順からなるツールのセットアップは面倒なものです。そんな時にちょうどいいツールelasticdumpを試して実際にデータの転送を試してみました。elasticdumpとはelasticdumpはnodejs上で動作するCLIツールです。任意のElasticsearchをコピー元、コピー先としてデータやメタデータ(エイリアスやマッピング)の転送を行えます。データソース・コピー先としてElasticsearch以外に以下のストレージをサポートしています。簡単な使い方は2つのクラスタ間でのデータのコピーです。以下の例ではステージング環境とプロダクション環境間でデータのコピーを行います。--output=http://staging.es.com:9200/my_indexDockerの場合は以下のようになります。--output=http://staging.es.com:9200/my_index(便利な)オプション多くのオプションがあるのですが、使ってみて便利だったオプションを紹介します。すべてのオプションはnpmページで紹介されています。elasticdumpはデータソースから複数回に分けてデータの取得とコピー先への送信を行います。—limitではこのバッチサイズを指定できます。CLIのプロファイルを使用することもできます使ってみる実際にデータの転送を試してみました。PROXYを経由して2万件ほどのデータを転送しました。pullを除くと6分ほどかかりました。PROXY経由であることを考慮しても多少時間がかかっているように思えます。データ量がこれより多い場合にはバッチサイズや並行度の調整、あるいはネットワーク的に近い場所から実行する必要があると思います。completeまとめelasticdumpは手軽にElasticsearch間のデータ転送が行えるだけでなく豊富なオプションを備えていて実用的なツールだと思いました。APIを一通り叩いてみた。