Hvad er Metabase
Metabase giver en grænseflade til at forespørge data på din browser. Ud over at understøtte SQL-forespørgsler tilbyder Metabase funktionalitet til at analysere data uden SQL, oprette dashboards og spore metrics. Denne vejledning viser, hvordan du forbinder MySQL til Metabase og derefter implementerer på NGINX gennem en omvendt proxy.
Der er en række yderligere databaser, der understøttes fra SQLite til PostgreSQL. Visualisering af resultater bliver meget enkel gennem en intuitiv grænseflade. Dette gør Metabase alsidig til at dele data selv blandt dem uden analytisk baggrund.
Installer Metabase
Java Runtime Environment
Trinnene i dette afsnit installerer Java 8 JDK på Ubuntu 16.04. For andre distributioner, se de officielle dokumenter.
-
Installer
software-properties-common
for nemt at tilføje nye depoter:sudo apt-get install software-properties-common
-
Tilføj Java PPA:
sudo add-apt-repository ppa:webupd8team/java
-
Opdater kildelisten:
sudo apt-get update
-
Installer Java JDK 8:
sudo apt-get install oracle-java8-installer
MySQL-server
-
Download MySQL-server. Indtast en root-adgangskode, når den er angivet:
sudo apt install mysql-server
-
Log ind som root-bruger:
mysql -u root -p
-
Opret en database og bruger til Metabase:
CREATE DATABASE employees; CREATE USER 'metabase_user' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON employees.* TO 'metabase_user'; GRANT RELOAD ON *.* TO 'metabase_user'; FLUSH PRIVILEGES; quit
Download Metabase
-
Download jar-filen fra Metabase:
wget http://downloads.metabase.com/v0.28.1/metabase.jar
-
Flyt filen til
/var
så den kan starte ved genstart:sudo mv metabase.jar /var/metabase.jar
Omvendt proxy med NGINX
-
Installer NGINX
sudo apt install nginx
-
Opret en ny NGINX-konfigurationsfil med indstillingerne nedenfor med indstilling af
server_name
med din FDQN eller offentlige IP-adresse:- Fil:/ etc/nginx/conf.d/metabase.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14
server { listen 80; listen [::]:80; server_name _; location / { proxy_pass http://localhost:3000/; proxy_redirect http://localhost:3000/ $scheme://$host/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; } }
-
Bekræft, at der ikke er problemer med konfigurationen:
sudo nginx -t
-
Genstart NGINX:
sudo systemctl restart nginx
Download eksempel på MySQL-database
TheEmployees Testing Database er en eksempeldatabase, der kan indlæses i MySQL. Databasen består af medarbejder- og løndata med over 2,8 millioner poster, denne størrelse gør den nyttig til at eksperimentere på en ikke-triviel måde.
-
Installer git:
sudo apt install git
-
Klon depotet, der indeholder testdatabasen:
git clone https://github.com/datacharmer/test_db.git
-
Naviger ind i det klonede lager:
cd test_db
-
Indlæs
employees.sql
ind imetabase_example
database og indtast databasebrugeradgangskoden, når du bliver bedt om det:mysql -u metabase_user -p employees < employees.sql
Konsollen udskriver de tabeller, der er indlæst, samt den samlede tid til at færdiggøre.
Enter password: INFO CREATING DATABASE STRUCTURE INFO storage engine: InnoDB INFO LOADING departments INFO LOADING employees INFO LOADING dept_emp INFO LOADING dept_manager INFO LOADING titles INFO LOADING salaries data_load_time_diff 00:00:52
Miljøvariabler
-
Opret en ny tekstfil, der indeholder miljøvariablerne for Metabase:
- Fil:metabase -env
1 2 3 4 5 6
export MB_DB_TYPE=mysql export MB_DB_DBNAME=employees export MB_DB_PORT=3306 export MB_DB_USER=metabase_user export MB_DB_PASS=password export MB_DB_HOST=localhost
-
Indlæs disse miljøvariabler:
source metabase-env
Indstil Metabase til at starte ved genstart
-
Tjek stien til din JDK-binær:
which java
Dette bør udskrive en sti såsom
/usr/bin/java
. -
Opret en systemkonfigurationsfil for at sikre, at Metabase kører ved opstart.
ExecStart=
skal indstilles til JDK-stien ovenfra. Sørg for at erstatteUser
med dit Unix-brugernavn:- Fil:/ etc/systemd/system/metabase.service
[Unit] Description=Metabase server After=syslog.target After=network.target[Service] User=username Type=simple [Service] ExecStart=/usr/bin/java -jar /var/metabase.jar Restart=always StandardOutput=syslog StandardError=syslog SyslogIdentifier=metabase [Install] WantedBy=multi-user.target
-
Anvend ændringerne:
sudo systemctl start metabase
-
Tjek, at Metabase er aktiv:
sudo systemctl status metabase
Firewallregler
Bemærk Linodes freeCloud Firewall-tjeneste kan bruges til at erstatte eller supplere intern firewall-konfiguration. For mere information om Cloud Firewalls, se vores Kom godt i gang med Cloud Firewalls-vejledning. Se guiden til fejlfinding af firewalls for at få hjælp til at løse generelle firewallproblemer.
UFW er fantastisk til at forhindre uautoriseret adgang til din database. En rimelig standard er at tillade port 80/443 og SSH:
sudo ufw allow http
sudo ufw allow https
sudo ufw allow ssh
sudo ufw enable
Tjek firewall-reglerne:
sudo ufw status
Metabase-grænseflade
Metabase er nu tilgængelig i browseren på din Linodes offentlige IP-adresse.
-
Første gang du forsøger at få adgang, vil det tage noget tid, fordi MySQL-databasen skal migreres:
-
Opret en konto:
-
Indtast databaseoplysningerne, eller spring dette over, og tilføj oplysningerne senere fra Admin Panel:
-
Fra rullemenuen øverst til højre skal du vælge Admin Panel og derefter klikke på Data Model i topmenuen.
-
Til venstre skal du vælge lønninger for at se oplysninger om tabellen, såsom fremmednøgler og kolonnenavne. Klik på Tilføj et segment :
-
Opret et filter for at se alle medarbejdere med en løn på over $50.000 (Metabase giver dig mulighed for at oprette dette filter uden at skrive SQL):
-
Se resultaterne:
Metabase har meget mere funktionalitet, du kan udforske. Se den officielle dokumentation for andre brugssager med Metabase.
Flere oplysninger
Du ønsker måske at konsultere følgende ressourcer for yderligere oplysninger om dette emne. Selvom disse leveres i håb om, at de vil være nyttige, bemærk venligst, at vi ikke kan stå inde for nøjagtigheden eller aktualiteten af eksternt hostede materialer.
- Det officielle MySQL-websted
- Metabase
- Medarbejdere, der tester database