2023年6月更新日志
上线时间:2023-06-08
产品整体
数据预览全局管控优化【5.3】
背景:之前在数据源中心做了数据预览管控的功能,可以针对单个数据源或全局进行数据预览功能的管控。但之前仅管控到数据同步的数据预览,离线这边需要优化能做到管控到表查询和数据地图的数据预览。
功能:meta数据源根据数据源中心的预览功能能管控到离线的数据同步、表查询、数据地图的数据预览等功能。
数据源
数据源引入支持对接审批中心【6.0】
背景:数据源的使用让用户走审批流程,而非只是由管理员分配,方便进行审计记录。
功能:项目管理员、项目所有者角色可在数据源中心进行数据源的申请,数据源权限经超级管理员、租户所有者、租户管理员审批通过后,引入数据源弹窗才会出现审批通过的数据源,项目管理员和项目所有者可以在项目中引入。
数据开发
Trino、Inceptor、Oracle、SQLServer、MySQL等计算引擎功能完善【5.3】
1、Trino支持explain
2、Trino、Inceptor、Oracle、SQLServer、MySQL支持语法提示
3、Inceptor、Oracle、SQLServer、MySQL支持表联想、支持血缘解析。
4、Oracle、SQLServer、MySQL支持界面创建存储过程、自定义函数、系统函数,支持任务依赖推荐,支持元数据同步和整库同步
5、所有SQL的子查询生效
所有SQL任务支持异步运行【5.3】
背景:目前我们的RDB SQL任务大部分采用的是同步运行,同步运行很可能会导致任务运行超时还未返回结果,考虑和GP一样全部调整为异步运行,优化用户体验。
功能:Spark SQL、Hive SQL、Trino SQL、Impala SQL、Inceptor SQL、GaussDB SQL、Oracle SQL、TiDB SQL、Greenplum SQL、MySQL、SQL Server、Hana SQL、ADB SQL、StarRocks SQL、HashData SQL 所有SQL类任务支持异步运行。(历史版本Spark SQL、Hive SQL、GreenPlum SQL 已支持)
所有SQL任务的默认运行方式调整为整段运行【6.0】
Hive SQL、Spark SQL、Greenplum SQL、GaussDB SQL、Oracle SQL、TiDB SQL、Trino SQL、MySQL、SQL Server、Hana SQL、ADB SQL、HashData SQL、StarRocks SQL、Inceptor SQL、Impala SQL所有SQL默认运行方式调整为整段运行
支持临时运行停止,临时运行停止和杀任务时支持从数据库底层停止任务运行【5.3】
背景:之前运维中心RDB类型杀任务,只是在界面上停止运行任务,并没有在数据库底层去让SQL停止运行,治标不治本,很多客户都反馈了这个问题。我们统一进行了优化。
功能:Spark SQL、Hive SQL、Trino SQL、Impala SQL、Inceptor SQL、GaussDB SQL、Oracle SQL、TiDB SQL、Greenplum SQL、MySQL、SQL Server、Hana SQL、ADB SQL、StarRocks SQL、HashData SQL运维中心杀任务时,数据库底层也停止运行。
临时运行时记录脏数据【6.0】
临时运行产生的脏数据表也需要记录在脏数据管理中,并且对各种情况的脏数据表分区命名进行了优化:
脏数据临时运行分区的命名规则:task_name=任务ID_test_instance/time=时间戳
脏数据周期实例分区的命名规则:task_name=任务ID_scheduled_instance/time=时间戳
脏数据手动实例分区的命名规则:task_name=任务ID_manual_instance/time=时间戳
脏数据补数据实例分区的命名规则:task_name=任务ID_temporary_instance/time=时间戳
on yarn 任务日志实时打印【6.0】
1、运维中心任务日志实时打印
范围:周期任务实例、手动任务实例、补数据任务实例
任务类型;Spark SQL、Hive SQL、数据同步任务、HadoopMR、PySpark、Spark、Flink
2、临时运行任务日志实时打印
范围:周期任务、手动任务、临时查询
任务类型:FileCopy、数据同步任务、Spark SQL、Hive SQL
3、原数据同步中的「错误记录数」「读取字节数」等信息打印位置调整
分段运行时,展示每段SQL的执行进度,并展示当前执行的SQL内容【6.0】
表查询和语法提示范围优化【5.3】
功能:离线开发中的表查询和语法提示范围优化为资产元数据管理中所有的表(包含底层同步到资产的非meta schema的表)
新增Python on Agent 任务【6.0】
背景:支持Python on Agent任务的原因主要有以下三点
1、agent能跑的任务更多
2、on yarn查询速率太慢了
3、yarn上跑python需要手动上传很多包,影响效率
功能:支持新建Python on Agent任务,Python on Agent任务将独立在控制台配置的节点上运行,不会占用yarn的资源。
表查询中的GP数据源,除了显示集群下所有表,还支持仅显示当前用户有权限的表【6.0】
背景:目前RDB数据源,在离线项目中的表权限是通过控制台绑定的集群数据库地址控制的,所有角色和用户拥有的权限都一样,无法做区分。
功能:
1、控制台支持按用户去绑定GP数据库账号
2、离线新增「仅展示有权限的表」按钮,用户可查看绑定的数据库账号下有权限的表
3、表查询中支持查看权限范围,例如Select、Insert等
新增Shell组件模版 【6.0】
数据同步
一键生成目标表功能优化【5.3】
背景:目前我们在进行一键建表功能需求设计的时候,通常使用varchar、string等通用类型来覆盖所有字段类型,如果客户有需求自行调整。但是实际上客户的场景是复杂的,还涉及到数据精度等问题。因此我们要在这个版本对常用数据源之间的字段映射关系做了梳理修改,尽量让客户使用一键建表功能时能直接使用,无需再进行调整。
功能:RDB->Hive,Hive->RDB,RDB->HANA,HANA->RDB,RDB->ADB,RDB->Doris 等数据同步中的一键生成目标表功能,支持字段根据映射关系匹配。
切分键填写优化【5.3】
背景:「源表切分键」的填写入口在「数据来源」时,客户经常会漏填,并在「通道控制」页面选择了大于1的并发数,在执行任务后才报错。客户需要再去添加切分键,产品体验差,效率低。
功能:将「源表切分键」填写入口从「数据来源」移至「通道控制」页面。新增「开启并发」按钮,开启后支持填写源表切分键。
数据过滤语句在使用数据预览功能时生效【6.0】
支持aws s3的Excel格式文件的数据同步【6.0】
开启严格模式下的数据同步问题解决【6.0】
背景:如果平台单独开启了严格模式,平台的HiveSQL中会要求指定分区,否则运行会报错。
但如果当前集群对接了数据安全,因为平台数据同步任务是通过explain语句来判断当前查询用户的权限。如果实际用户没有分区字段的查询条件,数据同步任务也会因为没有分区字段的查询条件而报错。
Hive SQL报错客户是可以理解,因为自己开启了严格模式,当对接数据安全后的数据同步任务报错,这个其实是不符合逻辑的。
解决方案:新增一个配置项。如果客户是严格模式且关闭了web层权限管控(对接数据安全/ranger),可以将这个配置项打开,则不会报错。
同步任务中选择和其他同步任务相同的目标表时,会进行提示【6.0】
背景:在一般的ETL场景中,一张表只会在一个数据同步中作为目标表存在,如果在多个同步任务中配置了同一个目标表,很有可能会造成数据丢失、数据覆盖等问题。
功能:在数据同步选择目标表时,若选择的目标表在当前租户下的某些数据同步任务中已经作为目标表存在,则会进行提示,并告知任务名称、任务责任人和所属项目。
数据同步支持源表为空校验【5.3】
背景:数据同步过程中,如果源表为空,则会向目标表写入空数据。在某些客户的场景下,这样可能是合理的。但是在另一些客户的场景下,源表可能是业务方的表,数据同步过程中并不清楚源表为空,也不希望源表的空数据去向目标表写入。
功能:
数据来源高级配置中新增高级参数「checkTableEmpty」。
若为“true”,数据同步任务的临时运行/周期实例运行/补数据实例运行/手动实例运行前检查源表是否为空,如果为空则实例状态为 提交失败(临时运行为运行失败),若任务配置了告警,则告警中会包含失败原因“任务已开启源表为空不运行的校验,源表${表名称}为空”。
若为“false”,数据同步任务的临时运行/周期实例运行/补数据实例运行/手动实例运行前源表为空时,任务正常运行。
运维中心
置成功、重跑、杀任务生效范围调整【5.3】
背景:目前置成功限制了特定状态下的实例才可操作,实际置成功的主要目的是当依赖链路中出现了暂时无法快速修复的阻塞实例时,在某些情况下其下游实例如果对这个或这些实例不是强依赖并且不能延迟时,希望平台提供一种强制或者临时处理方式从而让让下游可以继续跑起来,导致这种阻塞的情况不止现在的失败、取消,而是包含除“成功”外的所有状态,因此,能够支持置成功的实例为除“成功”状态之外的所有状态的实例;重跑同理,更加不用关心实例状态
功能:
1、所有状态的实例支持「置成功」
2、除运行中外所有状态的实例支持「重跑」
3、等待提交、提交中、等待运行、正在运行、冻结状态的实例支持「杀任务」
跨租户/项目/产品的实例支持在离线运维中心运维【5.3】
背景:补数据链路中若存在指标实例,指标实例出现失败的情况,如果希望重跑目前无法操作,因为离线内暂不支持对其他产品实例的运维,导致修复处理非常麻烦。
功能:跨租户/项目/产品的实例支持在离线运维中心展示,支持「紧急去依赖」「终止」「置成功」「重跑」等操作
实例置成功操作时,若绑定有质量任务,质量任务实例不执行【5.2】
背景:置成功一般发生在 当前任务暂时无法运行成功,但是下游要正常执行下去的情况,这种情况下当前任务一定存在问题,如果继续走质量校验没有意义。
功能:当对离线任务实例置成功时,如果有质量任务绑定,质量任务实例不执行。
实例依赖视图优化【6.0】
背景:任务依赖视图和实例依赖视图应该有所区分,任务依赖视图展示任务间依赖关系。实例依赖视图应该展示当前实例的依赖视图,包含实例间依赖和跨周期依赖。这样有助于用户全链路查看实例依赖关系,理解运行流程。
功能:运维中心实例依赖视图,展示当前实例的跨周期依赖实例视图。
发布
新增发布状态【5.3】
背景:用户无法区分发布页面的对象是否已经打包发布过,可能会造成部分任务重复发布,导致数据覆盖。
功能:发布页面增加了「状态」字段,包含「已打包」和「未打包」两种状态,重新提交的「周期任务」「手动任务」等对象,状态会变为「未打包」状态。