Edited at

metabaseをmysqlで動かす

More than 1 year has passed since last update.


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として、以下の内容をテキストエディタで書く


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ボタンを押して、管理者登録へ移りましょう。

screenshot-metabae1.png


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で動かす方法は、こちらのマニュアルで見つけました。他にもいくつか環境変数で設定可能なものがあるようですので、調べてみてください。

https://metabase.com/docs/v0.14.1/operations-guide/start.html