源启数据开发平台升级:上线SDM开发模式,实现数据开发效率进一步提升

源启数据开发平台是源启·数据资产平台面向企业级数据湖仓和数据集市构建而打造的数据处理任务开发与管理平台,可支持离线数据仓库、实时数据仓库、数据湖和数据集市的构建。平台基于DAG可视化画布提供数据处理作业流设计与调试,并为作业流中的节点提供低代码、模板化以及智能IDE等多种任务代码开发调试模式,可适应不同技术等级和难度等级的数据开发。

同时,平台支持SQL、FlinkSQL、Python、Perl、Shell等多种开发语言,适配关系型数据库、MPP数据库、Hive、Flink等多种计算平台,具备大模型驱动的代码补全、注释、纠错与调优等高效能代码开发智能辅助能力。此外,平台还具备丰富的开发管理能力,包括作业流管理、脚本管理、调度推送、作业流与节点任务监控、标准算法管理、代码开发规则管理等。

● 适用行业:银行、保险、证券、能源、制造等

● 应用技术:DAG可视化作业流构建技术、多语言代码集成开发技术、代码开发智能辅助技术、大数据批处理和流处理技术等

● 应用场景:离线数据仓库构建、实时数据仓库构建、数据湖构建、数据集市构建

数据工程中存在大量业务逻辑相同,但处理对象不同的数据开发场景。针对此类场景,若每次都重新编写算法,不仅会耗费大量技术资源,还可能引发算法和数据开发代码质量的波动。为此,把共性业务逻辑抽象为企业级的标准处理算法,并利用SDM(Source Destination Mapping)模板文件导入不同处理对象,自动生成数据开发代码,成为了一种更高效的策略。

源启数据开发平台V4.0针对该需求场景,推出了基于标准处理算法和SDM的开发模式,显著增强了数据开发代码的编写效率。

名词解释

【1】数据开发

① 通过数据开发任务的运行,获得可用数据;

② 数据开发任务的配置;

③ 数据开发代码的编写。

【2】数据开发任务

属于数据处理任务,一种完成数据开发(含义①)的数据任务,与数据集成任务、数据质量检查任务、数据脱敏任务等相对。

【3】数据开发代码

数据开发任务的代码,通常用脚本语言编写(比如SQL、Shell、Perl、Python等),因此也叫数据开发脚本。

【4】SDM任务

一种基于SDM开发模式得到的数据开发任务。

支持算法统一管理维护,标准化开发模板

■ 功能介绍

算法管理功能提供构建管理自定义变量和算法的能力,可在算法中引用变量和设置字段mapping占位符。算法支持Shell、Perl等脚本语言,并将扩展对Python语言的支持。

■ 应用场景

场景痛点

当前,变量和算法的管理呈现出烟囱式格局,即一个算法只能被一个任务引用,这不仅造成了算法数据的冗余,还使得数据工程师在配置数据开发任务时低效且无序。

应用赋能

为解决上述痛点问题,亟需构建一个统一的变量和算法维护入口,以消除烟囱式管理弊端。同时,将创建好的算法集中起来,供SDM任务进行引用,从而提升数据开发任务的配置效率。

为确保算法能被不同SDM任务高效引用,平台对算法脚本内容做了规范:对于稳定不变的业务逻辑,可以直接编写代码;而对于频繁改动的字段mapping,则通过占位符进行代替,并在SDM任务创建时进行字段mapping配置。这一举措促进了标准化业务算法模板的建立,实现了一个算法模板在多SDM任务中的高效复用,使得数据开发任务的配置过程变得高效有序。

本功能包括“算法管理”和“变量管理”两大模块,用户可在“算法管理”中创建算法,创建过程中可引用变量并插入字段mapping占位符,最终打造出可复用的标准算法。

支持复杂任务配置,全方位覆盖加工场景

■ 功能介绍

SDM任务创建功能具备临时表创建、次源表添加、主源表与次源表关联、主源表与临时表关联以及目标表与源表字段映射(包括重置映射、同名映射、顺序映射)等复杂任务配置的能力。该功能可满足数据加工过程中表跟表之间多样化的连接、映射及存储情况,能够有效解决各类复杂的数据加工场景。 

■ 应用场景

场景痛点

用户在进行数据加工的过程中,操作并非将单一源表数据处理后写入目标表中那么简单。在这一过程中涵盖了源表数据的过滤、清洗、多张源表关联以及字段映射等多重需求。若仅聚焦于数据加工处理逻辑,而忽视了这些实际需求,将会导致功能脱离实际应用场景,进而降低其使用效率。

