背景介绍

在日常发布过程中,常常会存在以下发布场景:1)ODS表的模型发生变更,该表的产出任务及其下游的部分表也需要同步调整。调整完毕后,需要将调整涉及的表和任务都打包发布至接收方。2)下游数据应用(如BI报表)需要使用部分ADS表的产出数据,故需要将该ADS表和该表的产出任务及其上游的表和任务都打包发布至接收方。
在以上的发布场景中,目前都需要由发布人员去手动筛查和确定要发布的表和任务,极其耗时,且容易遗漏,支持基于血缘添加资源后,可以将手动筛选和添加资源的过程产品化,进而大幅提升发布效率。

功能简介

支持基于数据血缘添加上下游的Hive表、数据服务API、离线开发任务和离线同步任务。批量选择源头资源后,可基于血缘添加上下游的Hive表、数据服务API、离线开发任务和离线同步任务,并支持配合血缘类型、添加资源类型、资源更新时间、资源打包状态等添加条件来联合筛选资源。

功能入口

基于血缘添加资源 - 图1

功能详细说明

(1)选择源头资源

基于血缘添加资源 - 图2

支持以Hive表、数据服务API、离线开发任务和离线同步任务中的任一资源类型作为源头资源,默认最多可以添加200个源头资源,如需调整源头资源的添加数量上限可联系平台运维人员调整系统配置。

(2)确定添加资源

基于血缘添加资源 - 图3

选择源头资源后,点击“下一步”,进入确定添加资源该步骤的页面,并默认会添加上下游一层的资源。在此页面,支持根据以下资源添加条件去加载上下游资源,支持的资源添加条件包含:添加资源范围(上下游、仅上游、仅下游)、血缘类型(静态/活跃血缘)、添加资源类型(Hive表、数据服务API、离线开发任务、离线同步任务)、资源更新时间、资源打包状态(未打包、更新待打包、已打包)。

重新添加资源后,默认会加载符合条件的首层资源,如需获取更多层级的资源,可点击上下游处的“加载一层”去向更上游/更下游加载资源。

基于血缘添加资源 - 图4

上下游资源加载完成后,默认会全选加载出的所有资源(除跨项目-集群的资源),也支持选择其中的部分资源来添加至发布池。点击“确定”按钮后,即可将选中的资源添加到发布池。

基于血缘添加资源 - 图5

此外,也支持点击“下载资源清单”按钮,将已加载的资源下载为Excel文件,供本地查看。

以Hive表作为源头资源时,上游1层的资源包含:以该Hive表作为输出表的离线开发任务/离线同步任务、该Hive表的直接上游Hive表,下游1层的资源包含:以该Hive表作为输入表的离线开发任务/离线同步任务、该Hive表的直接下游Hive表、使用该Hive表的数据服务API。
以离线开发任务/离线同步任务作为源头资源时,上游1层的资源包含:该任务的输入表、以该任务的输入表作为输出表的离线开发任务/离线同步任务,下游1层的资源包含:该任务的输出表、以该任务的输出表作为输入表的离线开发任务/离线同步任务、使用该任务的输出表的数据服务API。
以数据服务API作为源头资源时,上游1层的资源包含:该API使用的Hive表、以该API使用的Hive表作为输出表的离线开发任务/离线同步任务,无下游资源。

计算逻辑说明:
1、会根据“添加资源范围”和“血缘类型”来计算上下游资源。举例来说,如添加资源范围为仅上游,血缘类型为活跃血缘,则仅加载上游血缘、不加载下游资源;只加载活跃血缘链路上的资源,不加载静默血缘链路上的资源。举个例子,如表a的上游1层静默血缘是表2,表2的上游1层活跃血缘是表3,由于表2不在表1活跃血缘的添加资源范围内,会连带导致表2的上游活跃血缘表3也不在添加资源范围内。
2、会根据“添加资源类型”、“资源更新时间”和“资源打包状态”来控制资源是否可选。举例来说,如【“添加资源类型”=全部,“资源更新时间”=全部,“资源打包状态”=更新待打包】,加载资源时会将所有资源打包状态的资源均加载并展示在资源列表中,但除“资源打包状态”为更新待打包外的资源均置灰不可选,以避免出现类似情况:下游第n层某资源的状态为已打包,该资源的下游一层资源的状态为更新待打包,由于加载资源时过滤了该资源,导致漏加载其下游1层资源。
3、加载上下游资源时,会加载血缘链路上跨项目-集群的资源及其上下游资源,但跨项目-集群的资源置灰不可选。

实践案例

业务场景
BI报表需要使用某ADS表的产出数据,ADS表的表名为:qg_test.submit_160_flow01_center,需要识别出【该ADS表及其上游】【近一周内】【新增或更新且未打包发布】的【离线开发任务和Hive表】,打包发布至接收方。

操作步骤
(1)选择源头资源
资源类型选择Hive表,并搜索选中表:qg_test.submit_160_flow01_center,如图。

基于血缘添加资源 - 图6

(2)确定添加资源
1、修改添加条件为:添加资源范围=仅上游,添加资源类型=离线开发任务、Hive表,资源更新时间=近七天,资源打包状态=未打包、更新待打包,点击“重新添加”,获取源头资源及其上游一层资源。
2、逐次点击“加载一层”按钮,直至更上游层级的资源数为0时停止加载。
3、点击“确定”按钮,将所有符合条件的资源添加到发布池。

基于血缘添加资源 - 图7