metabaseにトライ
ここ2年くらいで盛り上がってきたセルフBI系のツールであるmetabaseが使いやすいみたいなので、セットアップしてみました。
スタンドアロンで動作させるとH2データベースに管理情報が保存されるため、拡張しにくい状態になります。ユーザ情報やダッシュボードの情報は複数のmetabaseサーバーから参照ができるように、mysqlに管理情報を保存するような形で動かしてみます。
環境
初心者でも簡単に試せるようwindows環境に導入します。
必要なもの
windows 7
java
mysql
metabase
javaとかmysqlとかのインストールは省略します。
手順
metabaseを入手
ここからmetabase.jarを取得しましょう
https://www.metabase.com/start/jar.html
C:/metabase/フォルダを作り、jarファイルを保存しました。
管理用のデータベースを作成
metabaseが必要とするデータを入れるためのデータベースを新しく作成します。。これはVisualizeするためのデータではなくて、metabase管理用(ユーザとかクエリーとか保存するもの)です。
mysql -u root
CREATE DATABASE metabase DEFAULT CHARACTER SET utf8;
GRANT ALL PRIVILEGES ON metabase.* TO metauser@localhost IDENTIFIED BY 'xxx';
データベース名はmetabaseとしていますが、ここは自由に変更してよいです。
metabaes起動時に管理用のテーブルを自動的に作成するので、少なくともテーブルが作成できる権限が必要です。metauserにALL PRIVILEGEを付けて手抜きしました。
起動ファイルを作る
何も指定せずにjarファイルでmetabaseを動かすと、管理用データベースがH2で起動してしまいます。mysqlで動かすには環境変数を設定する必要があるので、起動ファイルを作ります。
c:/metabase/startmetabase.batとして、以下の内容をテキストエディタで書く
chcp 65001
set MB_DB_TYPE=mysql
set MB_DB_DBNAME=metabase
set MB_DB_PORT=3306
set MB_DB_USER=metauser
set MB_DB_PASS=xxx
set MB_DB_HOST=localhost
java -jar c:/metabase/matabase.jar
chcp 65001はコマンドプロンプトをUTF-8にするおまじない
データベース名やユーザ名は、作った通りに合わせておいてください。
metabaseサーバーを2台以上で運用する場合には、localhostではなく情報を共有するデータベースホストを指定しましょう。
metabase起動
ここまできたら、metabaseを起動します。
起動方法は、startmetabase.batを起動するだけです。コマンドプロンプトが立ち上がるので眺めましょう。このとき立ち上がったコマンドプロンプトを落とすと、metabaseも落ちるので気を付けてください。
こんなログが出たら、無事起動完了のはず。
windows7で動かしたのでコンソールの表示に変なの([1mとか[0mとか)が混ざってますが、気にしない。windows10だとキレイに出ます。
01-07 00:51:35 [1mINFO metabase.core [0m :: Please use the following url to setup your Metabase installation:
http://localhost:3000/setup/
起動確認
http://localhost:3000/setup/ にアクセスすると初期画面が表示されます。Lets get startedボタンを押して、管理者登録へ移りましょう。
mysqlのデータベース確認
念のため、metabaseデータベースに自動で作られたテーブルを見てみましょう。
mysql -u metauser -p metabase -e "show tables"
+------------------------------+
| Tables_in_metabase |
+------------------------------+
| activity |
| card_label |
| collection |
| collection_revision |
| computation_job |
| computation_job_result |
| core_session |
| core_user |
| dashboard_favorite |
| dashboardcard_series |
| data_migrations |
| databasechangelog |
| databasechangeloglock |
| dependency |
| dimension |
| label |
| metabase_database |
| metabase_field |
| metabase_fieldvalues |
| metabase_table |
| metric |
| metric_important_field |
| permissions |
| permissions_group |
| permissions_group_membership |
| permissions_revision |
| pulse |
| pulse_card |
| pulse_channel |
| pulse_channel_recipient |
| query |
| query_cache |
| query_execution |
| raw_column |
| raw_table |
| report_card |
| report_cardfavorite |
| report_dashboard |
| report_dashboardcard |
| revision |
| segment |
| setting |
| view_log |
+------------------------------+
2018年1月7日の最新のmetabaseでは43個のテーブルが作られるようです。
マニュアル
mysqlで動かす方法は、こちらのマニュアルで見つけました。他にもいくつか環境変数で設定可能なものがあるようですので、調べてみてください。
