2021.9.4
MetabaseとMongo DBを連携させる作業メモです。
Metabaseとはオープンソースのデータ可視化ツールです。グラフも豊富で使いやすそうです。
概要や長所短所などはこちらの記事が参考になりました。
https://qiita.com/acro5piano/items/0920550d297651b04387
今回はDockerを使った環境構築です。こちらの記事を参考にしました。これはMySQLですが今回はMongo DBを使います。
https://qiita.com/0yan/items/dac20fe1e6014e79f917
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/
こちらの記事を参考にしました。
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.yml
は次のようにしました。
metabase-practice:
image: metabase/metabase:latest
container_name: metabase
ports:
- 3000:3000
volumes:
- ./app/data:/mnt/data
localhost:3000でアクセスできます。Welcome画面です。
言語は今回はJapaneseにしました。
名前やパスワードなどを入力します。
データソースの選択肢からMongo DBを選びます。
Mongo DBへの接続のための情報はこのように入力しました。dockerからlocalhostへアクセスするのでhost.docker.internal
をホストに設定しました。
以上で、ひとまずはMetabaseでMongo DBを可視化する下準備が整いました。次回は実際にグラフを使って可視化する部分をやっていきたいです。