MetabaseとMongo DBを連携させる(docker-compose使用)

2021.09.04

MetabaseとMongo DBを連携させる作業メモです。

Metabaseとはオープンソースのデータ可視化ツールです。グラフも豊富で使いやすそうです。

https://www.metabase.com

概要や長所短所などはこちらの記事が参考になりました。

https://qiita.com/acro5piano/items/0920550d297651b04387

今回はDockerを使った環境構築です。こちらの記事を参考にしました。これはMySQLですが今回はMongo DBを使います。

https://qiita.com/0yan/items/dac20fe1e6014e79f917

docker-composeでMongo DB環境を構築する

docker-compose.ymlは次のようにしました。mongo-expressはMongo DBのデータを管理するクライアントです。

version: '3.5'

services:
  mongo:
    image: mongo
    restart: always
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: example
    ports:
      - 27017:27017
    volumes:
      - ./db:/data/db
      - ./configdb:/data/configdb

  mongo-express:
    image: mongo-express
    restart: always
    ports:
      - 8081:8081
    environment:
      ME_CONFIG_MONGODB_ADMINUSERNAME: root
      ME_CONFIG_MONGODB_ADMINPASSWORD: example
      ME_CONFIG_MONGODB_URL: mongodb://root:example@mongo:27017/

Mongo DBにサンプルデータを入れる

こちらの記事を参考にしました。

https://goodbyegangster.hatenablog.com/entry/2020/06/10/075443

Zip codeのjsonデータ(zip.json)をダウンロードしてきます。

https://docs.mongodb.com/manual/tutorial/aggregation-zip-code-data-set/

docker-compose up -dなどでMongo DBのDockerが起動した状態で、下記コマンドを実行します。するとサンプルデータが挿入されます。

$ mongoimport --port 27017 -u root -p example --authenticationDatabase=admin --db=sample --collection=zips --file=zips.json 

2021-09-04T23:15:14.630+0900    connected to: mongodb://localhost:27017/
2021-09-04T23:15:15.371+0900    29353 document(s) imported successfully. 0 document(s) failed to import.

docker-composeでMetabase環境を構築する

docker-compose.ymlは次のようにしました。

  metabase-practice:
    image: metabase/metabase:latest
    container_name: metabase
    ports:
      - 3000:3000
    volumes:
      - ./app/data:/mnt/data

localhost:3000でアクセスできます。Welcome画面です。

image

言語は今回はJapaneseにしました。

image

名前やパスワードなどを入力します。

image

データソースの選択肢からMongo DBを選びます。

image

Mongo DBへの接続のための情報はこのように入力しました。dockerからlocalhostへアクセスするのでhost.docker.internalをホストに設定しました。

localhost_3000_admin_databases_2

以上で、ひとまずはMetabaseでMongo DBを可視化する下準備が整いました。次回は実際にグラフを使って可視化する部分をやっていきたいです。

© 2019-2021 kwst.site.