はじめに
Elasticsearch に入っているデータをエクスポート、インポートする方法のメモです。
あまり需要はないかもしれませんが、AWS 上で利用していた Elasticsearch 内のデータを、
ローカルに構築した Elasticsearch、Kibana の環境に入力して何かを試したい方向けです。
参考
Elasticsearch + Kibana の環境構築方法は「ローカル環境構築メモ」を参照ください。
データのエクスポート(JSON形式)
step
1Kibana の Discover を選択


step
2出力したい Index Pattern を選択

step
3出力したいレンジを設定

step
4Inspectタブをクリック

step
5Responseタブをクリック

step
6copyボタンをクリック

step
7テキストエディタに張り付けて保存

データのインポート(Python)
step
1パッケージのインストール
command
$ pip install elasticsearch==5.5.3
step
2スクリプトの準備と実行
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import json from elasticsearch import Elasticsearch es = Elasticsearch('http://127.0.0.1:9200') with open('test.json', 'r') as fd: data = json.load(fd) for record in data['hits']['hits']: print(record) es.index(index=record['_index'], doc_type=record['_type'], body=record['_source'], id=record['_id']) |
- 6行目:ElasticsearchのマスターノードのIPとポートを指定
- 8行目:エクスポートしたファイル名
- 11行目:データリストのルートを指すように修正(環境によって多少差あり)
command
$ python import.py
step
3Dev Toolsで確認
command
GET /_cat/indices?v
step
4インデックスパターンの作成
Menu から Stack Management を選択。


左の Menu から Index Patterns を選択して、

Create Index Pattern をクリック。

Index Pattern 名を入力して、JSON から読込んだ Index 名が表示されることを確認。

JSON をインポートしています。
Next Step ボタンをクリックし、Create Index Pattern ボタンをクリックする。

Index Pattern を作成した結果として Field の一覧が表示されれば成功。

Discover などで Index を選択できるようになります。

おまけ
データの入力に失敗した場合など、ごみデータを削除したい場合は Dev Tools で以下のAPIを実行します。
command
DELETE /import_test