git网站(Dolt)

信息时代数据才是最重要的,数据的表现形式也越来越丰富。Git已经占领了VCS的天下,在其他方面的用途也在不断的拓展,比如Git管理网站,Git写书,本文我们介绍一个在数据领域的项目GitDolt。GitDolt以关系数据库和Git的启发,把SQL语句和Git的分发协作有机地结合,集众长于一身的解决方案。概述GitDolt本质上是一个关系数据库,即它具有表、视图等,也可以对表执行SQL查询。在表单元级别支持Git控制语句。GitDolt是一个支持细粒度的按值版本控制的数据库,其数据和架构的所有更改都存储在提交日志中。为了管理方便,对标GitHub之于Git,GitDolt也提供了远程托管平台网站DoltHub,用于托管Dolt数据库的基于云的存储解决方案,可简化数据库的协作管理。Dolt提供了类似于Git的所有控制语句见上面帮助信息。init:创建一个空的Dolt数据仓库。status:显示工作树状态。add:添加表更改到暂存更改列表。reset:从暂存更改列表中删除表更改。commit:记录对存储库的更改。sql:对存储库中的表运行SQL查询。sql-server:启动与MySQL兼容的服务器。log:显示提交日志。diff:区分表格。blame:显示表的每一行的修订、修改者以及最后修改的内容。merge:合并分支。brance:创建,列出,编辑,删除分支。checkout:检出分支或从HEAD覆盖表。remote:管理一组跟踪的存储库。push:同步远程仓。pull:从远程的远程数据存储库中获取并合并。fetch:从远程数据存储库更新数据库。clone:从远程数据存储库克隆。creds:管理账号凭据。login:登录到Dolt远程主机。version:显示当前的Dolt cli版本。config:Dolt配置。ls:列出工作集中的表。schema:用于显示和导入表模式的命令。table:用于复制,重命名,删除和导出表的命令。conflicts:用于查看和解决合并冲突的命令。安装Dolt是Golang开发的项目,需要依赖Golang运行时,安装Dolt之前先确保安装了Golang环境。一键安装要在基于Linux或Mac的系统上安装,请运行:sudo bash -c 'curl -L https://github.com/liquidata-inc/dolt/releases/latest/download/install.sh | bash'该命令会下载最新版本dolt发布包,并将其安装到/usr/local/bin/,为了可以直接使用需要将其添加的系统路径中,此处我们用ln给/bin添加一个软连接:ln -s /usr/local/bin/dolt /bin/doltWindows版本安装,需要下载仓库下载软件发布的Microsoft Installer(.msi文件)并运行安装即可。源码安装clone dolt源码仓库然后一次运行cd ~/dolt/gogo install ./cmd/doltgo install ./cmd/git-doltgo install ./cmd/git-dolt-smudge上面命令将会安装必需组件到$GOROOT/bin路径,默认为路径为~/go下,应该可以看到类似信息:ls -ltr $HOME/go/bin/dolt git-dolt git-dolt-smudge不管使用哪种方法,为了确认安装成功,在命令行下运行dolt会出帮助信息doltValid commands for dolt are…确保安装成功。仿照Git管理,第一步先设置全局信息:姓名和电子邮件:dolt config –global –add user.email [email protected] config –global –add user.name "Chongchong"初步使用创建仓库假设我们要在Dolt中创建一个数据库,显示各国新冠肺炎确诊数。mkdir 2019-nCoVcd 2019-nCoV初始化目录,并加载一些数据:dolt initSuccessfully initialized dolt data repository.创建表dolt sql -q "create table COVID19( country varchar(14), population int,death int, primary key (country) )"dolt sql -q "desc COVID19"+————+————-+——+—–+———+——-+| Field | Type | Null | Key | Default | Extra |+————+————-+——+—–+———+——-+| country | VARCHAR(14) | NO | PRI | | || population | INT | YES | | | || death | INT | YES | | | |+————+————-+——+—–+———+——-+现在给这个表插入一些数据:insert into COVID19 (country, population,death) values("USA", 398785,12893),("Spain", 141942,14045),("Italy",135586,17127),("France",110070,10343),("Germany",107663,2016),("China",82751,3337),("Iran",62589,3872),("United",Kingdom 55949,6171)查询刚才插入的数据:dolt sql -q 'select * from COVID19'加上where条件dolt sql -q 'select * from COVID19 where country="USA"'+———+————+——-+| country | population | death |+———+————+——-+| USA | 398785 | 12893 |+———+————+——-+假设满意,请按以下方式创建提交:dolt add .dolt commit -m "Add new top10 countryinfo of COVID-19"dolt statusOn branch masternothing to commit, working tree cleanOk,这样仓库数据数据提交完成。dolt也支持通过CSV和PSV文件导入数据:dolt table import -pk=state COVID19 data.csv更新数据如果需要更新表,可以直接通过ipmort文件信息方式:dolt table import –update-table <table> <csv_file>或者通过SQL语句:dolt sql –query 'INSERT INTO COVID19 VALUES ("Country", 1000,1)'Rows inserted: 1dolt sql –query 'UPDATE COVID19 SET population=82750 where country ="China"'Rows updated: 1更新后,查询状态就可以,看到有更改信息,显示类似于Git:dolt statusOn branch masterChanges not staged for commit:(use "dolt add <table>" to update what will be committed)(use "dolt checkout <table>" to discard changes in working directory)modified: COVID19dolt diff如果信息更新Ok,则可以添加到版本历史dolt add state_populationsdolt commit -m "Added 'My State'"分支工作流程进行更改时,建议创建一个新分支,该分支将用作更改的工作空间。选择一个简短的分支名称,该名称描述计划要做的工作。同样,这与Git相同:dolt checkout -b <branch>进行更改后,像以前一样添加并提交修改后的表。工作完成后,就可以将所有更改恢复回master分支运行中了:dolt checkout masterdolt merge <branch>然后,需要添加并提交合并的数据:dolt add .dolt commit -m "Merge work from <branch> into master"添加远程库Dolt以与Git类似的方式支持远程仓。Dolt也提供在线平台DoltHub,这是Dolt数据库的托管服务。在下文中,我们以DoltHub为例来添加远程仓:dolt login通过浏览器窗口,打开DoltHub,创建账号,并创建HTTPS凭据。创建成功后,会显示如下信息:Key successfully associated with user: XXX接下来,要确保在DoltHub创建了远程仓。例如,如果存储库是在名为"org"的组织下创建的,名称为"repo",则可以这样添加远程库:dolt remote add origin org/repo添加后,使用以下命令查看具体信息:dolt remote -v应该显示如下内容:origin doltremoteapi.dolthub/org/repo如果已经在网络上创建了存储库并添加了一个远程服务器,则应该能够将分支"master"推送到名为" rigin"的远程服务器上,如下所示dolt push origin master一旦成功,其他人便可以克隆存储库(假设已授予他们权限)。dolt clone org/repo所有操作和Git操作Github也类似有用的DoltHub数据集DoltHub仓库提供了有用的数据库可供我们使用,比如:新冠疫情数据库dolthub/repositories/Liquidata/corona-virusword-net: dolthub/repositories/Liquidata/word-netImageNet:dolthub/repositories/Liquidata/image-netGoogle Open Images:dolthub /repositories/Liquidata/open-images国家/地区的IP地址:dolthub /repositories/Liquidata/ip-to-country除了DoltHub dolt还支持其他形式的仓库存储形式,比如基于目录,aws和gcs的远程仓库:文件:可以将目录用作远程目录,就像为其他远程目录一样,可以通过提供目录uri来clone,push和pull。dolt远程添加文件:///Users/xyz/abs/path/aws 可以直接使用aws云对象存储。远程添加aws://dynamo-table:s3-bucket/database还可以使用GCS存储桶。创建一个gcs存储桶,使用gcloud auth login命令来设置的凭据。远程添加gs://gcs-bucket/database

本文出自快速备案,转载时请注明出处及相应链接。

本文永久链接: https://kuaisubeian.cc/44596.html

kuaisubeian