簡単・便利!オープンソースのデータ分析ツール「Metabase」

IT技術

はじめに

オープンソースで使用できるデータ分析ツール(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」を選択する。

「ビジュアライズ」を選択する。

「ビジュアライゼーション」→「棒」を選択する。

「表示」→「スタック」→「完了」を選択する。

「保存」を選択する。

レポート名を入力し、「保存」を選択する。

保存したデータ可視化レポートを表示する場合、トップ画面から以下のように画面遷移する。

タイトルとURLをコピーしました