Metabase
Siehe auch
Installation
Metabase x.44+ benötigt Java 11 oder höher. Wer Metabase wie hier beschrieben mit MariaDB/MySQL statt H2 als Backend einsetzt, benötigt MariaDB 10.2.2+/MySQL 5.7.7+.
dnf -y install java-11-openjdk
# for excel export:
dnf -y install freetype fontconfig dejavu-sans-fonts
alternatives --config java
Metabase installieren:
VER=0.49.25
mkdir -p /opt/metabase
useradd metabase --home-dir=/opt/metabase --shell=/sbin/nologin --no-create-home
wget http://downloads.metabase.com/v$VER/metabase.jar --output-document=/opt/metabase/metabase.$VER.jar
ln -s /opt/metabase/metabase.$VER.jar /opt/metabase/metabase.jar
chown -R metabase:metabase /opt/metabase
restorecon -Fvr /opt/metabase
Datenbank für Metabase anlegen. Bei MariaDB (siehe https://www.metabase.com/docs/latest/installation-and-operation/configuring-application-database#mysql-or-mariadb):
create database metabase character set utf8mb4 collate utf8mb4_unicode_ci;
Metabase-Benutzer in der Zieldatenbank anlegen. Bei MariaDB:
grant all privileges on metabase.* to 'metabase'@'localhost' identified by 'linuxfabrik';
Unit-File:
[Unit]
Description=Metabase
Requires=network.target
After=multi-user.target columnstore.service
[Service]
Type=simple
WorkingDirectory=/opt/metabase
ExecStart=/usr/bin/java -Xmx8g -jar metabase.jar
User=metabase
Environment="MB_DB_TYPE=mysql"
Environment="MB_DB_DBNAME=metabase"
Environment="MB_DB_PORT=3306"
Environment="MB_DB_USER=metabase"
Environment="MB_DB_PASS=linuxfabrik"
Environment="MB_DB_HOST=localhost"
[Install]
WantedBy=default.target
systemctl daemon-reload
systemctl enable --now metabase
Aufruf mit http://metabase:3000.
Metabase konfigurieren
In Metabase:
Usage data preferences: abschalten
Settings (Gear-Icon) > Admin > Settings
General: Site Name = My Metabase, Timezone = Europe/Berlin, Friendly table and field names = Only replace with spaces
Email: Zugangsdaten für einen noreply-Account verwenden
Maps: Add a Map > https://www.example.cm/schweizer-kantone.geojson, Schweizer Kantone
Formatting: 2018/1/7, YYYY-M-D, Time style = 24h, Number = 100 000,00; Unit of Currency = Swiss Franc
People
User anlegen
Databases
MyDatabase: Sync database schema now, Re-scan field values now
Data Model > MyDatabase
Felder nach dem Sync schöner benennen
richtigen Datentyp (das meiste ist tatsächlich „Category“) wählen
Nun im Admin-Bereich den Zugang auf die MyDatabase-DB einrichten.
Update
Metabase aktualisieren:
#!/usr/bin/env bash
if [ -z "$1" ]; then
echo "Usage: $0 <new.ver.sion>"
exit 1
fi
VER=$1
wget http://downloads.metabase.com/v$VER/metabase.jar --output-document=/opt/metabase/metabase.$VER.jar
unlink /opt/metabase/metabase.jar
ln -s metabase.$VER.jar /opt/metabase/metabase.jar
systemctl restart metabase
echo "Done. Please check /var/log/messages"
Aufruf mit
./update-metabase 0.47.1
Troubleshooting
- Nach Upgrade
Reason: liquibase.exception.DatabaseException: (conn=164) Table 'data_permissions' already exists
Tabelle
data_permissions
löschen und Metabase erneut starten. Die Migrationsskripte sollten nun durchlaufen.
Migration einer Installation von A nach B
Bedeutet in der Realität, nur die Applikationsdatenbank (hier „metabase“) zu migrieren. Vor dem Start von Metabase auf dem neuen System die Environment-Variablen für den Zugang zur eigenen Datenbank setzen und Metabase manuell starten, um auftretende Fehler zu sehen. Bei MariaDB darauf achten, dass lower_case_table_names
identisch zum vorherigen Server gesetzt ist.
export MB_DB_AUTOMIGRATE=false # only if you want to do DB upgrades manually
export MB_DB_TYPE=mysql
export MB_DB_DBNAME=metabase
export MB_DB_PORT=3306
export MB_DB_USER=metabse
export MB_DB_PASS=linuxfabrik
export MB_DB_HOST=localhost
cd /opt/metabase/
/usr/bin/java -Xmx8g -jar metabase.jar
Built on 2024-11-18