Atum redesign
- Langage dominant
- Scala
- Étoiles
- 30
- Forks
- 9
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
## Background
Currently, Atum relies on the global state of a Spark Application. This complicates the usage of Atum for jobs that are slightly more complicated than just a pipeline of a single dataframe. If there are several dataframes and several reads/writes and not every read and write is associated with control measurements, Atum will try to process all dataframes as if all require measurements.
The current workaround for such use cases is `disableControlMeasuresTracking()` method that is invoked before writing a dataframe that does not require control measurements.
## Feature
- [ ] Control measurements should be attached to a dataframe, not to the Spark session. E.g., to turn on control measurements users should do `df.enableControlMeasuresTracking()` instead of `spark. enableControlMeasuresTracking()`. Same for switching off control measurements.
- [ ] The measurements should happen to the dataframe it was initialized and the derived ones. Other dataframes shouldn't be affected.
- [ ] Checkpoints and other housekeeping information should not be kept in the global state.
- [ ] Adding metadata should be done as dataframe implicits (e.g. `df.setAdditionalInfo(...)`).
- [ ] Atum should keep checkpoints for each registered dataframe separately.
- [ ] Atum plugins should have an event that guaranteed to be sent last. Atum should guarantee that no more events are sent after that.
## Additonal context
After the new design is confirmed this issue can be converted to epic and all subitems to tasks.
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Évaluation
Cette issue n'a pas encore été évaluée.