4 ms·
The most important DE skill you should learn is how to fix data problems when they happen. Data problems include: duplicate rows/events, upstream data errors th
by khaledh 4y ago
The most important DE skill you should learn is how to fix data problems when they happen. Data problems include: duplicate rows/events, upstream data errors that need to be corrected, error in your ETL logic, etc. You need to build tools to reason about the graph of data dependencies, i.e. downstream/upstream dependencies of datasets, and create a plan for repair. Datasets need to repaired in layers, starting from the ones closest to the source and working downstream to the leaves. Some datasets are self-healing or not (i.e. they're rebuilt from scratch when their inputs change), so you just let those rebuild. Incremental datasets are the worst to repair because they don't restate history and you have to fork them from the point when a problem happened and rebuild from that point onwards.
Without tools to help you repair data, sooner or later you'll run into a problem that will take you days (even weeks) to fix, and your stakeholders will be breathing down your neck.
- jrib 4y agoYou're implying it here, but I want to state it even more explicitly: create systems that allow you and your team to know when data problems arise! These can be processes or programmatic but if nothing is looking for problems, then they often go unnoticed until they cause an issue big enough that can't be ignored.
- hnthrowaway0315 4y agoThis is going to be a bigger problems when pipelines span across multiple teams within multiple organizations. The only way is to 1) consolidate pipeline design into fewer teams, 2) build monitoring tools to monitor upstream tasks, 3) build gate keeper tools to double check outputs of tasks owned by my team.