Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature] Data backfilling #377

Open
JoshOY opened this issue Jan 15, 2021 · 0 comments
Open

[Feature] Data backfilling #377

JoshOY opened this issue Jan 15, 2021 · 0 comments
Assignees
Labels
design Design ideas & wanted features, etc. enhancement New feature or request

Comments

@JoshOY
Copy link
Member

JoshOY commented Jan 15, 2021

设计背景

数据回填(data backfilling, aka “补数据“)功能适用于如下的应用场景:

假设有一个任务,满足如下条件:

(1) 该任务为周期性调度(例如每天晚上 11:59)。

(2) 该任务的调度运行时间,会决定该任务的输入数据选取范围。

但是当任务被设计完成并发布时,已经超过了预定的开始时间。如图所示:

image

例如我们需要从 11.1 开始,每天跑一次该任务,但是直到 12.1 开始该任务才完成发布。

此时我们需要制定一个方案,让任务即便超出预定的调度时间,仍可以在 11.1 - 11.30 的输入数据源不缺失的前提下,能够通过补充运行 30 次 taskrun,将 11.1 - 11.30 的预定输出数据补齐。

设计方案

考虑到任务的运行机制可能分为两种:

(1) 任务以 ”调度的具体时间点“ 作为隐性输入参数之一,输入数据的选取和该时间点有关。

(2) 任务以 "时间范围" 作为隐性输入参数之一,输入数据的选取和某个时间段相关。

因此,我们考虑将补数据分为两种方案:

(1) 针对上述第一种情况,需要补充 30 次 taskrun 进入调度队列,每次 taskrun 的预计调度运行时间点作为环境变量参数或者 args 传入。

例如:调度运行 30 次名称为 import_data.sh 的脚本:

第一次:KUN_PLANNED_RUN_TIME="2020-11-01T11:59:00.000Z" ./import_data.sh

第二次:KUN_PLANNED_RUN_TIME="2020-11-02T11:59:00.000Z" ./import_data.sh

第三次:KUN_PLANNED_RUN_TIME="2020-11-03T11:59:00.000Z" ./import_data.sh

以此类推。

(2) 针对上述第二种情况,只需要补充 1 次 taskrun,将期望开始时间、结束时间 11.1 - 11.30 作为额外参数传入,由任务自行处理周期内的数据。

例如:调度运行 1 次名称为 import_data.sh 的脚本:

KUN_PLANNED_RUN_TIME_RANGE_START="2020-11-01T11:59:00.000Z" KUN_PLANNED_RUN_TIME_RANGE_END="2020-11-30T11:59:00.000Z" ./import_data.sh

@JoshOY JoshOY added enhancement New feature or request design Design ideas & wanted features, etc. labels Jan 15, 2021
@JoshOY JoshOY self-assigned this Jan 15, 2021
@JoshOY JoshOY pinned this issue Jan 15, 2021
@JoshOY JoshOY changed the title [Feature] Supplementary task runs [Feature] Data backfilling Jan 15, 2021
@JoshOY JoshOY unpinned this issue Mar 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
design Design ideas & wanted features, etc. enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant