5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

政府統計(e-Stat)の API と elastic stack を試した

Last updated at Posted at 2020-03-04

はじめに

kibana lens を試すために適当なデータを探していたら、政府統計(e-Stat) に行き着きました。
実際に Kibana lens で可視化するための道のりをまとめました。

動作環境

  • Mac OS X 10.15.3
  • Java 11.0.5
  • Elasticsearch 7.6.0
  • Kibana 7.6.0
  • Logstash 7.6.0

e-Stat API

ユーザー登録 と アプリケーションIDの取得

私はこちら を参考にアプリケーションIDを取得しました。

データの選択と該当する REST API のリンク取得

今回は以下の統計データを選択しました。

image.png

上のアドレスの画面上の、APIボタンをクリックすると統計に対応するURLが表示されます。
今回はこちら
http://api.e-stat.go.jp/rest/2.1/app/getStatsData?appId=&lang=J&statsDataId=0003281493&metaGetFlg=Y&cntGetFlg=N&sectionHeaderFlg=1

  • 今回は Kibana で可視化したいので、データは JSON で受け取るため、url に /app/json/getStatsDatas? を追加します。
  • このappID= のあとの部分にアプリケーションIDを設定します。

Kibana で可視化するためのデータ抽出

# appid=の後の部分はご自身で取得します。
curl --location --request GET 'http://api.e-stat.go.jp/rest/2.1/app/json/getStatsData?appId=&lang=J&statsDataId=0003287753&metaGetFlg=Y&cntGetFlg=N&sectionHeaderFlg=1' > traffic.json
cat traffic.json | jq -c  .GET_STATS_DATA.STATISTICAL_DATA.DATA_INF.VALUE[] > data.json


logstash でデータの加工

# cat estat.traffic.0003281493.conf
input {
  file {
      codec => "json"
      path => "/path/to/data.json"
      start_position => "beginning"
      sincedb_path => "/dev/null"
  }
}

filter {
    translate {
      field => "@tab"
      destination => "code"
      dictionary => {
          "1010" => "発生件数"
          "1060" => "負傷者数"
          "1270" => "死者数"
          "1360" => "人口10万人当たり死者数"
        }
    }

    mutate {
      remove_field => ["[@tab]"]
      rename => { "$" => "count" }
      gsub => ["@time", "(\d{4})(\d{6})", "\1-01-01T00:00:00.000Z"]
      convert => {"count" => "integer"}
      add_field => { "year" => "%{@time}" }
    }
}

output {
	elasticsearch {
           hosts => "localhost:9200"
           index => traffic

	}
}
$ cat run.sh 
rm -rf data
conf="/Users/surfer/elastic/labs/logstash/logstash.config/estat.traffic.0003281493.conf"
./bin/logstash -f $conf
$ 

Kibana の画面

  • index pattern (traffic*) 作成後に Lens を使用した際のサンプル画像
  • 統計がある 1947 年から現在までの交通事故年間死亡者数のグラフを描画しました。
  • 1968 が歯抜けの理由は分からず。(ドキュメントは存在するのだが)

image.png

5
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
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?