15
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

metabaseをmysqlで動かす

15
Last updated at Posted at 2018-01-06

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

15
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?