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

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

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

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

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

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

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

Dolt 簡(jiǎn)直就是 Git 和 MySQL 的孩子!

關(guān)于 Dolt 的使用方法,官方已經(jīng)給了詳細(xì)的教程,還是比較簡(jiǎn)單的。
DoltHub
就像 Git 擁有 GitHub 作為代碼的開(kāi)源遠(yuǎn)程托管平臺(tái)一樣,Dolt 官方也提供了相應(yīng)的遠(yuǎn)程托管平臺(tái),即 DoltHub。
DoltHub 允許用戶將自己的 Dolt 數(shù)據(jù)庫(kù)免費(fèi)托管到他們提供的云存儲(chǔ)服務(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 的熱門(mén)應(yīng)該能夠幫助更多同學(xué)了解和使用這類系統(tǒng),我還是很期待他的發(fā)展。
有道無(wú)術(shù),術(shù)可成;有術(shù)無(wú)道,止于術(shù)
歡迎大家關(guān)注Java之道公眾號(hào)
好文章,我在看??
