Wat is Metabase
Metabase biedt een interface om gegevens in uw browser op te vragen. Naast het ondersteunen van SQL-query's, biedt Metabase functionaliteit om gegevens zonder SQL te analyseren, dashboards te maken en statistieken bij te houden. Deze handleiding laat zien hoe u MySQL verbindt met Metabase en vervolgens implementeert op NGINX via een reverse proxy.
Er zijn een aantal extra databases die worden ondersteund van SQLite tot PostgreSQL. Het visualiseren van resultaten wordt heel eenvoudig via een intuïtieve interface. Dit maakt Metabase veelzijdig voor het delen van gegevens, zelfs met mensen zonder analytische achtergrond.
Installeer Metabase
Java Runtime-omgeving
De stappen in deze sectie zullen de Java 8 JDK installeren op Ubuntu 16.04. Zie de officiële documenten voor andere distributies.
-
Installeer
software-properties-common
om gemakkelijk nieuwe opslagplaatsen toe te voegen:sudo apt-get install software-properties-common
-
Voeg de Java PPA toe:
sudo add-apt-repository ppa:webupd8team/java
-
Werk de bronnenlijst bij:
sudo apt-get update
-
Installeer de Java JDK 8:
sudo apt-get install oracle-java8-installer
MySQL-server
-
MySQL-server downloaden. Voer een root-wachtwoord in wanneer dit is opgegeven:
sudo apt install mysql-server
-
Log in als rootgebruiker:
mysql -u root -p
-
Maak een database en gebruiker voor 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
Metabase downloaden
-
Download het jar-bestand van Metabase:
wget http://downloads.metabase.com/v0.28.1/metabase.jar
-
Verplaats het bestand naar
/var
zodat het kan starten bij opnieuw opstarten:sudo mv metabase.jar /var/metabase.jar
Reverse Proxy met NGINX
-
NGINX installeren
sudo apt install nginx
-
Maak een nieuw NGINX-configuratiebestand met de onderstaande instellingen
server_name
met uw FDQN of openbaar IP-adres:- Bestand:/ 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"; } }
-
Controleer of er geen problemen zijn met de configuratie:
sudo nginx -t
-
Start NGINX opnieuw:
sudo systemctl restart nginx
Download voorbeeld MySQL-database
DeEmployees Testing Database is een voorbeelddatabase die in MySQL kan worden geladen. De database bestaat uit werknemers- en salarisgegevens met meer dan 2,8 miljoen vermeldingen, deze grootte maakt het nuttig om op een niet-triviale manier te experimenteren.
-
Git installeren:
sudo apt install git
-
Kloon de repository die de testdatabase bevat:
git clone https://github.com/datacharmer/test_db.git
-
Navigeer naar de gekloonde repository:
cd test_db
-
Laad
employees.sql
in demetabase_example
database en voer het gebruikerswachtwoord van de database in wanneer daarom wordt gevraagd:mysql -u metabase_user -p employees < employees.sql
De console zal de tabellen afdrukken die zijn geladen, evenals de totale tijd die nodig is om te voltooien.
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
Omgevingsvariabelen
-
Maak een nieuw tekstbestand met de omgevingsvariabelen voor Metabase:
- Bestand: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
-
Laad deze omgevingsvariabelen:
source metabase-env
Stel Metabase in om te starten bij opnieuw opstarten
-
Controleer het pad van uw JDK-binary:
which java
Dit zou een pad moeten afdrukken zoals
/usr/bin/java
. -
Maak een systemd-configuratiebestand om ervoor te zorgen dat Metabase bij het opstarten wordt uitgevoerd.
ExecStart=
moet van bovenaf op het JDK-pad worden ingesteld. VervangUser
met je Unix-gebruikersnaam:- Bestand:/ 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
-
Pas de wijzigingen toe:
sudo systemctl start metabase
-
Controleer of Metabase actief is:
sudo systemctl status metabase
Firewall-regels
Opmerking De freeCloud Firewall-service van Linode kan worden gebruikt om de interne firewallconfiguratie te vervangen of aan te vullen. Zie onze handleiding Aan de slag met Cloud Firewalls voor meer informatie over Cloud Firewalls. Raadpleeg de handleiding Problemen met firewalls oplossen voor hulp bij het oplossen van algemene firewallproblemen.
UFW is geweldig om ongeautoriseerde toegang tot uw database te voorkomen. Een redelijke standaard is om poort 80/443 en SSH toe te staan:
sudo ufw allow http
sudo ufw allow https
sudo ufw allow ssh
sudo ufw enable
Controleer de firewallregels:
sudo ufw status
Metabase-interface
Metabase is nu toegankelijk in de browser op het openbare IP-adres van uw Linode.
-
De eerste keer dat u toegang probeert te krijgen, duurt het even omdat de MySQL-database moet worden gemigreerd:
-
Maak een account aan:
-
Voer de database-informatie in of sla deze over en voeg de informatie later toe vanuit het beheerdersdashboard:
-
Selecteer in het vervolgkeuzemenu rechtsboven Beheerdersdashboard en klik vervolgens op Gegevensmodel in het bovenste menu.
-
Selecteer aan de linkerkant salarissen om informatie over de tabel te zien, zoals externe sleutels en kolomnamen. Klik op Een segment toevoegen :
-
Maak een filter om alle werknemers te zien met een salaris hoger dan $50.000 (Metabase kunt u dit filter maken zonder SQL te schrijven):
-
Bekijk de resultaten:
Metabase heeft veel meer functionaliteit die u kunt verkennen. Raadpleeg de officiële documentatie voor andere gebruiksscenario's met Metabase.
Meer informatie
U kunt de volgende bronnen raadplegen voor aanvullende informatie over dit onderwerp. Hoewel deze worden verstrekt in de hoop dat ze nuttig zullen zijn, houd er rekening mee dat we niet kunnen instaan voor de nauwkeurigheid of tijdigheid van extern gehost materiaal.
- De officiële MySQL-website
- Metabase
- Werknemers testen database