Datatphin V3.4版本全新上线调度限流功能,支持根据业务优先级和资源情况,控制不同时间段内不同任务的下发数量。基于限流能力,不仅可以减少对底层计算引擎和上下游数据源的并发压力,保证高优任务优先分配调度及计算资源,任务能按序产出;同时也能实现故障异常场景下的快速止血,增强整体稳定性。
背景简介
基于Dataphin的任务调度系统,周期实例和补数据实例运行需要同时满足两个条件:1)上游依赖全部运行成功;2)实例已经到达定时调度时间。满足这两个条件后,实例就会被下发到资源调度系统,如果调度资源充足,则会开始运行(如Python、Shell任务)或者被继续下发到计算引擎(SQL任务)执行。
某些场景下,由于低优先级任务比高优先级任务更早满足运行条件,会被优先下发并占用大量资源,从而导致高优先级任务因为资源不足而出现长时间等待状态,影响下游业务数据产出。此外,如果大量任务被同时下发,计算引擎和数据源也可能因为并发或高产生异常,导致系统崩溃。
以上场景,都需要运维人员大量的手动干预,成本极高。严重情况下,可能因为无法干预或介入较晚而产生严重的问题,影响系统稳定性和数据质量。因此,我们需要强有力的任务并发控制能力。
功能介绍
Dataphin支持给不同运行环境配置不同的限流规则,可避免开发环境的测试任务占用大量资源从而影响生产环境任务的运行。
每个实例可以命中多条限流规则。在满足了上游依赖和定时时间的校验后,任务调度系统将会校验每个实例命中的所有限流规则,并根据每条规则设置的并发度进行判断。只有命中的所有限流规则均没有达到并发上限时,该实例才会被下发到资源调度系统。
限流规则配置
1、限流对象圈选
您可以快捷配置全局限流,以实现故障场景下的快速止血,也可以按照实例所属项目、调度类型(周期、手动、补数据、一次性查询)、任务类型、业务类型(集成同步、离线数据处理、建模研发、萃取研发)来圈选需要限流的实例,实现灵活限流配置。
2、并发运行控制
圈选完需要限流的对象后,您可以设置并发运行数。当命中该规则,且运行状态为“运行中”和“等待调度资源中”的实例总数达到设置的并发上限后,后续实例被限流不再继续下发,直到有实例运行完成,才会继续下发新的实例。
3、规则生效时间配置
当前支持三种生效时间配置方式:
- 全时间段
- 指定时间范围:支持设置开始日期时间和结束日期时间,连续区间,如:2022-04-28 23:25:09 ~ 2022-04-29 23:29:24,支持配置最多三个区间
- 指定时间区间:支持设置开始和结束日期,并指定每天的开始时间和结束时间,均匀间隔区间,如:2022-04-12 ~ 2022-04-30 02:30 ~ 05:30,支持配置最多三个区间
规则生效控制
除了通过指定生效时间来控制限流规则是否可用,您也可以在规则列表快捷批量将规则快捷开启/关闭已经配置的限流规则,即时生效。
规则标签管理
为了更好地对限流规则进行分类管理,Dataphin支持设置规则标签,您可以给每条限流规则打上一个或多个标签,并支持根据标签进行筛选,便于快速找到需要查看的规则并执行操作。
售卖说明
限流功能作为Dataphin增值模块“智能运维”的功能之一,可以在购买基础研发版或智能研发版的基础上叠加购买。
新功能预告
V3.5版本中,Dataphin将上线“运行诊断”功能,支持按照上游依赖、定时时间、限流规则、调度资源、实例运行五个流程,对实例运行进行分析,帮助用户快速识别问题并并提示可能的原因和修复建议,降低运维人员的判断和分析成本,敬请期待!