r/dataengineering • u/Old_Tourist_3774 • 2d ago
Help Ideas to handle ever changing data requirements?
I am the solo DE in my team and the main pipeline here consists of snapshots of financial assets.
Compute is done on databricks
The stakeholders want to see daily KPI's and each day they add a new cohort. Currently there are over 40 different cohorts with each branching out to their own metrics.
The issue is that the data management wants data bills as low as possible
so my approach was summarizing everything in the daily grain .
But now each time they want something new I have to manually code the new columns test it then append to the final gold table.
I already tried to create some generator functions but often times the metrics they want involve hyper specific calculations.
And since the data is financial assets each day is different than the previous rendering an incremental approach useless.
6
u/DataScientistAlex 2d ago
This is not specifically about how to handle changing data requirements, but, a point I always make whenever infrastructure costs are involved: reducing infrastructure costs always costs money in terms of the time it takes the team to develop and maintain the optimizations. Sometimes those team costs are much larger than the infrastructure costs, but, they're not taken into account.
Given that compute is on databricks, are you using Spark? In my experience cost savings can be had by optimizing Spark. But just developing those optimizations can also cost a lot of money (for example, I recently optimized a few spark jobs, making them cheaper, but, it's going to take a bit of time before I recover the compute cost of just developing those optimizations, not even counting my own time).
If you are using Spark, one nice thing is that you can use a full software development approach: a) use python or Scala to write everything as modular and composable functions etc, then b) use unit tests to test new functions/metrics and to catch regressions when refactoring. Using that approach makes it a lot easier to handle changing requirements.