用 Git 操作的数据库?这个项目火了!
# 用 Git 操作的数据库?这个项目火了!
> 超级特别又实用的数据库,快来补课!
Git 是一个开源的分布式版本控制系统,可以敏捷高效地管理代码,让项目代码支持同时存在多个不同的版本和分支,是程序员在项目开发中的必备工具。

除了代码文件可以进行版本控制之外,**数据其实也可以版本控制**!
今天,Dolt 项目荣登 GitHub 趋势榜榜首,该仓库的介绍是 “Git for Data”,一个面向数据的 Git,目前已收获了几千个 star。

下面我们来简单了解下 Dolt 项目。
### 什么是 Dolt?
根据官方介绍,Dolt 是一个基于 Git 协议的开源 SQL 数据库,使用 Golang 语言编写。
首先它和 MySQL 关系型数据库一样,用于存储和管理数据,具有表、视图等概念,支持数据的增删改查等操作。

然而更棒的是,它提供了一个命令行工具,完美支持所有的 Git 命令,并且语法完全相同!允许用户像使用一个 git 仓库一样对数据进行 fork、clone、branch、merge、push 和 pull 等操作。

当你提交数据到存储库时,Dolt 会自动存储提交日志,比如本次修改的内容、作者、提交时间等,从而实现了对数据单元的版本控制,便于多人对数据进行协作和优化。

比如一个班的同学在使用公共数据做实验时,可能需要针对实验提供不同的数据,这个时候就可以用 Dolt 来进行数据的版本控制。

你还可以随时查看上次提交的数据与当前数据的区别,一旦有人不小心把公共数据改错了,发现当前数据有异常时,可以轻松地回滚和修复问题。

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

关于 Dolt 的使用方法,官方已经给了详细的教程,还是比较简单的。
### DoltHub
就像 Git 拥有 GitHub 作为代码的开源远程托管平台一样,Dolt 官方也提供了相应的远程托管平台,即 DoltHub。
DoltHub 允许用户将自己的 Dolt 数据库免费托管到他们提供的云存储服务中,便于管理和协作。你可以像浏览 GitHub 一样浏览 DoltHub,在这里发现优秀的数据集,比如 Coronavirus(冠状病毒)、Google Open Images 等,拿去实验和数据分析都是极好的!

---
虽然数据版本控制的概念在很早之前就已经被提出和落地,但是 Dolt 的热门应该能够帮助更多同学了解和使用这类系统,我还是很期待他的发展。
️ 项目地址:https://mp.weixin.qq.com/s/Ax5iLOtSoeyQEaUk0oPWtg
用 Git 操作的数据库?这个项目火了!的更多相关文章
- EF6操作Sqlite数据库的项目兼容性问题
vs2010无法正确打开2015创建的项目里面操作Sqlite数据库时使用EF6创建的edmx文件(会显示空白) 但是可以正常查询 vs2015无法正确打开2010创建的项目里面操作Sqlite数 ...
- EF操作sqlite数据库时的项目兼容性问题
问题:vs2015打不开vs2010建的操作sqlite的实体数据模型edmx文件 原因: 当前电脑必须先安装:驱动库及sqlite的vs拓展 正常情况下安装驱动和拓展后,vs2015就应该可以正常打 ...
- git操作常用命令
一.使用git 1.git是什么? Git是目前世界上最先进的分布式版本控制系统. SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己 ...
- 连接Linux服务器操作Oracle数据库
连接Linux服务器操作Oracle数据库 由于项目已经上线,现场的数据库服务器不允许直接用Oracle的客户端plsqldev.exe来连接,只能通过Linux服务器的命令来操作. 以下是用Se ...
- python操作三大主流数据库(14)python操作redis之新闻项目实战②新闻数据的展示及修改、删除操作
python操作三大主流数据库(14)python操作redis之新闻项目实战②新闻数据的展示及修改.删除操作 项目目录: ├── flask_redis_news.py ├── forms.py ├ ...
- python操作三大主流数据库(10)python操作mongodb数据库④mongodb新闻项目实战
python操作mongodb数据库④mongodb新闻项目实战 参考文档:http://flask-mongoengine.readthedocs.io/en/latest/ 目录: [root@n ...
- idea git操作 -- 已有项目添加到git
我们在使用git时,如果是先从git克隆项目,然后配置项目运行没问题,如果将已有项目添加到git,则项目环境还是提交不了git,还需要到克隆的仓库文件夹打开项目去操作git,如果有有类型情况可按照如下 ...
- 数据库web项目对数据库的操作
1.0.JSTL与jsp实现对数据库的操作 MySql 数据库: create database if not exists CommodityDB; use CommodityDB; drop ta ...
- Git操作指令进阶
注意: 学习前请先配置好Git客户端 相关文章:Git客户端图文详解如何安装配置GitHub操作流程攻略 官方中文手册:http://git-scm.com/book/zh GIT 学习手册简介 本站 ...
- Myeclipse10.7安装git插件并将Java项目上传到码云(github)
注:本文来源:外匹夫的<Myeclipse10.7安装git插件并将Java项目上传到码云(github)> 一.先说说安装egit插件的步骤(安装egit不成功的原因主要是下载的egit ...
随机推荐
- git 安装 和 git 客户端的使用
git clone 命令 # 查前当前登录用户的一些基本信息: # 查看当前登录的账号:git config user.name # 修改当前登录的账号为xcj:git config --global ...
- uni-app前端图表组件库,折线图横屏android失败的解决办法
网址:https://www.ucharts.cn/v2/#/demo/index,需要登录,微信就可以 我在使用折现图时,业务需要把曲线图在点击全屏时横屏全屏显示.就做个全屏页面,点击后,把opti ...
- RocketMQ消息过滤机制源码详解
#RocketMQ提供了2种消息过滤的方式: TAG 过滤 SQL92 过滤 SQL过滤默认是没有打开的,如果想要支持,必须在broker的配置文件中设置:enablePropertyFilter = ...
- JDK动态代理的深入理解
引入代理模式 代理模式是框架中经常使用的一种模式,动态代理是AOP(面向切面编程)思想的一种重要的实现方式,在我们常用的框架中也经常遇见代理模式的身影,例如在Spring中事务管理就运用了动态代理,它 ...
- mysql存储地理信息的方法
MySQL 存储地理信息通常使用 GEOMETRY 数据类型或其子类型(如 POINT, LINESTRING, POLYGON 等).为了支持这些数据类型,MySQL 提供了 SPATIAL 索引, ...
- 一文搞懂 MySQL 日志
前言 MySQL 的日志记录了运行的各种信息,是 MySQL 事务.性能.数据容灾.异常排查等的基础.本文将介绍 MySQL 一些关键日志的作用和原理. MySQL InnoDB 引擎重要的三个日志: ...
- Qt-FFmpeg开发-回调函数读取数据(8)
音视频/FFmpeg #Qt Qt-FFmpeg开发-使libavformat解复用器通过自定义AVIOContext读取回调访问媒体内容 目录 音视频/FFmpeg #Qt Qt-FFmpeg开发- ...
- 使用Wesky.Net.Opentools库,一行代码实现实体类类型转换为Json格式字符串
安装1.0.10以及以上版本的 Wesky.Net.OpenTools 包 包内,该功能的核心代码如下: 自定义属性: 实体类JSON模式生成器: 使用方式:引用上面的1.0.10版本或以上的 ...
- Symbol.for()
当我们在不同的模块或文件中需要共享一个特定的Symbol时,可以使用Symbol.for()方法来实现. 假设我们有两个模块,分别是module1.js和module2.js.我们希望在这两个模块中使 ...
- LeetCode 719. 找出第 k 小的距离对 (Java)
题目: 给定一个整数数组,返回所有数对之间的第 k 个最小距离.一对 (A, B) 的距离被定义为 A 和 B 之间的绝对差值. 示例 1: 输入:nums = [1,3,1]k = 1输出:0 解释 ...