sql >> Database >  >> RDS >> Mysql

Verbind Metabase met MySQL voor gegevensverkenning

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.

  1. Installeer software-properties-common om gemakkelijk nieuwe opslagplaatsen toe te voegen:

    sudo apt-get install software-properties-common
    
  2. Voeg de Java PPA toe:

    sudo add-apt-repository ppa:webupd8team/java
    
  3. Werk de bronnenlijst bij:

    sudo apt-get update
    
  4. Installeer de Java JDK 8:

    sudo apt-get install oracle-java8-installer
    

MySQL-server

  1. MySQL-server downloaden. Voer een root-wachtwoord in wanneer dit is opgegeven:

    sudo apt install mysql-server
    
  2. Log in als rootgebruiker:

    mysql -u root -p
    
  3. 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

  1. Download het jar-bestand van Metabase:

    wget http://downloads.metabase.com/v0.28.1/metabase.jar
    
  2. Verplaats het bestand naar /var zodat het kan starten bij opnieuw opstarten:

    sudo mv metabase.jar /var/metabase.jar
    

Reverse Proxy met NGINX

  1. NGINX installeren

    sudo apt install nginx
    
  2. 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";
            }
    }
  3. Controleer of er geen problemen zijn met de configuratie:

    sudo nginx -t
    
  4. 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.

  1. Git installeren:

    sudo apt install git
    
  2. Kloon de repository die de testdatabase bevat:

    git clone https://github.com/datacharmer/test_db.git
    
  3. Navigeer naar de gekloonde repository:

    cd test_db
    
  4. Laad employees.sql in de metabase_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

  1. 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
  2. Laad deze omgevingsvariabelen:

    source metabase-env
    

Stel Metabase in om te starten bij opnieuw opstarten

  1. Controleer het pad van uw JDK-binary:

    which java
    

    Dit zou een pad moeten afdrukken zoals /usr/bin/java .

  2. 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. Vervang User 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
  3. Pas de wijzigingen toe:

    sudo systemctl start metabase
    
  4. 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.

  1. De eerste keer dat u toegang probeert te krijgen, duurt het even omdat de MySQL-database moet worden gemigreerd:

  2. Maak een account aan:

  3. Voer de database-informatie in of sla deze over en voeg de informatie later toe vanuit het beheerdersdashboard:

  4. Selecteer in het vervolgkeuzemenu rechtsboven Beheerdersdashboard en klik vervolgens op Gegevensmodel in het bovenste menu.

  5. Selecteer aan de linkerkant salarissen om informatie over de tabel te zien, zoals externe sleutels en kolomnamen. Klik op Een segment toevoegen :

  6. 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):

  7. 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

  1. Wat is de beste manier om een ​​afbeelding van een SQL-serverdatabase in asp.net weer te geven?

  2. 2 manieren om de Unix-tijdstempel in SQLite te retourneren

  3. PL/SQL-programma om de records uit de tabel te verwijderen

  4. SQL-query om tabel in MySQL te verwijderen