Skip to main content

Abfragen über mehrere Datenbanken

Metabase kann keine Abfragen über Tabellen aus mehreren Datenbanken erstellen. In einigen Servern können zwar Workarounds gebaut werden, wie z. B. beim Microsoft SQL Server (siehe Linked Servers), jedoch sind diese Lösungen auch nicht so schön.

Jedoch kann mit dem Tool Presto (https://jaeckel.one/books/presto) eine zusätzliche Schicht zwischen Metabase und den Datenbanksystemen geschaffen werden. Presto sammelt dann die Daten von den Systemen ein und übergibt sie in Form einer Datenschnittstelle an Metabase. In Presto wird hierzu ein sog. Catalog erstellt, welcher dann als eine Datenbank in Metabase eingebunden werden kann. Der Catalog wiederum enthält die Abfragen, welche sich aus verschiedenen Datenbanksystemen bilden.

Diese Abfragen werden dann in Metabase wie Tabellen dargestellt, sodass sich komfortabel die UI und der mächtige Designer von Metabase verwenden lassen. Die Komplexität der Abfragen wird in Presto vor den Anwendern versteckt.

Durch diese Zwischenschicht können in Metabase somit Datenquellen zusammengeführt werden. Zusätzlich lassen sich hierdurch auch die Zugriffe leichter verwalten, da nur die Views in dem Catalog in Metabase zur Verfügung stehen, aber nicht direkt die Datenquellen darunter.

Wie so eine View für Metabase erstellt werden kann, lässt sich hier nachlesen: https://jaeckel.one/books/presto/page/view-erstellen (Es wird eine funktionierende Presto Instanz vorausgesetzt.)

Der in Presto erstellte Catalog lässt sich in Metabase wie jede andere Datenbank hinzufügen.

Ach wenn in Presto keine Authentifizierung angegeben wurde, so muss trotzdem der Benutzer angegeben werden. Im Standard ist dies der Benutzer presto und ohne Passwort.

grafik.png

Nachdem die Datenbank hinzugefügt wurde, lassen sich die Views wie gewohnt abfragen. Im folgenden Beispiel ist die View DiesIstEineView aus dem Beispiel der Presto Anleitung zu sehen.

grafik.png

Das in dieser View auf eine Tabelle aus einem Microsoft SQL Server und eine Tabelle aus einem MySQL Server zugegriffen wird, ist nicht ersichtlich. Stattdessen kann die UI im vollen Umfang verwendet werden oder in SQL konvertiert werden.

grafik.png