MetabaseとMySQL環境をDockerで作る
はじめに
株価などネットから取得したデータをMySQLに格納し、
それを可視化したかったのでMetabsaeを試してみました。
環境作成にあたり、Dockerを利用しています。
環境
- Mac OS X 10.14.2
- Docker version 18.09.0
- docker-compose version 1.23.2
参考
今回やりたい構成
ディレクトリ構成
.
├── Data
│ └── mysql_data
└── Docker
└── docker-compose.yml
永続化のためmysql_dataにMySQLのファイルを置きます。
環境作成
イメージがないこと確認
$ docker-compose images
Container Repository Tag Image Id Size
----------------------------------------------
docker compose用のファイル準備
docker-compose.ymlでみて欲しいところは以下
links
にmysqlと記載することで、Docker内はmysqlで名前解決できる。volumes
にローカルのファイルをDockerコンテナにマウントする設定を記載することによってMySQLのデータをローカルに保存している。その結果データを永続化できる。
version: "3"
services:
metabase:
container_name: metabase
image: metabase/metabase
ports:
- "3000:3000"
links:
- mysql
mysql:
container_name: mysql
image: mysql:5.7.22
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: stock
MYSQL_USER: stock
MYSQL_PASSWORD: stock
MYSQL_ROOT_PASSWORD: root
volumes:
- ../Data/mysql_data/:/var/lib/mysql
イメージを取得
$ docker-compose create
WARNING: The create command is deprecated. Use the up command with the --no-start flag instead.
Pulling mysql (mysql:5.7.22)...
5.7.22: Pulling from library/mysql
be8881be8156: Pull complete
c3995dabd1d7: Pull complete
9931fdda3586: Pull complete
bb1b6b6eff6a: Pull complete
a65f125fa718: Pull complete
2d9f8dd09be2: Pull complete
37b912cb2afe: Pull complete
79592d21cb7f: Pull complete
00bfe968d82d: Pull complete
79cf546d4770: Pull complete
2b3c2e6bacee: Pull complete
Pulling metabase (metabase/metabase:)...
latest: Pulling from metabase/metabase
4fe2ade4980c: Already exists
6fc58a8d4ae4: Pull complete
819f4a45746c: Pull complete
cfead1870569: Pull complete
80eef12953dc: Pull complete
8ea161a68113: Pull complete
db7c1ab963fb: Pull complete
Creating mysql ... done
Creating metabase ... done
$ docker-compose images
Container Repository Tag Image Id Size
--------------------------------------------------------------
metabase metabase/metabase latest 0e41d8de8452 221 MB
mysql mysql 5.7.22 6bb891430fb6 355 MB
起動
$ docker-compose up -d
Starting mysql ... done
Starting metabase ... done
-dをつけてデタッチドモードにしないと、ターミナルに戻ってこれない。
動作確認(MySQL)
$ mysql --host=127.0.0.1 --user=stock --password
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.22 MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| stock |
+--------------------+
2 rows in set (0.02 sec)
データ格納
Pythonで株価情報を取得して、MySQLに格納する
で作ったPythonコードでMySQLにデータを格納しています。
Metabaseの設定
初期セットアップ
http://localhost:3000/setup
にアクセス
docker-compose.ymlのlinks
に記載したmysqlがホスト名
今回は事前にデータをMySQLに表を作成していたので、MySQLに入っている表の一覧が表示される。
表の名前をクリックすると、勝手にSummaryしている。
もちろん表のデータから色々なグラフ(円グラフや棒グラフ、線グラフ)などをSQLからも作成可能。
おまけ
停止
$ docker-compose stop
Stopping metabase ... done
Stopping mysql ... done
起動(環境削除していない場合)
$ docker-compose start
Starting mysql ... done
Starting metabase ... done
環境削除
コンテナを停止し、そのコンテナとネットワークを削除
$ docker-compose down
$ docker-compose down
Stopping metabase ... done
Stopping mysql ... done
Removing metabase ... done
Removing mysql ... done
Removing network docker_default
環境削除(imageも削除)
上に加えて、imageも削除
$ docker-compose down --rmi all
Removing metabase ... done
Removing mysql ... done
Removing network docker_default
Removing image mysql:5.7.22
Removing image metabase/metabase
Author And Source
この問題について(MetabaseとMySQL環境をDockerで作る), 我々は、より多くの情報をここで見つけました https://qiita.com/ITNewcomer/items/73173f032af29175dacd著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .