git 是一个很不错的svc 系统,当前基于git 的玩法是越来越多了,比如gitops,基于git 的数据管理也是包含了不少的开源实现
基于git 玩法的好处
- 版本化,可以实现特定版本的只读活着灵活管理,有些系统是支持不可变模式的,可以防止数据被随意修改
- 可管理化,可以实现数据即代码,数据不在是杂碎的东西了
- 利用git 模式现实自动化,主要是结合类似devops 的玩法,可以复用基于git devops 的一些周边工具
- 更好的数据共享以及使用,同时可以更好的实现数据管理知识的共享(与git 的玩法是类似的)
一些开源实现
- dvc
偏向于机器学习 - nessie
nessie 也是基于git的,但是它更偏向于catalog - dolt
实现了不少类似git 的能力,可以方便的进行数据管理,包含了cloud 以及本地托管模式 - ArtiVC
部分支持git 能力,好处是简单,支持多种数据存储,同时如果集成了rclone,更好支持更多的数据存储 - dremio
dremio 支持的部分也是基于了nessie,当然属于少量开源 - dbt
我们可以利用git 模式进行数据模型管理 - cubejs
实际上这个是cube.js cloud 在进行bi api 处理上的支持能力,也基于了git 进行数据模型管理 - lakefs
提供了类似git 的数据管理,包含分支,存储基于对象存储,需要元数据,能力还是不错的
说明
基于git 模式的数据版本管理工具的实现是越来越多了,加上当前的lakehouse 需求,是一个很不错的玩法,目前已经有不少的数据分析项目开始集成git 玩法了
比如dremio 就集成了nessie 支持数据的git 化管理,looker 等一些云化的bi 以及数据女分析平台就支持基于git 模式的建模(dbt 也提供了类似的能力,只是偏向于
T,实际上目前官方也在支持其他的,毕竟社区支持其他模式的需求越来越多了),以上只是一些项目的简单整理,实际上基于git 的玩法还是很多,可以变通下
参考资料
https://docs.lakefs.io/reference/object-model.html
https://github.com/iterative/dvc
https://dagshub.com/blog/data-version-control-tools/
https://lakefs.io/data-versioning/
https://github.com/projectnessie/nessie
https://projectnessie.org/
https://dvc.org/
https://github.com/dolthub/dolt
https://github.com/dremio/dremio-oss
https://artivc.io/
https://github.com/InfuseAI/ArtiVC
https://www.getdbt.com/
https://github.com/dbt-labs/dbt-core