Elasticsearch資料遷移工具elasticdump工具
阿新 • • 發佈:2018-12-23
1. 工具安裝
wget https://nodejs.org/dist/v8.11.2/node-v8.11.2-linux-x64.tar.xz tar xf node-v8.11.2-linux-x64.tar.xz mv node-v8.11.2-linux-x64 /usr/local ln -s /usr/local/node-v8.11.2-linux-x64/bin/npm /usr/local/bin/npm ln -s /usr/local/node-v8.11.2-linux-x64/bin/node /usr/local/bin/node npm init -f npm install elasticdump # 因為我只用一次,所以這裡沒有安裝到全域性,需要到node_modules目錄下才能找到 elasticdump , 我安裝的位置如下:/usr/local/node-v8.11.2-linux-x64/node_modules/elasticdump/bin/elasticfump
2. 工具使用
'#拷貝analyzer分詞 elasticdump \ --input=http://production.es.com:9200/my_index \ --output=http://staging.es.com:9200/my_index \ --type=analyzer '#拷貝對映 elasticdump \ --input=http://production.es.com:9200/my_index \ --output=http://staging.es.com:9200/my_index \ --type=mapping '#拷貝資料 elasticdump \ --input=http://production.es.com:9200/my_index \ --output=http://staging.es.com:9200/my_index \ --type=data
3. 注意事項
3.1
# 注意 elasticdump 提供給了--httpAuthFile 引數來做認證 --httpAuthFile When using http auth provide credentials inini file in form `user=<username> password=<password>` # 只需要寫一個ini檔案 ,檔案中寫入使用者名稱和密碼就可以了 # 這裡其實還有另外一個好的方法 # 在--input引數和--output引數的的url中新增賬號密碼 # 例如 elasticdump \ --input=http://prod-username:[email protected]:9200/my_index \ --output=http://stage-username:[email protected]:9200/my_index \ --type=data
3.2 如果網路情況不好,或者沒有網路還可以先備份到檔案:
# 備份索引資料到檔案裡: elasticdump \ --input=http://production.es.com:9200/my_index \ --output=/data/my_index_mapping.json \ --type=mapping elasticdump \ --input=http://production.es.com:9200/my_index \ --output=/data/my_index.json \ --type=data # 備份到標準輸出,且進行壓縮(這裡有一個需要注意的地方,我查詢索引資訊有6.4G,用下面的方式備份後得到一個789M的壓縮檔案,這個壓縮檔案解壓後有19G): elasticdump \ --input=http://production.es.com:9200/my_index \ --output=$ \ | gzip > /data/my_index.json.gz # 把一個查詢結果備份到檔案中 elasticdump \ --input=http://production.es.com:9200/my_index \ --output=query.json \ --searchBody '{"query":{"term":{"username": "admin"}}}'
# 將備份檔案的資料匯入ES elasticdump \ --input=./data.json \ --output=http://es.com:9200
elasticdump還是非常方便的,主要是可以指定查詢條件,把查詢結果進行備份。如果按照日期進行查詢,那麼就可以遷移指定之間段內的資料,