はじめに
オープンソースで使用できるデータ分析ツール(BIツール)、「Metabase」を紹介する。
このツールはWEB画面から簡単な操作をするだけで、MySQLやOracle Databaseなどのデータベースに格納されたデータを集計・グラフ作成することができる。
ちなみに筆者は家計の収支をMySQLに格納しており、Metabaseを利用してデータ集計・グラフ化し、定期的に傾向分析している。
システム構成イメージ
インストール方法
【方法1】Docker環境でコンテナ起動
dockerhubに、Metabaseインストール済みのDockerイメージが用意されているため、Docker環境がある場合はこれを使用すると簡単に環境構築できる。
Docker環境の構築は本記事では割愛するが、興味のある方は以下の記事を参照頂きたい。
システム環境
- Oracle Linux Server 7.9
- Docker Engine 19.03.11-ol
- docker-compose version 1.29.2
- Metabase v0.41.2
ディレクトリ構成
<任意のディレクトリ>/
L docker-compose.yml
L metabase/
L Dockerfile
L mysqldb/
L Dockerfile
L my.cnf
設定ファイルの準備
MetabaseサーバとMySQLサーバ用の設定ファイルを準備する。
docker-compose.yml
[root]# vi docker-compose.yml
version: '3'
services:
metabase:
image: test-metabase:vrfy
build: ./metabase
hostname: metabase
networks:
- dockernet
volumes:
- ./metabase/metabase.db:/metabase.db
ports:
- "3000:3000"
restart: always
depends_on:
- mysqldb
mysqldb:
image: test-mysqldb:vrfy
build: ./mysqldb
hostname: mysqldb
networks:
- dockernet
volumes:
- ./mysqldb/data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: TESTDB
MYSQL_USER: testuser
MYSQL_PASSWORD: testpass
networks:
dockernet:
[root]#
metabase/Dockerfile
[root]# vi Dockerfile
FROM metabase/metabase:v0.41.2
[root]#
mysqldb/Dockerfile
[root]# vi Dockerfile
FROM mysql:5
COPY my.cnf /etc/my.cnf
[root]#
mysqldb/my.cnf
[root]# vi my.cnf
[mysqld]
character-set-server = utf8
default-time-zone = "Asia/Tokyo"
[client]
default-character-set = utf8
[root]#
Dockerイメージ作成(docker-compose build)
設定ファイルを準備したら、docker-compose buildコマンドでDockerイメージを作成する。
[root]# cd <任意のディレクトリ>
[root]# docker-compose build
Building mysqldb
Sending build context to Docker daemon 207.2MB
Step 1/2 : FROM mysql:5
---> 8cf625070931
Step 2/2 : COPY my.cnf /etc/my.cnf
---> Using cache
---> 9b7972beae8d
Successfully built 9b7972beae8d
Successfully tagged test-mysqldb:vrfy
Building metabase
Sending build context to Docker daemon 2.048kB
Step 1/1 : FROM metabase/metabase:v0.41.2
Trying to pull repository docker.io/metabase/metabase ...
v0.41.2: Pulling from docker.io/metabase/metabase
a0d0a0d46f8b: Pull complete
cad5be41a8dc: Pull complete
6536d4116020: Pull complete
0e092a6c3b74: Pull complete
289172c98c31: Pull complete
Digest: sha256:41c10a7bd8532fbfc93145ec353bad33d70f386ca109094e7893cfe34485f4c8
Status: Downloaded newer image for metabase/metabase:v0.41.2
---> 98f7a0dd8624
Successfully built 98f7a0dd8624
Successfully tagged test-metabase:vrfy
[root]#
Dockerコンテナ起動(docker-compose up)
Dockerコンテナを起動する。
[root]# docker-compose up -d
Creating network "test_dockernet" with the default driver
Creating test_mysqldb_1 ... done
Creating test_metabase_1 ... done
[root]#
[root]# docker-compose ps
Name Command State Ports
------------------------------------------------------------------------------
test_metabase_1 /app/run_metabase.sh Up 0.0.0.0:3000->3000/tcp
test_mysqldb_1 docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp
[root]#
使用するサーバのスペックにもよるが、Metabase起動には時間がかかる。(おそらく内部でJVMを起動しているため。)
docker logsコマンドでログを確認し、「Metabase Initialization COMPLETE」というメッセージが表示されれば起動が完了している。
[root]# docker logs test_metabase_1 -f
〜〜〜省略〜〜〜
2021-11-23 08:25:34,956 INFO metabase.task :: Initializing task SendFollowUpEmails 📆
2021-11-23 08:25:35,047 INFO metabase.task :: Initializing task TaskHistoryCleanup 📆
2021-11-23 08:25:35,061 INFO metabase.core :: Looks like this is a new installation ... preparing setup wizard
2021-11-23 08:25:35,763 INFO metabase.core :: Please use the following URL to setup your Metabase installation:
http://0.0.0.0:3000/setup/
2021-11-23 08:25:35,859 INFO metabase.sample-data :: Loading sample dataset...
2021-11-23 08:25:36,544 INFO driver.impl :: Initializing driver :sql...
〜〜〜省略〜〜〜
2021-11-23 08:28:58,568 INFO metabase.core :: Metabase Initialization COMPLETE
起動完了後、ブラウザでWEBアクセスすると、以下のような初期設定画面が表示される。
http://<Dockerホスト>:3000
初期設定は「Metabase初期設定」の章に記載する。
【方法2】CentOS7にJavaとMetabaseをインストール
システム環境
- CentOS Linux release 7.9.2009 (Core)
- openjdk version “11.0.13”
- Metabase v0.41.4
Java(OpenJDK)インストール
yum installコマンドでJava(OpenJDK)をインストールする。
[root@metabase /]# yum install java-11-openjdk.x86_64
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
* base: centos-distro.cavecreek.net
* extras: repos.lax.quadranet.com
* updates: mirror.san.fastserv.com
base | 3.6 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
updates/7/x86_64/primary_db | 13 MB 00:00:02
Resolving Dependencies
--> Running transaction check
---> Package java-11-openjdk.x86_64 1:11.0.13.0.8-1.el7_9 will be installed
--> Processing Dependency: java-11-openjdk-headless(x86-64) = 1:11.0.13.0.8-1.el7_9 for package: 1:java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64
--> Processing Dependency: xorg-x11-fonts-Type1 for package: 1:java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64
--> Processing Dependency: libpng15.so.15(PNG15_0)(64bit) for package: 1:java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64
--> Processing Dependency: libjpeg.so.62(LIBJPEG_6.2)(64bit) for package: 1:java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64
--> Processing Dependency: fontconfig(x86-64) for package: 1:java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64
--> Processing Dependency: libpng15.so.15()(64bit) for package: 1:java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64
--> Processing Dependency: libjvm.so()(64bit) for package: 1:java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64
--> Processing Dependency: libjpeg.so.62()(64bit) for package: 1:java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64
--> Processing Dependency: libjava.so()(64bit) for package: 1:java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64
--> Processing Dependency: libgif.so.4()(64bit) for package: 1:java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64
--> Processing Dependency: libXtst.so.6()(64bit) for package: 1:java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64
--> Processing Dependency: libXrender.so.1()(64bit) for package: 1:java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64
--> Processing Dependency: libXi.so.6()(64bit) for package: 1:java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64
--> Processing Dependency: libXext.so.6()(64bit) for package: 1:java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64
--> Processing Dependency: libX11.so.6()(64bit) for package: 1:java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64
--> Running transaction check
---> Package fontconfig.x86_64 0:2.13.0-4.3.el7 will be installed
--> Processing Dependency: freetype >= 2.8-7 for package: fontconfig-2.13.0-4.3.el7.x86_64
--> Processing Dependency: freetype for package: fontconfig-2.13.0-4.3.el7.x86_64
--> Processing Dependency: fontpackages-filesystem for package: fontconfig-2.13.0-4.3.el7.x86_64
--> Processing Dependency: dejavu-sans-fonts for package: fontconfig-2.13.0-4.3.el7.x86_64
--> Processing Dependency: libfreetype.so.6()(64bit) for package: fontconfig-2.13.0-4.3.el7.x86_64
---> Package giflib.x86_64 0:4.1.6-9.el7 will be installed
--> Processing Dependency: libSM.so.6()(64bit) for package: giflib-4.1.6-9.el7.x86_64
--> Processing Dependency: libICE.so.6()(64bit) for package: giflib-4.1.6-9.el7.x86_64
---> Package java-11-openjdk-headless.x86_64 1:11.0.13.0.8-1.el7_9 will be installed
--> Processing Dependency: tzdata-java >= 2020f for package: 1:java-11-openjdk-headless-11.0.13.0.8-1.el7_9.x86_64
--> Processing Dependency: copy-jdk-configs >= 3.3 for package: 1:java-11-openjdk-headless-11.0.13.0.8-1.el7_9.x86_64
--> Processing Dependency: pcsc-lite-libs(x86-64) for package: 1:java-11-openjdk-headless-11.0.13.0.8-1.el7_9.x86_64
--> Processing Dependency: lksctp-tools(x86-64) for package: 1:java-11-openjdk-headless-11.0.13.0.8-1.el7_9.x86_64
--> Processing Dependency: libasound.so.2(ALSA_0.9.0rc4)(64bit) for package: 1:java-11-openjdk-headless-11.0.13.0.8-1.el7_9.x86_64
--> Processing Dependency: libasound.so.2(ALSA_0.9)(64bit) for package: 1:java-11-openjdk-headless-11.0.13.0.8-1.el7_9.x86_64
--> Processing Dependency: javapackages-tools for package: 1:java-11-openjdk-headless-11.0.13.0.8-1.el7_9.x86_64
--> Processing Dependency: cups-libs(x86-64) for package: 1:java-11-openjdk-headless-11.0.13.0.8-1.el7_9.x86_64
--> Processing Dependency: libasound.so.2()(64bit) for package: 1:java-11-openjdk-headless-11.0.13.0.8-1.el7_9.x86_64
---> Package libX11.x86_64 0:1.6.7-4.el7_9 will be installed
--> Processing Dependency: libX11-common >= 1.6.7-4.el7_9 for package: libX11-1.6.7-4.el7_9.x86_64
--> Processing Dependency: libxcb.so.1()(64bit) for package: libX11-1.6.7-4.el7_9.x86_64
---> Package libXext.x86_64 0:1.3.3-3.el7 will be installed
---> Package libXi.x86_64 0:1.7.9-1.el7 will be installed
---> Package libXrender.x86_64 0:0.9.10-1.el7 will be installed
---> Package libXtst.x86_64 0:1.2.3-1.el7 will be installed
---> Package libjpeg-turbo.x86_64 0:1.2.90-8.el7 will be installed
---> Package libpng.x86_64 2:1.5.13-8.el7 will be installed
---> Package xorg-x11-fonts-Type1.noarch 0:7.5-9.el7 will be installed
--> Processing Dependency: ttmkfdir for package: xorg-x11-fonts-Type1-7.5-9.el7.noarch
--> Processing Dependency: ttmkfdir for package: xorg-x11-fonts-Type1-7.5-9.el7.noarch
--> Processing Dependency: mkfontdir for package: xorg-x11-fonts-Type1-7.5-9.el7.noarch
--> Processing Dependency: mkfontdir for package: xorg-x11-fonts-Type1-7.5-9.el7.noarch
--> Running transaction check
---> Package alsa-lib.x86_64 0:1.1.8-1.el7 will be installed
---> Package copy-jdk-configs.noarch 0:3.3-10.el7_5 will be installed
---> Package cups-libs.x86_64 1:1.6.3-51.el7 will be installed
--> Processing Dependency: libavahi-common.so.3()(64bit) for package: 1:cups-libs-1.6.3-51.el7.x86_64
--> Processing Dependency: libavahi-client.so.3()(64bit) for package: 1:cups-libs-1.6.3-51.el7.x86_64
---> Package dejavu-sans-fonts.noarch 0:2.33-6.el7 will be installed
--> Processing Dependency: dejavu-fonts-common = 2.33-6.el7 for package: dejavu-sans-fonts-2.33-6.el7.noarch
---> Package fontpackages-filesystem.noarch 0:1.44-8.el7 will be installed
---> Package freetype.x86_64 0:2.8-14.el7_9.1 will be installed
---> Package javapackages-tools.noarch 0:3.4.1-11.el7 will be installed
--> Processing Dependency: python-javapackages = 3.4.1-11.el7 for package: javapackages-tools-3.4.1-11.el7.noarch
--> Processing Dependency: libxslt for package: javapackages-tools-3.4.1-11.el7.noarch
---> Package libICE.x86_64 0:1.0.9-9.el7 will be installed
---> Package libSM.x86_64 0:1.2.2-2.el7 will be installed
---> Package libX11-common.noarch 0:1.6.7-4.el7_9 will be installed
---> Package libxcb.x86_64 0:1.13-1.el7 will be installed
--> Processing Dependency: libXau.so.6()(64bit) for package: libxcb-1.13-1.el7.x86_64
---> Package lksctp-tools.x86_64 0:1.0.17-2.el7 will be installed
---> Package pcsc-lite-libs.x86_64 0:1.8.8-8.el7 will be installed
---> Package ttmkfdir.x86_64 0:3.0.9-42.el7 will be installed
---> Package tzdata-java.noarch 0:2021e-1.el7 will be installed
---> Package xorg-x11-font-utils.x86_64 1:7.5-21.el7 will be installed
--> Processing Dependency: libfontenc.so.1()(64bit) for package: 1:xorg-x11-font-utils-7.5-21.el7.x86_64
--> Running transaction check
---> Package avahi-libs.x86_64 0:0.6.31-20.el7 will be installed
---> Package dejavu-fonts-common.noarch 0:2.33-6.el7 will be installed
---> Package libXau.x86_64 0:1.0.8-2.1.el7 will be installed
---> Package libfontenc.x86_64 0:1.1.3-3.el7 will be installed
---> Package libxslt.x86_64 0:1.1.28-6.el7 will be installed
---> Package python-javapackages.noarch 0:3.4.1-11.el7 will be installed
--> Processing Dependency: python-lxml for package: python-javapackages-3.4.1-11.el7.noarch
--> Running transaction check
---> Package python-lxml.x86_64 0:3.2.1-4.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=========================================================================================================
Package Arch Version Repository Size
=========================================================================================================
Installing:
java-11-openjdk x86_64 1:11.0.13.0.8-1.el7_9 updates 233 k
Installing for dependencies:
alsa-lib x86_64 1.1.8-1.el7 base 425 k
avahi-libs x86_64 0.6.31-20.el7 base 62 k
copy-jdk-configs noarch 3.3-10.el7_5 base 21 k
cups-libs x86_64 1:1.6.3-51.el7 base 359 k
dejavu-fonts-common noarch 2.33-6.el7 base 64 k
dejavu-sans-fonts noarch 2.33-6.el7 base 1.4 M
fontconfig x86_64 2.13.0-4.3.el7 base 254 k
fontpackages-filesystem noarch 1.44-8.el7 base 9.9 k
freetype x86_64 2.8-14.el7_9.1 updates 380 k
giflib x86_64 4.1.6-9.el7 base 40 k
java-11-openjdk-headless x86_64 1:11.0.13.0.8-1.el7_9 updates 39 M
javapackages-tools noarch 3.4.1-11.el7 base 73 k
libICE x86_64 1.0.9-9.el7 base 66 k
libSM x86_64 1.2.2-2.el7 base 39 k
libX11 x86_64 1.6.7-4.el7_9 updates 607 k
libX11-common noarch 1.6.7-4.el7_9 updates 164 k
libXau x86_64 1.0.8-2.1.el7 base 29 k
libXext x86_64 1.3.3-3.el7 base 39 k
libXi x86_64 1.7.9-1.el7 base 40 k
libXrender x86_64 0.9.10-1.el7 base 26 k
libXtst x86_64 1.2.3-1.el7 base 20 k
libfontenc x86_64 1.1.3-3.el7 base 31 k
libjpeg-turbo x86_64 1.2.90-8.el7 base 135 k
libpng x86_64 2:1.5.13-8.el7 base 213 k
libxcb x86_64 1.13-1.el7 base 214 k
libxslt x86_64 1.1.28-6.el7 base 242 k
lksctp-tools x86_64 1.0.17-2.el7 base 88 k
pcsc-lite-libs x86_64 1.8.8-8.el7 base 34 k
python-javapackages noarch 3.4.1-11.el7 base 31 k
python-lxml x86_64 3.2.1-4.el7 base 758 k
ttmkfdir x86_64 3.0.9-42.el7 base 48 k
tzdata-java noarch 2021e-1.el7 updates 190 k
xorg-x11-font-utils x86_64 1:7.5-21.el7 base 104 k
xorg-x11-fonts-Type1 noarch 7.5-9.el7 base 521 k
Transaction Summary
=========================================================================================================
Install 1 Package (+34 Dependent packages)
Total download size: 46 M
Installed size: 184 M
Is this ok [y/d/N]: y
Downloading packages:
(1/35): avahi-libs-0.6.31-20.el7.x86_64.rpm | 62 kB 00:00:00
(2/35): copy-jdk-configs-3.3-10.el7_5.noarch.rpm | 21 kB 00:00:00
(3/35): alsa-lib-1.1.8-1.el7.x86_64.rpm | 425 kB 00:00:00
(4/35): dejavu-fonts-common-2.33-6.el7.noarch.rpm | 64 kB 00:00:00
(5/35): cups-libs-1.6.3-51.el7.x86_64.rpm | 359 kB 00:00:00
(6/35): fontconfig-2.13.0-4.3.el7.x86_64.rpm | 254 kB 00:00:00
(7/35): fontpackages-filesystem-1.44-8.el7.noarch.rpm | 9.9 kB 00:00:00
(8/35): giflib-4.1.6-9.el7.x86_64.rpm | 40 kB 00:00:00
(9/35): freetype-2.8-14.el7_9.1.x86_64.rpm | 380 kB 00:00:00
(10/35): dejavu-sans-fonts-2.33-6.el7.noarch.rpm | 1.4 MB 00:00:00
(11/35): java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64.rpm | 233 kB 00:00:00
(12/35): javapackages-tools-3.4.1-11.el7.noarch.rpm | 73 kB 00:00:00
(13/35): libICE-1.0.9-9.el7.x86_64.rpm | 66 kB 00:00:00
(14/35): libSM-1.2.2-2.el7.x86_64.rpm | 39 kB 00:00:00
(15/35): libX11-1.6.7-4.el7_9.x86_64.rpm | 607 kB 00:00:00
(16/35): libXau-1.0.8-2.1.el7.x86_64.rpm | 29 kB 00:00:00
(17/35): libXi-1.7.9-1.el7.x86_64.rpm | 40 kB 00:00:00
(18/35): libXext-1.3.3-3.el7.x86_64.rpm | 39 kB 00:00:00
(19/35): libX11-common-1.6.7-4.el7_9.noarch.rpm | 164 kB 00:00:00
(20/35): libXtst-1.2.3-1.el7.x86_64.rpm | 20 kB 00:00:00
(21/35): libXrender-0.9.10-1.el7.x86_64.rpm | 26 kB 00:00:00
(22/35): libfontenc-1.1.3-3.el7.x86_64.rpm | 31 kB 00:00:00
(23/35): libjpeg-turbo-1.2.90-8.el7.x86_64.rpm | 135 kB 00:00:00
(24/35): libpng-1.5.13-8.el7.x86_64.rpm | 213 kB 00:00:00
(25/35): libxcb-1.13-1.el7.x86_64.rpm | 214 kB 00:00:00
(26/35): libxslt-1.1.28-6.el7.x86_64.rpm | 242 kB 00:00:00
(27/35): pcsc-lite-libs-1.8.8-8.el7.x86_64.rpm | 34 kB 00:00:00
(28/35): lksctp-tools-1.0.17-2.el7.x86_64.rpm | 88 kB 00:00:00
(29/35): python-javapackages-3.4.1-11.el7.noarch.rpm | 31 kB 00:00:00
(30/35): ttmkfdir-3.0.9-42.el7.x86_64.rpm | 48 kB 00:00:00
(31/35): tzdata-java-2021e-1.el7.noarch.rpm | 190 kB 00:00:00
(32/35): xorg-x11-font-utils-7.5-21.el7.x86_64.rpm | 104 kB 00:00:00
(33/35): python-lxml-3.2.1-4.el7.x86_64.rpm | 758 kB 00:00:00
(34/35): xorg-x11-fonts-Type1-7.5-9.el7.noarch.rpm | 521 kB 00:00:00
(35/35): java-11-openjdk-headless-11.0.13.0.8-1.el7_9.x86_64.rpm | 39 MB 00:00:08
---------------------------------------------------------------------------------------------------------
Total 4.8 MB/s | 46 MB 00:00:09
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : libxslt-1.1.28-6.el7.x86_64 1/35
Installing : 2:libpng-1.5.13-8.el7.x86_64 2/35
Installing : freetype-2.8-14.el7_9.1.x86_64 3/35
Installing : libjpeg-turbo-1.2.90-8.el7.x86_64 4/35
Installing : fontpackages-filesystem-1.44-8.el7.noarch 5/35
Installing : libICE-1.0.9-9.el7.x86_64 6/35
Installing : libSM-1.2.2-2.el7.x86_64 7/35
Installing : dejavu-fonts-common-2.33-6.el7.noarch 8/35
Installing : dejavu-sans-fonts-2.33-6.el7.noarch 9/35
Installing : fontconfig-2.13.0-4.3.el7.x86_64 10/35
Installing : ttmkfdir-3.0.9-42.el7.x86_64 11/35
Installing : python-lxml-3.2.1-4.el7.x86_64 12/35
Installing : python-javapackages-3.4.1-11.el7.noarch 13/35
Installing : javapackages-tools-3.4.1-11.el7.noarch 14/35
Installing : avahi-libs-0.6.31-20.el7.x86_64 15/35
Installing : 1:cups-libs-1.6.3-51.el7.x86_64 16/35
Installing : libX11-common-1.6.7-4.el7_9.noarch 17/35
Installing : libfontenc-1.1.3-3.el7.x86_64 18/35
Installing : 1:xorg-x11-font-utils-7.5-21.el7.x86_64 19/35
Installing : xorg-x11-fonts-Type1-7.5-9.el7.noarch 20/35
Installing : libXau-1.0.8-2.1.el7.x86_64 21/35
Installing : libxcb-1.13-1.el7.x86_64 22/35
Installing : libX11-1.6.7-4.el7_9.x86_64 23/35
Installing : libXext-1.3.3-3.el7.x86_64 24/35
Installing : libXi-1.7.9-1.el7.x86_64 25/35
Installing : libXtst-1.2.3-1.el7.x86_64 26/35
Installing : giflib-4.1.6-9.el7.x86_64 27/35
Installing : libXrender-0.9.10-1.el7.x86_64 28/35
Installing : pcsc-lite-libs-1.8.8-8.el7.x86_64 29/35
Installing : lksctp-tools-1.0.17-2.el7.x86_64 30/35
Installing : copy-jdk-configs-3.3-10.el7_5.noarch 31/35
Installing : alsa-lib-1.1.8-1.el7.x86_64 32/35
Installing : tzdata-java-2021e-1.el7.noarch 33/35
Installing : 1:java-11-openjdk-headless-11.0.13.0.8-1.el7_9.x86_64 34/35
Installing : 1:java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64 35/35
Verifying : libXext-1.3.3-3.el7.x86_64 1/35
Verifying : 1:java-11-openjdk-11.0.13.0.8-1.el7_9.x86_64 2/35
Verifying : libXi-1.7.9-1.el7.x86_64 3/35
Verifying : fontconfig-2.13.0-4.3.el7.x86_64 4/35
Verifying : giflib-4.1.6-9.el7.x86_64 5/35
Verifying : libXrender-0.9.10-1.el7.x86_64 6/35
Verifying : 1:xorg-x11-font-utils-7.5-21.el7.x86_64 7/35
Verifying : python-lxml-3.2.1-4.el7.x86_64 8/35
Verifying : tzdata-java-2021e-1.el7.noarch 9/35
Verifying : libICE-1.0.9-9.el7.x86_64 10/35
Verifying : fontpackages-filesystem-1.44-8.el7.noarch 11/35
Verifying : ttmkfdir-3.0.9-42.el7.x86_64 12/35
Verifying : 1:cups-libs-1.6.3-51.el7.x86_64 13/35
Verifying : alsa-lib-1.1.8-1.el7.x86_64 14/35
Verifying : copy-jdk-configs-3.3-10.el7_5.noarch 15/35
Verifying : python-javapackages-3.4.1-11.el7.noarch 16/35
Verifying : dejavu-fonts-common-2.33-6.el7.noarch 17/35
Verifying : libXtst-1.2.3-1.el7.x86_64 18/35
Verifying : libxcb-1.13-1.el7.x86_64 19/35
Verifying : lksctp-tools-1.0.17-2.el7.x86_64 20/35
Verifying : 1:java-11-openjdk-headless-11.0.13.0.8-1.el7_9.x86_64 21/35
Verifying : libjpeg-turbo-1.2.90-8.el7.x86_64 22/35
Verifying : xorg-x11-fonts-Type1-7.5-9.el7.noarch 23/35
Verifying : dejavu-sans-fonts-2.33-6.el7.noarch 24/35
Verifying : 2:libpng-1.5.13-8.el7.x86_64 25/35
Verifying : pcsc-lite-libs-1.8.8-8.el7.x86_64 26/35
Verifying : javapackages-tools-3.4.1-11.el7.noarch 27/35
Verifying : libXau-1.0.8-2.1.el7.x86_64 28/35
Verifying : libSM-1.2.2-2.el7.x86_64 29/35
Verifying : libxslt-1.1.28-6.el7.x86_64 30/35
Verifying : libX11-1.6.7-4.el7_9.x86_64 31/35
Verifying : libfontenc-1.1.3-3.el7.x86_64 32/35
Verifying : freetype-2.8-14.el7_9.1.x86_64 33/35
Verifying : libX11-common-1.6.7-4.el7_9.noarch 34/35
Verifying : avahi-libs-0.6.31-20.el7.x86_64 35/35
Installed:
java-11-openjdk.x86_64 1:11.0.13.0.8-1.el7_9
Dependency Installed:
alsa-lib.x86_64 0:1.1.8-1.el7 avahi-libs.x86_64 0:0.6.31-20.el7
copy-jdk-configs.noarch 0:3.3-10.el7_5 cups-libs.x86_64 1:1.6.3-51.el7
dejavu-fonts-common.noarch 0:2.33-6.el7 dejavu-sans-fonts.noarch 0:2.33-6.el7
fontconfig.x86_64 0:2.13.0-4.3.el7 fontpackages-filesystem.noarch 0:1.44-8.el7
freetype.x86_64 0:2.8-14.el7_9.1 giflib.x86_64 0:4.1.6-9.el7
java-11-openjdk-headless.x86_64 1:11.0.13.0.8-1.el7_9 javapackages-tools.noarch 0:3.4.1-11.el7
libICE.x86_64 0:1.0.9-9.el7 libSM.x86_64 0:1.2.2-2.el7
libX11.x86_64 0:1.6.7-4.el7_9 libX11-common.noarch 0:1.6.7-4.el7_9
libXau.x86_64 0:1.0.8-2.1.el7 libXext.x86_64 0:1.3.3-3.el7
libXi.x86_64 0:1.7.9-1.el7 libXrender.x86_64 0:0.9.10-1.el7
libXtst.x86_64 0:1.2.3-1.el7 libfontenc.x86_64 0:1.1.3-3.el7
libjpeg-turbo.x86_64 0:1.2.90-8.el7 libpng.x86_64 2:1.5.13-8.el7
libxcb.x86_64 0:1.13-1.el7 libxslt.x86_64 0:1.1.28-6.el7
lksctp-tools.x86_64 0:1.0.17-2.el7 pcsc-lite-libs.x86_64 0:1.8.8-8.el7
python-javapackages.noarch 0:3.4.1-11.el7 python-lxml.x86_64 0:3.2.1-4.el7
ttmkfdir.x86_64 0:3.0.9-42.el7 tzdata-java.noarch 0:2021e-1.el7
xorg-x11-font-utils.x86_64 1:7.5-21.el7 xorg-x11-fonts-Type1.noarch 0:7.5-9.el7
Complete!
[root@metabase /]# java -version
openjdk version "11.0.13" 2021-10-19 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.13+8-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.13+8-LTS, mixed mode, sharing)
[root@metabase /]#
jarファイルのダウンロード
Metabase用ディレクトリを作成し、Metabase公式ページよりjarファイルをダウンロードする。
※URLの「v0.41.4」バージョン部分は変更される可能性があるため、公式ページを確認してバージョンを指定すること。
[root@metabase /]# mkdir /opt/metabase
[root@metabase /]# cd /opt/metabase/
[root@metabase metabase]# wget https://downloads.metabase.com/v0.41.4/metabase.jar
--2021-12-11 06:43:16-- https://downloads.metabase.com/v0.41.4/metabase.jar
Resolving downloads.metabase.com (downloads.metabase.com)... 52.85.193.129, 52.85.193.83, 52.85.193.2, ...
Connecting to downloads.metabase.com (downloads.metabase.com)|52.85.193.129|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 273998525 (261M) [application/java-archive]
Saving to: 'metabase.jar'
100%[===============================================================>] 273,998,525 5.46MB/s in 47s
2021-12-11 06:44:03 (5.54 MB/s) - 'metabase.jar' saved [273998525/273998525]
[root@metabase metabase]# ls -l
total 267580
-rw-r--r-- 1 root root 273998525 Dec 10 20:23 metabase.jar
[root@metabase metabase]#
Metabaseポート開放
iptables/firewalldサービスが有効の場合、Metabase用の3000番ポートを開放する。
(主題から外れるため、ポート開放の詳細は本記事では割愛する。)
Metabaseプロセス起動
Metabaseプロセスを起動する。
nohupコマンドを付けることで、常駐プロセスとして起動する。
[root@metabase /]# cd /opt/metabase/
[root@metabase metabase]# nohup java -jar ./metabase.jar &
[1] 271
[root@metabase metabase]# nohup: ignoring input and appending output to 'nohup.out'
[root@metabase metabase]# ps -ef | grep metabase
root 271 256 39 07:02 pts/1 00:00:03 java -jar ./metabase.jar
root 284 256 0 07:03 pts/1 00:00:00 grep --color=auto metabase
[root@metabase metabase]#
使用するサーバのスペックにもよるが、Metabase起動には時間がかかる。(おそらく内部でJVMを起動しているため。)
nohupコマンドによって出力されるnohup.outログを確認し、「Metabase Initialization COMPLETE」というメッセージが表示されれば起動が完了している。
[root@metabase metabase]# tail -f nohup.out
〜〜〜省略〜〜〜
2021-12-11 07:06:59,574 INFO metabase.task :: Initializing task SendAbandomentEmails ?
2021-12-11 07:06:59,642 INFO metabase.task :: Initializing task SendPulses ?
2021-12-11 07:06:59,646 INFO metabase.task :: Initializing task SendFollowUpEmails ?
2021-12-11 07:06:59,733 INFO metabase.task :: Initializing task TaskHistoryCleanup ?
2021-12-11 07:06:59,737 INFO metabase.core :: Looks like this is a new installation ... preparing setup wizard
2021-12-11 07:07:00,052 INFO metabase.core :: Please use the following URL to setup your Metabase installation:
http://localhost:3000/setup/
2021-12-11 07:07:00,566 INFO metabase.sample-data :: Loading sample dataset...
2021-12-11 07:07:00,966 INFO driver.impl :: Initializing driver :sql...
〜〜〜省略〜〜〜
2021-12-11 07:09:57,862 INFO metabase.core :: Metabase Initialization COMPLETE
起動完了後、ブラウザでWEBアクセスすると、以下のような初期設定画面が表示される。
http://<サーバ名(IPアドレス)>:3000
初期設定は「Metabase初期設定」の章に記載する。
Metabase初期設定
インストールおよび起動完了後、ブラウザでWEBアクセスして以下のような初期設定画面が表示される。
「開始しましょう」を選択して初期設定に進む。
言語の設定
「Japanese」→「次へ」を選択する。
ユーザ情報の設定
ユーザ名やパスワードなどを入力し、「次へ」を選択する。
データ分析対象データベースの設定
データ分析対象のデータベースを設定する。
今回はMySQLを選択し、MySQLに作成したデータベースを指定した。
その後、ページ下部の「次へ」を選択する。
Metabaseへの情報提供の設定
Metabaseへ情報提供することに支障がなければON、
情報提供できない(したくない)ならばOFFに変更して「次へ」を選択する。
初期設定の完了
初期設定が完了すると以下の画面になる。
「Metabaseを使い始める」を選択する。
Metabaseへのログイン
「ユーザ情報の設定」で指定したメールアドレスとパスワードを入力してログインする。
ログインすると、以下のようなダッシュボード画面が表示される。
以上でMetabaseの初期設定が完了した。
データ可視化レポートの作成方法
Metabaseによるデータ可視化レポートの作成方法を記載する。
分析対象データ例
データベースサーバ(MySQL)に、以下のようなデータを作成した。
このデータを分析対象として、データ可視化レポートを作成してみる。
「person」テーブル
mysql> select * from person;
+-----------+-------------+
| person_id | person_name |
+-----------+-------------+
| 1 | Aさん |
| 2 | Bさん |
+-----------+-------------+
2 rows in set (0.00 sec)
mysql>
「category」テーブル
mysql> select * from category;
+-------------+--------------------------+
| category_id | category_name |
+-------------+--------------------------+
| 0 | 収入 |
| 10 | 食費 |
| 15 | 日用品・生活雑貨 |
| 20 | 生活サービス費 |
| 25 | 嗜好品・娯楽費 |
| 30 | 教育費・養育費 |
| 35 | 交通費 |
| 40 | 医療費 |
| 45 | 交際費 |
| 50 | 保険料 |
| 90 | 臨時支出・その他 |
+-------------+--------------------------+
11 rows in set (0.00 sec)
mysql>
「date」テーブル
mysql> select * from data;
+---------+-----------+-------------+------------+-------+-----------+
| data_id | person_id | category_id | data_date | money | content |
+---------+-----------+-------------+------------+-------+-----------+
| 1 | 1 | 0 | 2021-10-20 | 10000 | 給料 |
| 2 | 2 | 0 | 2021-10-20 | 20000 | 給料 |
| 3 | 1 | 0 | 2021-11-20 | 30000 | 給料 |
| 4 | 2 | 0 | 2021-11-20 | 40000 | 給料 |
| 5 | 1 | 0 | 2021-12-20 | 50000 | 給料 |
| 6 | 2 | 0 | 2021-12-20 | 60000 | 給料 |
| 7 | 1 | 10 | 2021-10-01 | -3000 | 外食 |
| 8 | 2 | 10 | 2021-10-02 | -2000 | 食材 |
| 9 | 1 | 10 | 2021-11-03 | -1000 | 食材 |
| 10 | 2 | 10 | 2021-11-04 | -3000 | 外食 |
| 11 | 1 | 10 | 2021-12-05 | -2000 | 食材 |
| 12 | 2 | 10 | 2021-12-06 | -1000 | 食材 |
| 13 | 1 | 25 | 2021-10-07 | -500 | お菓子 |
| 14 | 2 | 25 | 2021-11-08 | -500 | カフェ |
| 15 | 1 | 25 | 2021-12-09 | -500 | ゲーム |
+---------+-----------+-------------+------------+-------+-----------+
15 rows in set (0.00 sec)
mysql>
レポート作成例
データ可視化レポートの作成例として、月ごとの収入合計グラフを作成する。
今回はAさんとBさんの収入を積み上げで作成する。
画面右上の「照会する」を選択する。
「カスタム質問」を選択する。
「TESTDB」→「Data」を選択する。
フィルターの「回答を絞るためにフィルターを追加する」→「Category」→「Category Name」を選択する。
「収入」→「である」→「フィルターを追加する」を選択する。
要約の「見たいメトリクスを選ぶ」→「…の合計」→「Money」を選択する。
「集約するためのキー列を選ぶ」→「Data Date※」を選択する。
※「Data Date」選択時、集約期間を選択できる。今回は月ごとなので「Month」を選択した。
「+マーク」→「Person」→「Person Name」を選択する。
「ビジュアライズ」を選択する。
「ビジュアライゼーション」→「棒」を選択する。
「表示」→「スタック」→「完了」を選択する。
「保存」を選択する。
レポート名を入力し、「保存」を選択する。
保存したデータ可視化レポートを表示する場合、トップ画面から以下のように画面遷移する。