LoginSignup
12
4

More than 3 years have passed since last update.

初心者が3分でテストデータ入りElasticsearch (7系) を使うまで

Posted at

はじめに

配属先でElasticsearchを使うため,最近勉強をはじめました.
業務のデータだと何かあると怖いので,自分でテストデータを用意して,
サクッといじって壊しても良い環境を作ろうと思ったことがきっかけです.

最短3分テストデータ入りElasticsearchの構築を目指します(長くても5分ぐらいです)

準備

  • Docker及びDocker Composeが使える環境
バージョン
$ docker -v
Docker version 19.03.8, build afacb8b7f0
  • ファイル構成は最終的にこんな感じになります
ファイル構成
.
├── KEN_ALL.CSV
└── docker-compose.yml
  • Docker Composeファイルの作成
docker-compose.yml
version: "3.0"

services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.7.0
    environment:
      - discovery.type=single-node
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    ports:
      - 9200:9200
    volumes:
      - es-data:/usr/share/elasticsearch/data
  kibana:
    image: docker.elastic.co/kibana/kibana:7.7.0
    ports:
      - 5601:5601

volumes:
  es-data:
    driver: local
  • Docker Composeの起動
ElasticsearchとKibanaを立ち上げる
$ docker-compose up -d

これで,ElasticsearchとKibanaが立ち上がります

テストデータの用意

今回は,郵便局が公開している郵便番号データの全国一括を利用します.
https://www.post.japanpost.jp/zipcode/dl/kogaki-zip.html

理由としては,身近なデータなので直感的に扱うことができ,予想を立てて分析を行うことができるためです.
(例えば,県の情報でグルーピングすると47になりそうなど)

# 郵便番号データをダウンロード
$ wget https://www.post.japanpost.jp/zipcode/dl/kogaki/zip/ken_all.zip

# 解凍
$ unzip ken_all.zip

# 文字化け対策でUTF-8に変換
$ nkf -w --overwrite KEN_ALL.CSV

# 中身のチェック
$ cat KEN_ALL.CSV | head -n 3
01101,"060  ","0600000","ホッカイドウ","サッポロシチュウオウク","イカニケイサイガナイバアイ","北海道","札幌市中央区","以下に掲載がない場合",0,0,0,0,0,0
01101,"064  ","0640941","ホッカイドウ","サッポロシチュウオウク","アサヒガオカ","北海道","札幌市中央区","旭ケ丘",0,0,1,0,0,0
01101,"060  ","0600041","ホッカイドウ","サッポロシチュウオウク","オオドオリヒガシ","北海道","札幌市中央区","大通東",0,0,1,0,0,0

Kibanaでテストデータを流し込む

Machine Learningを選択

1.png

Upload fileを選択

2.png

CSVファイルの選択

赤枠部分を押して,ダウンロードしたKEN_ALL.CSVを選択します
3.png

Override Settingの選択

このままでは,デフォルトのカラム名になっているので,設定します.
4.png

カラム名の設定

Edit field namesの各項目を以下に変更します.

  • jis
  • postcode5
  • postcode
  • prefectureKana
  • cityKana
  • townAreaKana
  • prefecture
  • city
  • townArea
  • isOneTownByMultiPostcode
  • isNeedSmallAreaAddress
  • isChome
  • isMultiTownByOnePostcode
  • updated
  • updateReason

5.png

Indexの作成

Importの選択

6.png

Index名の設定

Index名: zipcodesをつけてImportを押すと作成できます.
7.png

データの確認

Dev Toolsを選択して,以下のリクエストを記述し,実行するとテストデータが確認できます.

GET zipcodes/_search
{
  "query": {
    "match_all": {}
  }
}

8.png

おわりに

Kibanaの機能を使ってテストデータを簡単に流し込む方法を紹介しました.
この方法は,配属先のメンターから直伝していただいたものです.
この場を借りて感謝いたします.ありがとうございます.

CSVファイルであれば,同様にデータを流し込むことができるので,ぜひ利用してみてください.

参考サイト

12
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
4