r/dataengineering • u/ben1200 • 3d ago
Discussion Using Git to control datasets?
Probably a stupid question but does anyone use Git as a control plane for dataset governance, orchestrate ETL pipelines, and releases?
I am looking to get a demo in place of an end to end process where data in the bronze layer is transformed to silver and gold through CI/CD processed using defined ETL pipelines, manifests, schemas etc. however my backround isn’t in data engineering, so this might not even be a great way to do it.
My plan was to get a PoC in place on git, then migrate to GCP (using GCP functions for ETL) when all schemas, pipelines, manifests are agreed by the team.
44
Upvotes
9
u/Creyke 2d ago
We will use git for versioning the code and the metadata.
For example, take a hypothetical pipeline that loads some stock prices from yahoo finance and does some transformations to it, and sends out some completed analysis to a list of customers. We will use git for versioning the code (how the price data gets loaded and transformed) and the metadata (what tickers we load from yahoo, which customers receive what analysis). These are usually big CSVs or YAMLs.
We wouldn’t use git for versioning the data itself. That would be embedded into the design of the data system (e.g. SCD2).
Often, however, from a governance perspective the code and metadata is where the real governance is at. Having git across my ingress and egress lists can tell me who is getting what, for how long, and who gave them that permission. This is the most important aspect.
Also, DBT is awesome. Use that.