4年前 (2021-03-26)  相关技术 |   抢沙发  1220 
文章评分 0 次,平均分 0.0
[收起] 文章目录

Dolt-一个具有Git特性的关系数据库
Dolt是一个SQL数据库,您可以像git存储库一样进行分叉、克隆、分支、合并、推送和拉取。连接到Dolt就像任何MySQL数据库一样,使用SQL命令运行查询或更新数据。使用命令行界面导入CSV文件、提交更改、将更改推送到远程服务器或合并队友的更改。

你所知道的Git的所有命令对Dolt的作用完全相同。Git版本文件,Dolt版本表。就像Git和MySQL生了个孩子一样!

我们还建立了DoltHub,一个共享Dolt数据库的地方。我们免费提供公共数据!

蒂姆·塞恩多年来一直在想,为什么互联网上没有一个地方可以协作处理数据。

他曾是Snapchat的工程副总裁,但为了弄清接下来会发生什么,直到Snapchat的Brian Hendriks和Aaron Son同意加入他,他们才着手解决这个问题,开发了Dolt,一个具有Git特性的关系数据库。

“我当时想,你可以租一台电脑,你可以租一个数据库,但你无法获得访问数据库中数据的权限。在谈到他们着手解决的问题时,塞恩说。

“我们有点想建立一个API市场,有点像mashape或rapidapi。现在有了一种独特的分支合并功能,就像你在源代码中找到的,比如在Git中,在API之上的分支合并。

“我们意识到API并不是新数据世界中人们想要的。因此,我们深入到数据库本身,希望在数据库之上提供分支合并。”

建立在名义上

Sanjeev Sharma是Accelerated Strategies Group的分析师,他写道:

最近,人们一直在寻求类似Git的数据解决方案。开发类似git的数据解决方案并非易事。在这个探索上的障碍,与数据和代码完全不同这一事实有关。随着诸如ChefPuppetTerraformOpenStack HEAT等代码技术之类的基础设施的出现,基础设施最终能够作为代码在分支上进行版本控制和管理。这是可能的,因为这些技术允许将基础设施及其配置表示为代码。数据并非如此。

Sehn、Hendriks和Son在2018年成立了总部位于洛杉矶的公司Liquidata。一年前,他们发布了Dolt作为开源软件。它的名字来源于英国俚语“傻瓜”。DoltHub是一个基于云的存储网站,用于托管Dolt数据库,随后于2019年9月发布。它包含公共数据集,如Covid-19、按邮政编码划分的人口普查和所得税数据。

“如果你去DoltHub,你会发现一堆不同的数据是开放的,可以免费使用,你可以克隆它,在不到五分钟的时间内用三个命令就可以得到一个正常运行的SQL数据库”——Tim Sehn

“如果您转到DoltHub,您会发现一堆不同的数据是开放的,免费使用,您可以在不到5分钟内克隆它并在三个命令中获得一个功能正常的SQL数据库,而与其他(技术)一起使用其他数据集至少需要一小时,比如如果您有CSV并想将其放入数据库中,”TimSehn,该公司CEO说,这是一种更好的方式,在互联网上分发CSV、JSON文档和API。今年秋天,它增加了选举数据。

Dolt基于noms开源数据库,这是前谷歌工程师阿伦·布德曼和拉斐尔·温斯坦的智慧。他们的公司,阿提克实验室,于2018年初被Salesforce收购。Noms,写在Go中,允许用户复制数据并在多台机器上脱机编辑数据,然后在以后同步编辑。

我在几年前发表的一篇关于Noms的文章中指出,Noms的设计不是为了取代企业使用的流行数据库,而是为了更容易编写软件来消费和理解数据以及数据的变化。

Dolt版本表不是SQL数据库中的文件版本控制。数据和模式一起进行版本控制。Liquidata团队希望依赖用户对SQL和GitHub的熟悉,从而使Dolt易于使用。

使用Merkle树

Dolt使用Merkle树架构,允许用户在版本之间共享数据。

“如果您有一个5000万行表,并且添加了一行,那么我们只增量存储附加行,以便向它提供版本控制,”Sehn说。“在以前的技术中,你必须制作一个拷贝,一个全其他5000万行拷贝,这真的很慢。因此,这种内容寻址Merkle树技术允许我们高效地完成这一点,并以Git允许您快速、轻松地提供文件版本控制的方式向数据库提供基本完整的版本控制。”

Dolt用户创建一个本地存储库,其中包含可以使用SQL读取和更新的表。与Git类似,写入被分阶段进行,直到用户发出提交,然后将其发送到永久存储。对数据和架构的所有更改都存储在提交日志中。

分支合并语义允许表以多个用户的速度增长,在数据上提供松散的协作,以及对同一核心数据的多个视图。Dolt提供数据和模式之间的表特定差异和冲突检测。数据冲突是基于单元的,而不是基于行的高效diff计算。远程存储库允许存储库实例之间的合作。克隆、推送和拉语义可用。

根据Sehn的说法,Dolt是一个具有自己存储层、查询引擎和查询解析器的数据库。此时,Dolt无法轻松分发——数据必须适合一个硬盘。他说,有了足够的牵引力,团队将为大数据构建“大Dolt”。

Dolt使用Snappy开源压缩库(它将速度优先于大小)存储数据到磁盘。这意味着必须解压缩数据块以处理查询。

公共数据集免费托管在DoltHub上;私有存储库每月可提供50美元。

塞恩认为GitHub本身是Dolt的主要竞争对手,不过他在一篇博客文章中概述了coultqriKaggle等项目,以及pachydrm和DVC等数据管道版本控制选项。

他说,公司未来有四个重点领域:

  • 改进了Dolt和DoltHub,比如它最近在web上添加了数据查询,允许用户查看Dolt上查询的Excel审计日志。他说:“能够看到数据库中任何一个细胞的历史记录多达数百次,这对人们来说是非常有趣的。”
  • 添加社交功能等功能,使协作更容易。
  • 添加功能以完全兼容MySQL。
  • 添加更多的Git功能,比如重定基址,使用户可以在不创建分支的情况下查看历史记录或数据库。

项目地址:https://github.com/dolthub/dolt

  
 

除特别注明外,本站所有文章均为老K的Java博客原创,转载请注明出处来自https://javakk.com/1761.html

关于

发表评论

表情 格式

暂无评论

登录

忘记密码 ?

切换登录

注册