Datatphin的发布管控功能支持基于用户已经设定好的管控规则及生效策略,在任务发布前执行对应的检查,以判断任务是否符合发布条件。针对校验不通过的任务,根据规则配置详情,会阻断发布流程(强管控)或给出警告提示但不阻塞发布(若管控),以增强平台的稳定性保障。
1 概览
发布管控是变更管控的子功能之一(后续可逐步拓展研发管控、运维管控等),变更管控分为变更规则和变更策略两部分。
- 变更规则是基于对象的基础属性、外部服务接口等来源抽象出来的元数据,结合系统内置规则或自定义代码编写的逻辑条件而组成的校验规则;规则校验不通过的对象即被纳入管控,结合变更策略判断管控方式。
- 变更策略是根据用户已经创建好的变更规则,设置其生效范围和管控方式。支持在单个变更策略中配置多个规则并给每个规则指定不同的管控方式。
发布管控常用但不限于以下几种场景:
- 时间节点管控:在某些特殊时间节点,禁止发布新的任务或更新历史任务,防止数据计算口径变更带来的影响,如财年末封账、财务审计、双11大促管控、集群切换保障等场景
- 研发规范管控:根据某些任务属性来进行判断,如ODS项目中没有以“ods_”为开头命名的任务不可发布等
- 账号管控:针对部分提交人或发布人进行限制,如已离职人员提交的任务不可执行发布操作等等
2 功能介绍
为了更直观的了解该功能的实现,我们以“ODS层项目中没有以'ods_'为开头命名的任务不可发布”的场景为例一步步拆解配置流程:
首先,以'ods_'为开头命名的任务需要管控,可以通过两种方式进行识别:
- 任务名以'ods_'开头的任务校验通过,则不满足这个条件的均被视为校验不通过并纳入管控范围,对应的配置表达式为:
- 规则配置:task.taskName(校验项) startWith(规则条件) ods_(条件值)
- 校验逻辑:满足条件校验通过
- 任务名没有以'ods_'开头的任务校验不通过,对应的配置表达式为:
- 规则配置:task.taskName(校验项) notstartWith(规则条件) ods_(条件值)
- 校验逻辑:满足条件校验不通过
以上两种配置方式,均可以实现针对"没有以ods_为开头命名的任务"进行管控。
其次,我们需要配置管控的生效范围及管控方式,即配置管控策略:
- 生效时间:设置该策略的生效时间段,可指定每天具体的某几个时间区间
- 管控方式:支持“阻断”和“设为警告”两种,当前场景中我们设置为“阻断”
- 阻断:该任务发布失败,失败原因为发布管控规则校验不通过
- 设为警告:该任务可正常发布,但发布详情弹框会展示警告信息(即规则配置中设置的“校验不通过提示信息”)
- 校验范围:可设置针对哪些对象执行该管控策略,支持按照所属项目、任务名称、操作时间等属性信息进行圈选。当前场景中我们设置圈选条件为:归属项目 等于 dummy_odm(该租户的ODS项目名称)
基于上述配置,我们测试任务发布结果:分别创建一个以“ods_”为开头和以“nonods_”为开头命名的任务,测试结果如下:
- 以“ods_”为开头命名的任务可正常发布:
- 以“nonods_”为开头命名的任务发布失败,被阻断,并展示阻断详情:
发布管控为您在发布环节增加一道“保护伞”,您可以通过灵活调整管控规则及策略配置,实现不同的管控效果,以减少人工干预成本,也能进一步提升平台建设的规范性和稳定性。
Dataphin官网介绍:https://www.lydaas.com/dataphin
Dataphin公开咨询钉钉群:23381533