Atum redesign
- 主要語言
- Scala
- 星號
- 30
- 分支
- 9
- PR 合併指標
- 30 天內沒有已合併 PR
描述
## 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.
貢獻指南
這個儲存庫沒有索引到貢獻指南
評估
這個 Issue 還沒有評估資料。