Il progetto Dolt sviluppa un DBMS che unisce il supporto per SQL con strumenti di versioning dei dati in stile Git. Dolt consente di clonare tabelle, creare fork ed eseguire fusioni delle tabelle, così come di effettuare operazioni di push e pull analoghe a quelle di un repository git. Inoltre, il DBMS supporta le query SQL ed è compatibile con MySQL a livello di interfacce client. Il codice del progetto è scritto in Go e distribuito sotto la licenza Apache 2.0.
Le funzionalità di versioning dei dati nel DB consentono di tracciarne l'origine: il collegamento ai commit permette di fissare lo stato per ottenere risultati identici che, indipendentemente dallo stato attuale, possono essere ripetuti in qualsiasi momento su altri sistemi. Inoltre, gli utenti possono navigare nella cronologia, monitorare le modifiche nelle tabelle tramite SQL senza la necessità di confrontare backup, effettuare audit delle modifiche e formulare query che coprono i dati in un determinato momento.

Il DBMS offre due modalità di funzionamento: Offline e Online. Una volta passato in modalità offline, il contenuto del DB diventa accessibile come un repository, sul quale è possibile eseguire operazioni utilizzando un'utilità della riga di comando simile a git. Il funzionamento ricorda molto git e si differenzia principalmente per il fatto che le modifiche non vengono tracciate per i file, ma per il contenuto delle tabelle. Tramite l'interfaccia CLI proposta, è possibile importare dati da file in formato CSV o JSON, aggiungere commit con modifiche, visualizzare differenze tra versioni, creare rami, impostare tag, effettuare richieste di push verso server esterni ed eseguire fusioni delle modifiche proposte da altri partecipanti.
Se desiderato, i dati possono essere ospitati nel catalogo DoltHub, che può essere considerato un'alternativa a GitHub per l'hosting dei dati e la collaborazione. Gli utenti possono creare fork dei repository di dati, proporre le proprie modifiche e eseguire fusioni con i propri dati. Ad esempio, su DoltHub è possibile trovare vari DB con statistiche sul coronavirus, collezioni di dati annotati per sistemi di machine learning, lessici linguistici, collezioni di immagini, set per la classificazione degli oggetti e informazioni sull'appartenenza. indirizzi IP.
In modalità «online», viene avviato Dolt SQL Server, che consente di manipolare i dati tramite il linguaggio SQL. L'interfaccia fornita è simile a MySQL e può essere utilizzata tramite client compatibili con MySQL o attraverso un'interfaccia CLI. Tuttavia, Dolt è più uno strumento per la manipolazione dei dati che un sistema di elaborazione delle query. Ad esempio, per impostazione predefinita, il server SQL può gestire solo una connessione attiva dell'utente al repository situato nella directory attuale (questo comportamento può essere modificato attraverso le impostazioni). È possibile passare server a una modalità solo lettura. Molte operazioni legate al versioning possono essere eseguite anche tramite SQL, ad esempio effettuare commit o passare da un ramo all'altro.
Fonte: opennet.ru