应用赋能

为解决上述痛点问题,需通过创建临时表,用于加工过程中的映射传导,从而提升SDM任务对复杂加工逻辑的支撑能力。在创建SDM任务过程中,用户可通过添加次源表,并配置次源表跟主源表关联方式和连接条件,来满足数据加工多张源表的应用场景。同时,通过编写过滤条件对源表数据进行过滤,满足对部分源表数据进行加工处理的场景。通过设置目标表与源表字段的映射规则,确保数据加工的数据能够按需传导和落库。

本功能可在任务创建中的“任务配置”标签页中创建临时表,用于临时数据的存储,并支持填写任务基本信息和任务关联算法信息。在“映射配置”标签页,可进行次源表的添加和复杂映射规则的配置。在添加次源表时,用户可根据需求从数据源中选择其他数据表或者临时表作为次源表,与主源表做join连接操作。

支持自动生成SDM任务,提高数据开发效率

■ 功能介绍

模板导入功能具备将编写好的SDM任务模板导入平台,并自动生成SDM任务的能力。SDM任务模板包含算法信息和字段mapping信息,用户只需将填写完毕的模板导入平台,平台即可快速解析其中的算法信息和字段mapping信息,自动生成对应的SDM任务,从而提升SDM任务创建效率。

■ 应用场景

场景痛点

在数据加工领域,时常会遇到需要对多张源表使用同一算法处理的场景,且处理逻辑保持不变。若采用表单式逐一创建任务,不仅过程繁琐重复,还极其耗时低效,给数据工程师带来不小的挑战。而且,一旦遇见平台服务中断或网络异常,表单式编辑任务信息将无法进行,只能等待环境恢复正常后才能继续,十分影响业务进度。

应用赋能

为了解决这一痛点,针对处理逻辑一致但源表不同的SDM任务,平台支持采用任务模板批量导入的方式实现任务的批量构建。用户只需在任务模板中,按行填写源表、次源表、映射信息、Join信息、where信息等参数,然后再将编辑好的模板文件导入平台,即可实现批量创建SDM任务,大幅提升任务创建效率。

针对环境问题影响业务进度的痛点,用户还可以提前在线下编写算法模板信息,将SDM任务的基本信息预先填好。待环境恢复后,只需一键导入,即可快速创建SDM任务,有效降低环境问题对业务的影响。

本功能允许用户在任务模板文件中编写算法基本信息、来源端信息、目标端信息以及映射规则等信息。编写完成后,将任务模板导入平台,平台即可自动解析并根据导入文件内容创建生成SDM任务。

支持SDM任务版本管理,实现开发任务差异化管理

■ 功能介绍

SDM任务版本管理功能为用户提供了任务版本创建、查看和引用的一站式能力。在创建或编辑SDM任务过程中,用户每次对任务进行修改并保存时,平台都会自动生成一个新的任务版本。同时,用户可以查看每个版本的基本信息,并能预览和下载历史版本的脚本信息。此外,用户还可以在流程设计中引用SDM任务的历史版本,满足不同场景下的需求。通过完整记录SDM任务从初始化创建到每次内容修改的版本信息,该功能为SDM任务建立了一份详尽的历史档案。每个版本都能适应细微差异的加工场景,从而充分发挥SDM任务的多样性和灵活性。

■ 应用场景

场景痛点

随着算法的不断优化、源表的调整以及源表关联关系的变动,SDM任务的配置信息也需要随之进行更改。若缺乏对每次修改内容的版本记录,则无法对修改操作进行追溯。同时,那些仍具有业务价值的旧版任务配置也可能因新内容的覆盖而无法查阅和应用。

应用赋能

为解决上述痛点,需建立SDM任务版本管理功能,该功能会记录每次修改保存后的版本信息。用户不仅可以进行历史版本信息查阅,还能预览并下载历史版本的脚本。这些记录在版本管理中的SDM任务版本脚本,可直接用于作业流程的构建和执行,实现了SDM任务的“改有所依,存有所用”,充分发挥出了SDM任务的价值。

通过本功能,当前任务可轻松保存为新版本。用户只需点击相应按钮,即可通过弹框查看该SDM任务的历史版本列表。选择特定版本号,即可预览该版本的脚本内容,并支持将脚本下载到本地。此外,在流程设计中配置“脚本算子”时,用户还可选择SDM任务的历史版本,进一步提升了任务配置的灵活性与实用性。

来源:数据工程实验室