Live data from Hacker News

Data Version Control

dvc.org

31–40 of 54 posts

Re: Data Version Control

#31
post #12
post #8

hi there! Maintainer and author here. Excited to see DVC on the front page! Happy to answer any questions about DVC and our sister project DataChain https://github.com/iterative/datachain that does data versioning with a bit different assumptions: no file copy and built-in data transformations.

if the data files are all just text files, what are the differences between DVC and using plain git?

It's not just to manage file versioning. Yo can define a pipeline with different stages, the dependencies and outputs of each stage and DVC will figure out which stages need running depending on what dependencies have changed. Stages can also output metrics and plots, and DVC has utilities to expose, explore and compare those.

Re: Data Version Control

#33

How does it compare to Oxen? https://github.com/Oxen-AI/Oxen

never heard of oxen but it looks like a super interesting alternative. would love to hear from someone who has experience with both.

my first impression: dvc is made to use with git where there are arbitrary folders handled by dvc INSIDE your git repo, where oxen is an alternative for a separate data repo. also oxen has lots of integration with dataframes and tabular, ai training and infernece data that dvc is missing. on the other hand dvc has a full DAG pipeline engine integrated as well as import/ export and pluggable backends.

Re: Data Version Control

#34
post #12

Earlier quoted context omitted.

if the data files are all just text files, what are the differences between DVC and using plain git?

DVC does a lot more than git. It essentially makes sure that your results can reproducibly be generated from your original data. If any script or data file is changed, the parts of your pipeline that depend on it, possibly recursively, get re-run and the relevant results get updated automatically. There's no chance of e.g. changing the structure of your original dataset slightly, forgetting to regenerate one of the i…

This sounds a lot like the experimental project Jacquard [0] from Ink & Switch.

[0] https://www.inkandswitch.com/jacquard/notebook/

Re: Data Version Control

#35

What are the benefits of DVC over Apache Iceberg? If anyone used both, I'd be curious about your take. Thanks!

head is a bit discombobulated today, but i’ll give this a shot

when i say ‘blob’ data, a good example to think of is a set of really long 1080p video files.

tl;dr version

* throw data into dvc when unstructured ‘blob’ data.

* throw it into iceberg when you’ve got structured data.

benefits of dvc over iceberg:

* not forcing ‘blob’ data into a tabular format and all the “fun” (read: annoying) processing steps that come with doing that

* don’t have to have to run some processing step to extract ‘blob’ data out of what is basically a parquet file, dvc pull (?) will just download each file as is.

* edit files locally then run three-ish (?) commands to commit changes, without needing to run a data ingestion pipeline to force ‘blob’ data into a table

* completely schema less, so don’t have to worry about ‘blob’ data being the wrong type, just shove it in the repo and commit it

* roll back throughout all of commit history, not just to the last vacuum/checkpoint

basically, tabular data formats and ‘blob’ data shoved into them is a recipe for pain.

shoving ‘blobs’ into a git like repo is much faster and easier.

especially if you need full version history, branches for different outcomes etc.

trying to have different branches in Iceberg for your set of really long 1080p video files where you have applied different ffmpeg filters in different branches and want people to be able to access all of them, and the history of them sounds nightmare-ish.

in dvc, that’s ^ easy.

basically, it’s like creating a data lake which won’t turn into a data swamp because everything is version controlled.

Re: Data Version Control

#37

What are the benefits of DVC over Apache Iceberg? If anyone used both, I'd be curious about your take. Thanks!

If you're wondering this you should look at Icechunk too, which was open-sourced just this week. It's Apache Iceberg but for multidimensional data (e.g. Zarr).

https://earthmover.io/blog/icechunk

https://news.ycombinator.com/item?id=41850352

Re: Data Version Control

#38
post #17

This useful for large binaries?

Would appreciate a good answer to this question. I deal with large medical imaging data (DICOM) and i cannot tell whether it's worth it and/or feasible.

You should look at Icechunk. Your imaging data is structured (it's a multidimensional array), so it should be possible be to represent it as "Virtual Zarr". Then you could commit it to an Icechunk store.

https://earthmover.io/blog/icechunk

Re: Data Version Control

#39
post #12

Earlier quoted context omitted.

if the data files are all just text files, what are the differences between DVC and using plain git?

DVC does a lot more than git. It essentially makes sure that your results can reproducibly be generated from your original data. If any script or data file is changed, the parts of your pipeline that depend on it, possibly recursively, get re-run and the relevant results get updated automatically. There's no chance of e.g. changing the structure of your original dataset slightly, forgetting to regenerate one of the i…

Sounds like it is more a framework than a tool.

Not everybody wants a framework.

Re: Data Version Control

#40
Great to see DVC being discussed here! As a tool, it’s done a lot to simplify version control for data and models, and it’s been a game-changer for many in the MLOps space.

Specifically, it's a genius way to store large files in git repos directly on any object storage without custom application servers like git-lfs or rewriting git from scratch...

At DagsHub [0], we've integrated directly with DVC for a looong time, so teams can use it with added features like visualizing and labeling datasets managing and models, running experiments collaboratively, and tracking everything (code, data, models, etc.) all in one place.

Just wanted to share that for those already using or considering DVC—there are some options to use it as a building block in a more end-to-end toolchain.

[0] https://dagshub.com

Post reply on HN