新增功能更新
1.指标结果表历史数据支持行级更新
新增功能说明
背景:绩效考核场景下,绩效分配规则由业务人员制定,通常规则的推出具有滞后性,即,规则是2023年4月1日推出,规则的生效时间从2023年1月1日开始执行,此时就需要对自2023年1月1日以来的数据做更新。全表更新的方式效率慢、占用资源大,只对受影响的行做更新将可缩短更新周期,对业务正常使用影响也相对较小。
新增功能说明:
行更新的整体操作流程如下:
• 创建数据模型时,对于源表涉及到行更新的 hudi 表,将其设置为需要行更新,创建模型后,系统将为该表提供一个接口,供传入变更数据条件。
• 根据需要创建对应的指标,因模型中使用到了行更新表,后续指标都将通过 Spark 计算,存储为 Hudi 表,同时,因 Spark 暂不支持并发写 Hudi 表,调度中涉及到的跨周期依赖内容需要选择自依赖
•
调用该表的行更新接口,传入变更条,接口信息可通过「数据源管理」中的表详情查看。系统将根据提前设置好的更新频率,针对已经接收到的变更记录,自动识别所有指标表中受影响的行,计算出新的结果后对历史数据做批量更新,若数据的行更新具有紧迫性,也可点击「行更新」立即执行
• 【数据源管理】模块中查询相关记录变更后的后续指标的行更新进度
(新增功能示意图)
2.指标目录支持进行权限控制
新增功能说明
3.指标支持自定义添加 UDF 函数
新增功能说明
4.统计周期增加时间参数:上季初、上月初、上月末、上年初
新增功能说明
背景:绩效考核场景下,统计周期涉及统计上月、上季、上年的汇总数据,对应的时间参数需要支持 yyyyMMdd、yyyy-MM-dd 格式的上季初、上月初、上月末、上年初参数。
新增功能说明:
• 上季初:bdp.system.preqrtrstart、bdp.system.preqrtrstart2
• 上月初:bdp.system.premonthstart、bdp.system.premonthstart2
• 上月末:bdp.system.premonthend、bdp.system.premonthend2
• 上年初:bdp.system.preyrstart、bdp.system.preyrstart2
5.支持基于指标结果表生成的新模型做行更新
新增功能说明
背景:绩效考核场景下,存在根据模型1创建指标1,并将指标1的结果作为模型2的数据源表,需要实现模型1的表进行行更新后,指标1和模型2的指标均可进行行更新。
新增功能说明:指标提供行更新状态跟进接口,业务通过接口调用状态,再调用下一个模型进行更新。
• 数据模型设置的表选自 Hive Catalog 时,不需要设置行更新、更新方式可修改;选择 Hudi Catalog 时,需要设置行更新
• 数据源管理中仅展示 Hudi 数据源
• 需要行更新的表,设置删除方式可选择两种:
1)物理删除:表的数据删除是直接做删除。此时需要保证表开启 CDC 或文件存储方式是 op_key_only/data_before_after,否则,系统将无法追踪到变更前后的数据差异
2)逻辑删除:表的数据删除是以某一删除字段的值变化做区分,此时需要指定删除字段,以及对应取值
• 对应的查询各指标行更新进度可通过接口查询:
1)入参:表信息、请求id、行更新涉及模型标识/指标标识/API 名称
2)出参:模型/指标/API 针对所需表&所需请求批次的更新状态、表数据更新开始时间、表数据更新结束时间
• 行更新相关的指标 Hudi 表的建表语句做相应调整
功能优化
1.指标共享增加详情信息显示
体验优化说明
2.指标共享生成的视图创建规则调整
体验优化说明
背景:基于行更新功能产生 Spark 读写数据的场景,因 Spark 暂不支持查询 Trino 视图,需将视图从由 Trino 创建改为由 Spark 创建。
体验优化说明:
• 指标/模型共享过程中涉及到的视图改为通过 Spark 创建
• 共享指标、模型生成的视图名称变更
1)模型视图名称:表名_项目id_模型 code_index_view
2)指标视图名称:指标结果表_项目 id_index_view
3.模型/指标更新的下游联动更新
体验优化说明
背景:指标加工过程中,存在上游配置项变更的情况,此时,下游对应的对应 SQL 需做同步更新,以保证全局高效配置,功能统一,代表使用场景如下:
• 客户使用过程中,会存在模型的表的分区字段/维度对象属性配置等信息变更的情况,编辑的技术信息变更后,当前只针对维度勾选上的增减做下游联动更新,其余技术信息的变更也需要联动更新
• 客户计算指标时,存在同一指标不同统计区间内的加工口径不一样的情况,此时,表内将根据口径作用时间同时存在两个口径下的数据,如:2022年数据是口径1的结果,2023年数据是口径2的结果
体验优化说明:
• 模型修改表关联后,原子指标、派生指标联动更新 SQL,将模型部分的 SQL 更新至新版本,同时,若落表的模型选择的表发生变更,模型结果表将采用删表新建表的方式更新模型表
• 模型中的选择维度修改关联维度对象、关联维度属性后,原子指标引用的维度对象、维度属性信息同步更新
• 模型中修改上游任务依赖,派生指标中的上游任务配置同步调整
• 模型/指标维度减少,导致下游指标用到的维度消失时,使用删表、重新建表的方式进行更新指标表
• 模型使用的源表字段类型发生变更时,后续引用该字段的指标表使用删表、重新建表的方式进行更新指标表
4.行更新性能优化
体验优化说明
第一版行更新是以分区为单位进行优化,整体速度较慢,本次优化定位到分区内的特定行进行优化,提升整体行更新效率。
《数据治理行业实践白皮书》下载地址:https://fs80.cn/4w2atu
《数栈V6.0产品白皮书》下载地址:https://fs80.cn/cw0iw1
想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=bbs
同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:https://github.com/DTStack