ADMIN

2024

06

2024-05-30T12:00:00

Datenbanken

SCHWERPUNKT

070

Datenbanken

Datenbankverwaltung

Datenbankverwaltung mit DbGate

Datenportal

von Dr. Holger Reibold

Veröffentlicht in Ausgabe 06/2024 - SCHWERPUNKT

Für die Administration von SQL-Datenbanken sind phpMyAdmin, DBeaver & Co. bewährte Tools. Doch unter Linux, und wenn neben SQL- auch NoSQL-Datenbanken verwaltet werden sollen, scheitern die meisten bekannten Datenbankmanager. Mit DbGate steht hierzu eine passende Open-Source-Anwendung bereit, die sich schnell einrichten lässt, sehr benutzerfreundlich daherkommt und mächtige Features mitbringt.

DbGate [1] entstand 2019 und sein Entwickler Jan Prochazka hatte damals bereits die beiden kommerziellen Datenbankmanager DatAdmin und Db-Mouse ins Leben gerufen. Mit DbGate sollte eine quelloffene Umgebung entstehen, die plattformunabhängig ist und sich durch eine hohe Stabilität und Robustheit auszeichnet. DbGate sollte zudem durch eine hohe Benutzerfreundlichkeit glänzen und für das Zusammenspiel mit großen Datenbanken geeignet sein. Die Option, DbGate auch webbasiert zu nutzen, dürfte für viele Administratoren ein Argument für eine Evaluierung sein, eine entsprechende Demo liefert [2].
Das Ergebnis kann sich durchaus sehen lassen. DbGate kann auf MySQL, PostgreSQL, Microsoft SQL Server, MongoDB, SQLite, Amazon Redshift, CockroachDB, MariaDB und Redis sowie experimentell auf Oracle-DBs zugreifen. Der Technologie-Stack des Tools basiert auf dem Svelte-Framework, der DB-Zugriff erfolgt vorzugsweise per SSL und erlaubt IT-Verantwortlichen, mehrere parallele Verbindungen aufzubauen. Daneben stellt DbGate einen Daten- und einen SQL-Editor zur Verfügung. Auch ein Query-Builder für SQL- und NoSQL-DDs sowie ein Schema-Editor stehen zur Verfügung. Über den Plug-in-Mechanismus ist das Basissystem erweiterbar, beispielsweise sind Verbindungen zur NoSQL-Datenbank MongoDB oder der Import vom XML-basierten Daten realisierbar. Die Software verfügt außerdem über einen NDJSON-Viewer und kann als webbasierte Umgebung laufen.
Erste Schritte mit DbGate
Die Inbetriebnahme von DbGate gestaltet sich einfach. Im Download-Bereich [3] der Projekt-Website finden sich Pakete für Docker, Linux, macOS und Windows. Auch eine NPM-basierte Installation ist möglich. Für die verschiedenen Plattformen stehen unterschiedliche Installationspakete zur Verfügung, um die Eintrittsbarrieren so niedrig wie möglich zu gestalten. Für Linux-Anwender gibt es beispielsweise AppImage-, DEB- und Snap-Pakete.
DbGate [1] entstand 2019 und sein Entwickler Jan Prochazka hatte damals bereits die beiden kommerziellen Datenbankmanager DatAdmin und Db-Mouse ins Leben gerufen. Mit DbGate sollte eine quelloffene Umgebung entstehen, die plattformunabhängig ist und sich durch eine hohe Stabilität und Robustheit auszeichnet. DbGate sollte zudem durch eine hohe Benutzerfreundlichkeit glänzen und für das Zusammenspiel mit großen Datenbanken geeignet sein. Die Option, DbGate auch webbasiert zu nutzen, dürfte für viele Administratoren ein Argument für eine Evaluierung sein, eine entsprechende Demo liefert [2].
Das Ergebnis kann sich durchaus sehen lassen. DbGate kann auf MySQL, PostgreSQL, Microsoft SQL Server, MongoDB, SQLite, Amazon Redshift, CockroachDB, MariaDB und Redis sowie experimentell auf Oracle-DBs zugreifen. Der Technologie-Stack des Tools basiert auf dem Svelte-Framework, der DB-Zugriff erfolgt vorzugsweise per SSL und erlaubt IT-Verantwortlichen, mehrere parallele Verbindungen aufzubauen. Daneben stellt DbGate einen Daten- und einen SQL-Editor zur Verfügung. Auch ein Query-Builder für SQL- und NoSQL-DDs sowie ein Schema-Editor stehen zur Verfügung. Über den Plug-in-Mechanismus ist das Basissystem erweiterbar, beispielsweise sind Verbindungen zur NoSQL-Datenbank MongoDB oder der Import vom XML-basierten Daten realisierbar. Die Software verfügt außerdem über einen NDJSON-Viewer und kann als webbasierte Umgebung laufen.
Erste Schritte mit DbGate
Die Inbetriebnahme von DbGate gestaltet sich einfach. Im Download-Bereich [3] der Projekt-Website finden sich Pakete für Docker, Linux, macOS und Windows. Auch eine NPM-basierte Installation ist möglich. Für die verschiedenen Plattformen stehen unterschiedliche Installationspakete zur Verfügung, um die Eintrittsbarrieren so niedrig wie möglich zu gestalten. Für Linux-Anwender gibt es beispielsweise AppImage-, DEB- und Snap-Pakete.
Der grundlegende Aufbau des DbGate-Benutzerinterfaces entspricht im Wesentlichen dem, was Sie von vergleichbaren Datenbankmanagern kennen: Links die DB-Struktur, die Verbindungskonfigurationen sowie die Datenbankinhalte, rechts die zugehörigen Funktionen für die Datenmanipulation. Links neben der Strukturansicht finden Sie die Symbolleiste, über die Sie auf die verschiedenen Widgets zugreifen. Über diese verwalten Sie die Datenbankverbindungen und die unterschiedlichen Dateitypen. Die Widgets dienen auch dem Zugriff auf die Befehlshistorie und die Plug-ins. Öffnen Sie eine Tabelle, blendet DbGate eine weitere Spalte mit den Tabellenspalten und möglichen Filtern ein. Nicht minder wichtig: Die Statuszeile präsentiert Ihnen die DB-Details, die Verbindungsdaten und den aktuellen Benutzer.
Um eine Verbindung herzustellen, wählen Sie auf der Registerkarte "New Connec-tion" zunächst den Typ aus. Darunter versteht DbGate den Typ der DB. Es folgen die typischen Einstellungen wie Server, Zugangsdaten und Port. Sie können außerdem die standardmäßig zu öffnende DB auswählen. Außerdem haben Sie die Option, der Datenbankkonfiguration eine Bezeichnung zuzuweisen. Mit einem Klick auf "Test" prüfen Sie die Korrektheit der Angaben. Passt alles, speichern sie diese mit "Save", damit sich der spätere Zugriff vereinfacht. Die Datenbankverbindung stellen Sie mit "Connect" her. Noch einfacher geht es, wenn Sie bereits eine Konfiguration angelegt haben. Dann reicht ein Doppelklick auf die Bezeichnung der gespeicherten Konfiguration für die Verbindung. Zu jeder Konfiguration können Sie den SSH-Tunnel und SSL aktivieren. Ist die Verbindung aufgebaut, listet die "Connections"-Übersicht alle existierenden DB-Verbindungen. Beim intensiven Einsatz von DbGate ist die Suchfunktion zum Aufspüren von Verbindungskonfigurationen und Datenbanken eine wertvolle Hilfe.
Bild 1: Die erste Verbindung zu einer MySQL-Datenbank ist hergestellt.
Mit Daten jonglieren
Dank der benutzerfreundlichen GUI von DbGate gestaltet sich das Ausführen von Standardaktionen einfach. Vorausgesetzt, der verwendete Benutzer verfügt über die notwendigen Berechtigungen, können Sie mit einem Rechtsklick in das "Connec-tions"-Feld mit "Create database" eine neue DB anlegen. Der Einsatz wichtiger datenbankspezifischer Aktionen gestaltet sich über das Kontextmenü der rechten Maustaste einfach. Es erlaubt das Anlegen von neuen Tabellen und DB-Abfragen sowie den Import und Export von Daten.
Nach der Auswahl einer Datenbank listet der Editor deren Tabellen. Mithilfe des Datenbrowsers erledigen Sie verschiedene Aktionen, was in der Praxis effektiver ist als die manuelle Query-Eingabe im Abfragedialog. Neben den Sortierfunktionen stellt Ihnen DbGate eine mächtige Datenfilter-Engine zur Verfügung, die einfache bis komplexe Filterbedingungen erlaubt. Dabei kommt Ihnen zugute, dass die Filterfunktion eine Syntax-Überprüfung mitbringt: Verwenden Sie eine fehlerhafte Filterkonfiguration, wird diese rot hinterlegt und ignoriert. Mögliche Fehlerquellen reduzieren Sie, in dem Sie vordefinierte Konfigurationen über das Filter-Symbol verwenden. Wenn Sie einen oder mehrere Filter verwenden, sind diese unterhalb des Bereichs "Columns" aufgelistet und lassen sich dort auch bearbeiten.
Von unschätzbarem Wert sind die Import- und Exportfunktionen, die Sie über das Menü "Tools / Import Data" oder über das Kontextmenü der Datenbankansicht aufrufen. Die Importfunktion setzt abhängig von den Ausgangs- beziehungsweise Zieldaten auf Plug-ins oder auf Node.js-Streams. DbGate unterstützt den Import von CSV-, Excel-, JSON- und XML-Dateien sowie von bestehenden Datenbanken. Die Importfunktion gestaltet sich ansonsten einfach: Wählen Sie die Quelledaten aus oder ziehen sie diese per Drag-and-Drop in den Importdialog. Unter "Target Configuration" bestimmen Sie den Speichertyp, den Server und die DB. Mit einem Klick auf "Run" starten Sie den Importvorgang. Im Bereich "Messages" wird das Protokoll des Vorgangs eingeblendet. DbGate stellt für den Import und Export ergänzend eine vereinfachte Variante zur Verfügung. Über das Kontextmenü der Datenbankliste wählen Sie den Befehl "Restore/Import SQL dump" beziehungsweise "Backup/Export SQL dump". Bei diesen beiden Funktionen geben Sie lediglich die Quelle und das Ziel an. Wenn Sie sich für diesen Weg entscheiden, wird kein Zwischenordner verwendet, sondern vielmehr wandern die Daten direkt in die Ausgabedatei.
Fortgeschrittenes DB-Management
Für das Erstellen von Abfragen verwenden Sie die "Query"-Funktion, die Sie am einfachsten mit einem Klick auf das Pluszeichen im rechten oberen Bereich der Benutzeroberfläche öffnen. Im SQL-Editor geben Sie die Abfrage- beziehungsweise Manipulationsbereiche an. Ein Rechtsklick öffnet den Joins-Wizard, mit dem Sie Befehle auf miteinander verbundenen Tabellen anwenden. Um die Abfrage auszuführen, klicken Sie auf die "Execute"-Schaltfläche am Fuß des Query-Dialogs. Aus dem Editor heraus ist das Sichern der Abfragekonfiguration möglich. Mit dem SQL-Generator stellt Db-Gate ein weiteres nützliches Werkzeug zur Verfügung. Dieser erlaubt das Erzeugen von SQL-Skripten aus der DB heraus. Sie können typische Befehle wie das Erstellen und Löschen von Tabellen vornehmen sowie Ansichten, gespeicherte Prozeduren und Funktionen anlegen.
Eine weitere Besonderheit ist DbGates Mechanismus zum automatischen DB-Deployment. Üblicherweise kommen für die Migration SQL-Skripte zum Einsatz, doch der DbGate-Entwickler hat sich für einen anderen Weg entschieden und setzt auf ein YAML-basiertes Datenbankmodell, das die Tabellenstruktur und die Daten beschreibt. Außerdem sind die SQL-Dateien, die Ansichten, die gespeicherten Prozeduren und die gewünschten Funktionen erforderlich. Dieses Modell übertragen Sie auf die DB. Dabei wird die bestehende Struktur mit der Modellstruktur verglichen. Bei Bedarf werden fehlende Spalten und Tabellen generiert sowie die View- und Prozedurdefinitionen aktualisiert. Bei diesem Abgleich erfolgen keine destruktiven Aktionen, die beispielsweise zu Datenverlusten führen. Sollte eine Spalte oder Tabelle aus dem Modell verschwinden, bleibt sie in der DB erhalten. Auch bei Umbenennungen bleiben die vorherigen Bezeichnungen immer in der Datenbank erhalten. Der Deploy-Vorgang ist über den Menübefehl "Tools / Compare DB" verfügbar und erlaubt, das Modell mit der realen Datenbank visuell zu vergleichen.
DbGate besitzt auch einen Schema-Editor, mit dem Sie die Struktur Ihrer Tabellen bearbeiten – phpMyAdmin-Anwender kennen dieses Werkzeug als "Designer". Sie öffnen den Editor, indem Sie aus dem Kontextmenü der rechten Maustaste der betreffenden DB den Befehl "Show diagramm" ausführen. Die Visualisierung können Sie über die "Export diagramm"-Funktion nach HTML exportieren.
DbGate spielt nicht nur hervorragend mit bekannten SQL-Datenbanken zusammen, sondern kann auch die NoSQL-Datenbanken MongoDB und Redis verwalten. Für das Zusammenspiel mit MongoDB verwendet der Datenbankmanager einen nativen MongoDB-Treiber. Der zentrale Vorteil: Sie sind nicht auf tabellenartige Ansichten beschränkt, wie dies bei vielen anderen Editoren der Fall ist. Der Zugriff auf ein MongoDB-System kann über eine Direktverbindung, einen SSH-Tunnel oder über eine angepasste MongoDB-URL erfolgen.
Ein weiteres nützliches Werkzeug nennt sich "Perspectives". Dabei handelt es sich um eine schreibgeschützte Ansicht komplexer verschachtelter Daten. Sie sind vergleichbar mit Berichten, werden aber durch das Hinzufügen von Daten zur Ansicht generiert. Mithilfe des sogenannten Perspektivendesigners verbinden Sie die Daten. Allerdings unterliegt diese Funktionalität einer Einschränkung und Perspektiven unterstützen lediglich SQL-Tabellen und -Views, jedoch keine MongoDB-basierten Daten – wenngleich diese Funktionalität in der Pipeline ist. Um eine neue Perspektive anzulegen, führen Sie den Befehl "File / New perspective" aus. Der Editor öffnet eine vereinfachte Ansicht mit nur einer Spalte. Diese Spalte basiert auf einem heuristischen Algorithmus, um die beste Darstellung zu erreichen. In dieser Ansicht können Sie beispielsweise Daten und übergeordnete Zeilen filtern.
Bild 2: DbGate verfügt über eine komfortable Import- und Exportfunktion.
DbGate aufgebohrt
Dank seiner modularen Architektur ist das DbGate-System über Plug-ins erweiterbar. Bei diesen Erweiterungen handelt es sich um NPM-Pakete. Im Frühjahr 2024 existieren sechzehn davon, die über das NPM-Repository [4] verfügbar sind. Die Nutzung in DbGate gestaltet sich indes einfach: Über das Widget "Extensions & Plugins", das durch einen Baustein symbolisiert wird, erfahren Sie, welche Plug-ins bereitstehen und welche bereits installiert sind. Die Import- und Exportfunktion, aber auch die verschiedene Datenbanktreiber und Themes sind in Form von Plug-ins implementiert.
Die Handhabung der Plug-in-Funktionalität gestaltet sich einfach. Bei bereits installierten Erweiterungen erfahren Sie mit einem Klick auf den Modultitel, wer der Entwickler ist, um welche Version es sich handelt und welche Funktionalität das Plug-in bietet. Mit einem Klick auf "Uninstall" entfernen Sie die Erweiterung, verfügbare spielen Sie entsprechend mit "Install" ein. Wenn Sie beispielsweise ein weiteres Theme installieren, finden Sie das in den Programmeinstellungen auf der "Themes"-Registerkarte.
DbGate hat weitere interessante Werkzeuge zu bieten, etwa um das Styling der Diagramme anzupassen und die Abfrageergebnisse mit Balken-, Linien- und Tortendiagrammen zu visualisieren. Auch die Ansicht geografischer Daten auf einer Karte ist möglich. Dies erreichen Sie über die Funktion "Cell data view", wo Sie über das Auswahlmenü "Format" mit "Map" die Kartenansicht laden.
Fazit
DbGate erfährt aus unerklärlichen Gründen nur eine geringe Aufmerksamkeit. Doch seine große Flexibilität und Benutzerfreundlichkeit, verbunden mit der breiten Plattformenunterstützung, machen den Datenbankmanager zu einem hochinteressanten Werkzeug. Die Einarbeitung gestaltet sich problemlos und insbesondere für Linux-Anhänger ist Db-Gate eine äußerst sinnvolle Alternative zu bekannten Werkzeugen.
(dr)
Link-Codes
[1] DbGate-Homepage: https://dbgate.org/
[2] Webbbasierte DbGate-Demo: https://demo.dbgate.org/
[3] DbGate-Downloads: https://dbgate.org/download/