整体说明

发布包发布时,支持对资源进行发布检测,以验证接收方环境是否满足资源发布的条件。发布前建议先进行检测再进行发布,如果发布的资源中不包含Hive表,则不检测也可以正常发布。但是接收方实际执行资源发布时,可能会更容易因环境不满足而发布失败。如果包含Hive表,必选先检测,通过检测,系统会生成待发布的DDL语句,语句也支持修改。

在发布到接收方后,资源实际发布时,系统会根据资源的引用关系,自动确定发布顺序。在资源类型上,会按照如下顺序发布:Hive表、质量监控任务、离线同步任务、离线开发任务。

如下图,为“在线生成”的发布包发布的页面:

发布包发布 - 图1

如下图,为“离线导入”的发布包发布的页面:

发布包发布 - 图2

2种发布包的发布页面类型,主要的区别是,“在线生成”的发布包是发布到其它项目,选择的是“在线发布”类型的发布策略;“离线导入”的发布包是发布到当前项目-集群,选择的是“离线发布”类型的发布策略。

下面,以“在线生成”的发布包的发布为力进行说明。

发布检测

“选择发布策略及配置”中,可选择当前用户可选择的状态为有效的发布策略,支持选择1至多个策略。

选择策略后,下方“待发布资源”区块会按照所选发布策略分别展示待发布的资源。资源列表中,可通过勾选“发布内容”列,来控制此次发布需要发布那些资源。取消勾选后,则发布检测和发布时,都会自动忽略该资源。特别的,发布Hive表不支持沟勾选,但支持修改待发布的DDL语句。

如下图,为Hive表检测之前显示的内容,列表“发布内容”列,会提示“需要先进行发布检测”。

发布包发布 - 图3

点击“全部检测”后,右侧会出现侧边弹框,显示当前资源的检测详情。

1)Hive表的检测详情

如下图,为对Hive表的检测:

发布包发布 - 图4

特别说明:如果发布策略中配置了Hive库映射,Hive表会被替换Hive库之后,再在接收方进行检测。根据检测结果,会提醒不可发布,或提示可以发布,并且,可修改发布的内容。

对于Hive表,系统在检测后会自动推荐执行的DDL语句,操作者可点击“检测详情”的“设置发布内容”查看和修改发布时将执行的DDL语句。

发布包发布 - 图5

特别说明:针对外部表,则还需要修改Hive表TBLPROPERTIES中的location属性。

2)离线同步任务的检测详情

如下图,为对离线同步任务的检测:

发布包发布 - 图6

对于离线同步任务的输出表,如果配置了Hive库映射,则系统会先进行库替换,再进行库表检测。

3)质量监控任务的检测详情

如下图,为对质量监控任务的检测。当前实践中,因为Hive表也是在当前发布包一起发布,接收方并不存在对应的Hive表,因此质量监控检测中会提示监控库表不存在,检测不通过。

因为在当前包中已经存在了该Hive表,因此可忽略该报错。质量监控任务在发布到接收方时,系统会再次进行检测,如果存在该表,则检测会变为通过,可正常发布。

发布包发布 - 图7

特别说明:在实际发布的场景中,如果监控的Hive表在接收方不存在,则需要先将Hive表发布到接收方,才能发布质量监控任务。

4)离线开发任务的检测详情

如下图,为对离线开发任务dim_easysubmit_user_info的检测:

发布包发布 - 图8

特别说明:如果接收方不存在引用的质量监控任务,但是发布包中有包含,则发布检测会通过。如果包中不存在引用的质量监控任务,接收方“项目-集群”下存在同名的质量监控任务,则也会检测通过。

如下图,为对离线开发任务flow_mysql2hive_ods_easysubmit_user_info的检测:

发布包发布 - 图9

特别说明:如果接收方不存在引用的离线同步任务,但是发布包中有包含,则发布检测会通过。如果包中不存在引用的离线同步任务,接收方“项目-集群”下存在同名的离线同步任务,则也会检测通过。

检测结束,针对失败、警示的检测项后,需要按照建议的内容进行问题排查和解决。

发布包发布

点击发布包发布页面的“全部发布”,则系统会将每个发布策略中勾选了“发布内容”的资源,以及Hive表中的发布内容的设置,进行打包,生成发布实例包,并通过流程协作与通知中心,在接收方产生工单。

发布包发布 - 图10

发布记录

发布包发布后,在触发发布包发布的项目-集群下,发布中心的发布记录中会生成一条发布记录。

发布包发布 - 图11