MetabaseでMongoDBに保存されたデータを可視化する

2021.9.11

気象庁の過去データをMetabaseで可視化してみました。

データのダウンロードとMongoDBへのインポート

データはこちらからダウンロードできます。今回は久留米市の日別の日平均気温と降水量の日合計のデータを使います。

http://www.data.jma.go.jp/gmd/risk/obsdl/index.php

CSVをダウンロードできますが、カラム名が文字化けするので適当に変えます。

date,precipitation,precipitation_quality,precipitation_quality_no,temperature,temperature_quality,temperature_quality_no
2015/9/10,1.5,8,1,22.6,8,1
2015/9/11,0.0,8,1,22.9,8,1
2015/9/12,0.5,8,1,22.8,8,1
2015/9/13,0.0,8,1,22.4,8,1
2015/9/14,0.0,8,1,21.2,8,1
...

下記サイトでJSONに直します。

https://csvjson.com/csv2json

このような形にしました。

[
  {
    "date": "2015/9/10",
    "precipitation": 1.5,
    "precipitation_quality": 8,
    "precipitation_quality_no": 1,
    "temperature": 22.6,
    "temperature_quality": 8,
    "temperature_quality_no": 1
  },
...

JSONに直したものをmongo-expressから挿入します。今回はsampleデータベース内にKurumeコレクションを追加してそこにインポートしました。mongo-expressについては『docker-composeで起動したMongoDBにサンプルデータを入れる』を参照ください。

image

Metabaseでの可視化

データソースにMongoDBを追加

データソースを追加します。今回はMongoDBに保存しています。

http://localhost:3000/admin/databases/create

このように設定しました。docker上のMongoDBからデータを取るのでホストにはhost.docker.internalを指定します。

image

時系列データをグラフにする

MetabaseではQuetionという単位でデータを扱います。上部のNew Question(日本語では「照会します」)をクリックし、Customを選択します。次にデータソース選択でMongo Sample > Kurumeを選択します。

image

Visualizeをクリックします。

image

単純なテーブルが表示されます。Visualizationをクリックするとグラフの種類がいくつか出ます。

image

Lineを選択して、X-axisDateY-axisPrecipitationを選択します。横軸が日付で縦軸が降水量のグラフが表示されました。

image

Saveをクリックしてダッシュボードに追加するとグラフが追加されました。ひとまず可視化はできました。

image

サンプルコード

ここまでのサンプルコードはこちらにpushしています。

https://github.com/SatoshiKawabata/sandbox/tree/master/metabase-mongo

© 2019-2024 kwst.site.