通过气流处理卡住作业的算法

时间:2019-01-30 11:01:02

标签: python amazon-web-services statistics airflow

我正在为我的分析工作使用Airflow进行工作流管理。 要定义重试策略(Python模块),我想构建一个逻辑。

考虑要点:-

  1. 随着数据的增加,工作时间逐渐增加。也许某天会有更多数据,导致工作时间急剧增加;否则,增长将是逐步的。
  2. 有时,乔布斯会因各种问题而陷入困境,并且通常需要先终止再重启。

因此,我正在尝试制定一种逻辑,该逻辑将自动决定是否

  1. 终止工作
  2. 终止并重新启动
  3. 终止并标记为失败,以免下游作业被触发。
  4. 不采取任何措施,并通知DevOps有关该问题(“手动采取措施”)

因此,我只想从统计学上知道实现上述结果的有效方法是什么。

让我们考虑2个工作X和Y。

职位相关信息-

*FOR JOB X - *
----------------

datetime    Job Name    Job Duration(in mins)

1/25/2019   X           10
1/26/2019   X           11
1/27/2019   X           10
1/28/2019   X           9
1/29/2019   X           15
1/30/2019   X           20
1/31/2019   X           18
2/1/2019    X           19
2/2/2019    X           20
***2/3/2019 X           56 

Avg Time Taken By Job X (till 2nd feb)      14.66666667
Standard Deviation(Calculated till 2nd feb) 4.69041576
Live Deviation (as on 3rd feb)              13.79855065



*For Job Y - *
----------------

datetime    Job Name    Job Duration(in mins)

1/25/2019   Y           50
1/26/2019   Y           50
1/27/2019   Y           51
1/28/2019   Y           53
1/29/2019   Y           59
1/30/2019   Y           48
1/31/2019   Y           49
2/1/2019    Y           53
2/2/2019    Y           55
***2/3/2019 Y           200

Avg Time Taken By Job Y (till 2nd feb)      52
Standard Deviation(Calculated till 2nd feb) 3.4278273
Live Deviation (as on 3rd feb)              44.50572997

然后我正在考虑使用一个新表,其结构为-

**派生表-**

Job Name    Avg. Duration   Acceptable Deviation    Live Deviation

X           14.66666667        4.69041576           13.79855065
Y                 52           3.4278273            44.50572997

**NOTE:** the Avg calculated ( till 2nd feb) for the above table        

我的分析

由于与标准偏差相比,实时偏差(这是作业X和Y花费了比平常更多的工作来完成的结果)太高,因此将采用上述可能的结果之一。 / p>

需要回答的问题

  1. 这是正确的方法吗?
  2. 我可以使用哪种更好的方法?
  3. 是否有可用于任何目的的本机python库 (平均值,方差等)?

0 个答案:

没有答案