Das Dolt-Projekt entwickelt eine Datenbank, die SQL-Unterstützung mit Datenversionskontrollwerkzeugen im Git-Stil kombiniert. Dolt ermöglicht das Klonen von Tabellen, das Erstellen von Forks und das Mergen von Tabellen sowie das Ausführen von Push- und Pull-Operationen ähnlich wie in einem Git-Repository. Dabei unterstützt die Datenbank SQL-Abfragen und ist mit MySQL auf der Klienteebene kompatibel. Der Code des Projekts ist in Go geschrieben und wird unter der Apache 2.0-Lizenz vertrieben.
Die Versionierungsmöglichkeiten der Datenbank erlauben es, die Herkunft der Daten nachzuvollziehen – die Bindung an Commits ermöglicht es, den Zustand festzuhalten, um identische Ergebnisse zu erzielen, die unabhängig vom aktuellen Zustand jederzeit auf anderen Systemen reproduziert werden können. Darüber hinaus können Benutzer durch die Historie navigieren, Änderungen in Tabellen mithilfe von SQL nachverfolgen, ohne Backups abgleichen zu müssen, Änderungen auditieren und Abfragen erstellen, die Daten zu einem bestimmten Zeitpunkt umfassen.

Die Datenbank bietet zwei Betriebsmodi – Offline und Online. Nach dem Wechsel in den Offline-Modus steht der Inhalt der Datenbank als ein Repository zur Verfügung, mit dem Aktionen über ein git-ähnliches Befehlszeilentool ausgeführt werden können. Die Arbeitsweise ähnelt stark der von Git und unterscheidet sich hauptsächlich darin, dass Änderungen nicht für Dateien, sondern für den Inhalt von Tabellen verfolgt werden. Über die angebotene CLI-Schnittstelle können Daten aus CSV- oder JSON-Dateien importiert, Commits mit Änderungen hinzugefügt, Unterschiede zwischen Versionen angezeigt, Branches erstellt, Tags gesetzt, Push-Anfragen an externe Server gesendet und Merge-Änderungen von anderen Beteiligten durchgeführt werden.
Auf Wunsch können die Daten im DoltHub-Katalog abgelegt werden, der als Pendant zu GitHub für die Speicherung und Zusammenarbeit mit Daten betrachtet werden kann. Benutzer können Daten-Repositorys forkieren, ihre Änderungen vorschlagen und mit ihren Daten mergen. Zum Beispiel können im DoltHub verschiedene Datenbanken mit Statistiken zu Coronavirus, Sammlungen annotierter Daten für maschinelles Lernen, lexikalische Datenbanken, Bildsammlungen, Klassifikationssets und Informationen zur Zugehörigkeit gefunden werden. IP-Adressen.
Im 'online'-Modus wird der Dolt SQL-Server gestartet, der es ermöglicht, mit Daten über die SQL-Sprache zu interagieren. Die bereitgestellte Schnittstelle ähnelt MySQL und kann über kompatible MySQL-Clients oder über die CLI-Schnittstelle verwendet werden. Dabei ist Dolt eher ein Werkzeug zur Datenmanipulation als ein Abfragesystem. So kann der SQL-Server standardmäßig nur eine aktive Verbindung eines Nutzers zu einem in dem aktuellen Verzeichnis gehosteten Repository verarbeiten (dieses Verhalten kann durch Einstellungen geändert werden). Es ist möglich, Server in den Nur-Lese-Modus zu wechseln. Viele versionierungsbezogene Aktionen können ebenfalls über SQL durchgeführt werden, zum Beispiel Commits durchführen oder zwischen Branches wechseln.
Quelle: opennet.ru
