用 Git 操作的數(shù)據(jù)庫?這個(gè)項(xiàng)目火了!
超級特別又實(shí)用的數(shù)據(jù)庫,快來補(bǔ)課!
Git 是一個(gè)開源的分布式版本控制系統(tǒng),可以敏捷高效地管理代碼,讓項(xiàng)目代碼支持同時(shí)存在多個(gè)不同的版本和分支,是程序員在項(xiàng)目開發(fā)中的必備工具。

除了代碼文件可以進(jìn)行版本控制之外,數(shù)據(jù)其實(shí)也可以版本控制!
今天,Dolt 項(xiàng)目榮登 GitHub 趨勢榜榜首,該倉庫的介紹是 “Git for Data”,一個(gè)面向數(shù)據(jù)的 Git,目前已收獲了幾千個(gè) star。

下面我們來簡單了解下 Dolt 項(xiàng)目。
什么是 Dolt?
根據(jù)官方介紹,Dolt 是一個(gè)基于 Git 協(xié)議的開源 SQL 數(shù)據(jù)庫,使用 Golang 語言編寫。
首先它和 MySQL 關(guān)系型數(shù)據(jù)庫一樣,用于存儲和管理數(shù)據(jù),具有表、視圖等概念,支持?jǐn)?shù)據(jù)的增刪改查等操作。

然而更棒的是,它提供了一個(gè)命令行工具,完美支持所有的 Git 命令,并且語法完全相同!允許用戶像使用一個(gè) git 倉庫一樣對數(shù)據(jù)進(jìn)行 fork、clone、branch、merge、push 和 pull 等操作。

當(dāng)你提交數(shù)據(jù)到存儲庫時(shí),Dolt 會自動(dòng)存儲提交日志,比如本次修改的內(nèi)容、作者、提交時(shí)間等,從而實(shí)現(xiàn)了對數(shù)據(jù)單元的版本控制,便于多人對數(shù)據(jù)進(jìn)行協(xié)作和優(yōu)化。

比如一個(gè)班的同學(xué)在使用公共數(shù)據(jù)做實(shí)驗(yàn)時(shí),可能需要針對實(shí)驗(yàn)提供不同的數(shù)據(jù),這個(gè)時(shí)候就可以用 Dolt 來進(jìn)行數(shù)據(jù)的版本控制。

你還可以隨時(shí)查看上次提交的數(shù)據(jù)與當(dāng)前數(shù)據(jù)的區(qū)別,一旦有人不小心把公共數(shù)據(jù)改錯(cuò)了,發(fā)現(xiàn)當(dāng)前數(shù)據(jù)有異常時(shí),可以輕松地回滾和修復(fù)問題。

Dolt 簡直就是 Git 和 MySQL 的孩子!

關(guān)于 Dolt 的使用方法,官方已經(jīng)給了詳細(xì)的教程,還是比較簡單的。
DoltHub
就像 Git 擁有 GitHub 作為代碼的開源遠(yuǎn)程托管平臺一樣,Dolt 官方也提供了相應(yīng)的遠(yuǎn)程托管平臺,即 DoltHub。
DoltHub 允許用戶將自己的 Dolt 數(shù)據(jù)庫免費(fèi)托管到他們提供的云存儲服務(wù)中,便于管理和協(xié)作。你可以像瀏覽 GitHub 一樣瀏覽 DoltHub,在這里發(fā)現(xiàn)優(yōu)秀的數(shù)據(jù)集,比如 Coronavirus(冠狀病毒)、Google Open Images 等,拿去實(shí)驗(yàn)和數(shù)據(jù)分析都是極好的!

雖然數(shù)據(jù)版本控制的概念在很早之前就已經(jīng)被提出和落地,但是 Dolt 的熱門應(yīng)該能夠幫助更多同學(xué)了解和使用這類系統(tǒng),我還是很期待他的發(fā)展。
?? 項(xiàng)目地址:https://www.code-nav.cn/rd/?rid=28ee4e3e60446a33094615737c187af6