本文介绍在Linux系统上安装和使用Dolt的方法。它是用于SQL数据库的Git。您可以像git存储库一样进行克隆、分支、合并、推入和拉入,像连接任何MySQL数据库一样,连接到Dolt即可运行查询或使用SQL命令更新数据。
在Linux上安装Dolt 在Linux上,请在终端上运行以下命令,以获取并安装最新版的Dolt。请先确保已安装curl和wget: sudo bash -c 'curl -L https://github.com/dolthub/dolt/releases/latest/download/install.sh | bash' 上面的命令将下载新的dolt版本,并将其放在/usr/local/bin/中,在大多数Linux发行版中,该路径已在$PATH中。 运行命令时,您应该看到类似以下的输出:
也可以从源安装它。有一个先决条件,那就是您必须在系统中安装Go。参考在CentOS 8/CentOS 7上用bash脚本安装Go 1.14(Golang 1.14)。 启用Golang后,如下所示克隆Dolt的git存储库。请确保您已经安装了git: $ cd ~ $ git clone https://github.com/dolthub/dolt.git Cloning into 'dolt'... remote: Enumerating objects: 108334, done. remote: Counting objects: 100% (3389/3389), done. remote: Compressing objects: 100% (1452/1452), done. remote: Total 108334 (delta 2130), reused 3042 (delta 1901), pack-reused 104945 Receiving objects: 100% (108334/108334), 122.18 MiB | 1.31 MiB/s, done. Resolving deltas: 100% (72616/72616), done. 导航到“go”目录: cd ~/dolt/go/ 然后运行以下命令以安装Dolt: go install ./cmd/dolt 可以通过运行以下命令来确认已安装Dolt: dolt version dolt version 0.26.4
将Dolt投入使用 安装完成后,接下来要做的重要又富有成效的事情就是让Dolt为我们服务。为此,我们将在此处演示一些示例。当前Dolt具有Dolt CLI,在此我们将做介绍。在此之前,我们应该配置dolt。 使用用户名和电子邮件配置dolt,您将需要使用git中的创建方式来创建提交: $ dolt config --global --add user.email user@computingforgeeks.com Config successfully updated. $ dolt config --global --add user.name GeeksAdmin Config successfully updated. 1、Dolt CLI dolt CLI具有与git相同的命令,但还有一些其他功能。在不带任何参数的情况下运行dolt可以在以下屏幕截图中共享以下输出:
2、让我们开始 到目前为止,我们已经安装了Dolt,并创建了用户名和电子邮件供我们使用。接下来,让我们创建第一个存储库,存储ComputingForGeeks文章数据: $ mkdir computingforgeeks-posts && cd computingforgeeks-posts 像使用git一样,运行“dolt init”来建立一个新的dolt存储库。然后运行一些SQL查询以插入数据: $ dolt init Successfully initialized dolt data repository. 为文章创建表格: dolt sql -q "create table computingforgeeks_posts ( id int, posts varchar(14), primary key (id) )" 显示表格(如果已创建): $ dolt sql -q "show tables"
将值插入表中的列: $ dolt sql -q "insert into computingforgeeks_posts (id, posts) values (1, 'Automation'), (2, 'DevOps'), (3, 'Gadgets'), (4, 'Linux'), (5, 'Windows'), (6, 'Databases'), (7, 'Kubernetes'), (8, 'Cloud'), (9, 'Books'), (10, 'Storage')" 输出: Query OK, 10 rows affected 使用“dolt sql”跳入SQL Shell,或使用-q选项运行单个查询: $ dolt sql -q "select * from computingforgeeks_posts"
查询的工作方式与任何其他具有过滤器等功能的SQL系统完全一样: $ dolt sql -q "select * from computingforgeeks_posts where id=5"
添加新表并提交。每个命令都与git完全匹配,但是与表而不是文件匹配。只需将“git”替换为“dolt”即可。您可以在下面看到它的运行情况: $ dolt add . $ dolt commit -m "initial computingforgeeks posts data" commit tsitks3g0qmlnn7f5ql9i18cgfc918dd $ dolt status On branch master nothing to commit, working tree clean 接下来,让我们使用更多的SQL命令更新表,这次,我们将探索shell: $ dolt sql # Welcome to the DoltSQL shell. # Statements must be terminated with ';'. # "exit" or "quit" (or Ctrl-D) to exit. computingforgeeks_posts> update computingforgeeks_posts set posts = 'NFS' where id = 10; Query OK, 1 row affected Rows matched: 1 Changed: 1 Warnings: 0 确认已进行更改: $ dolt sql -q "select * from computingforgeeks_posts where id=10"
查看您使用dolt diff所做的更改: $ dolt diff
然后使用dolt add和dolt commit再次提交更改: $ dolt add computingforgeeks_posts $ dolt commit -m "Changed Storage to NFS" commit pto33bsehie2tnpva47kpdt704n9i39r Changed Storage to NFS 如果您希望查看当天使用Dolt做的所有事情,则可以按以下方式检查整个日志: $ dolt log commit pto33bsehie2tnpva47kpdt704n9i39r 3、使用远程存储库 就像在Git中可以从远程存储库克隆代码一样,Dolt也具有相同的内置概念。通过此功能,您可以在从远程存储库克隆数据时自动进行设置。让我们尝试一个远程存储库: $ dolt clone dolthub/corona-virus cloning https://doltremoteapi.dolthub.com/dolthub/corona-virus 16,479 of 16,479 chunks complete. 0 chunks being downloaded currently. 导航到新数据库“directory”,然后通过“dolt sql”查看其中的表: $ cd corona-virus $ dolt sql # Welcome to the DoltSQL shell. # Statements must be terminated with ';'. # "exit" or "quit" (or Ctrl-D) to exit. corona_virus> 让我们查看克隆的corona_virus数据库中的表: corona_virus> show tables;
如您所见,我们克隆的数据库包含数据,您可以通过常规SQL查询访问它们,从而不必学习新的查询语言。 4、汇入资料 Dolt的另一个有用之处在于它能够以您惯用的形式导入数据。可以使用dolt table import命令轻松将CSV或JSON之类的格式导入数据中。您可以使用“dolt table import -u”将数据添加到现有表中,也可以使用“dolt table import -c”创建一个新表。 让我们创建一个简单的csv内容以添加到我们的posts表中: $ vim newdata.csv id,posts 12,Ansible 13,Terraform 14,Vagrant 完成后,让我们导入数据作为表的一部分: $ dolt table import -c -pk=id computingforgeeks_posts newdata.csv Rows Processed: 3, Additions: 3, Modifications: 0, Had No Effect: 0Import completed successfully. 让我们看看我们的更新是否成功。运行“dolt sql”进入dolt的sql shell,然后选择该表中的所有内容。从下图可以看到,新记录已添加到我们的表中。完成后,我们可以继续进行添加,提交和推送更改,就像在git中一样: $ dolt sql # Welcome to the DoltSQL shell. # Statements must be terminated with ';'. # "exit" or "quit" (or Ctrl-D) to exit. computingforgeeks_posts> select * from computingforgeeks_posts;
5、分支并合并 与git一样,最好在自己的分支上进行更改,然后将其合并回master。dolt checkout命令的工作原理与git checkout完全相同: $ dolt checkout -b <branch> merge命令的工作原理也相同: $ dolt merge <branch>
最后的话 通过上面的演示,可以知道Dolt很实用。现在可以对数据库的每个细节进行版本控制、提交、跟踪和监视,并可以通过DoltHub轻松地将其共享出去。
相关主题 |