
技术摘要:
本发明提供了一种基于数据仓库抽象数据加载的方法及系统。所述方法包括:对作业脚本进行预处理,得到实际业务脚本;提取实际业务脚本中语句解析使用到的目标表、源表字段及插入内容的关联关系,以及提取实际业务脚本中的谓词信息;利用所述谓词信息及加载算法标准信息 全部
背景技术:
由于大数据技术发展快速,数据库软件也在不停地更新换代,数据仓库的数据在 SAS平台、Teradata平台、Hadoop平台、GaussDB平台之间频繁进行切换,造成在作业前期的 迁移转换过程中,为了适应新技术平台的特性,无可避免地出现了大量手工撰写和修改加 载程序的情况,虽然在技术平台成型的后期形成了统一模板加载工具,但前期的大量手工 加载程序,造成了程序的可维护性较差,大量依赖人工查找程序进行单一的分析和修改,无 法对加载规范标准、技术平台特性等同质问题进行统一规划和管理。
技术实现要素:
为了解决上述问题,本发明实施例提供一种基于数据仓库抽象数据加载的方法, 所述方法包括: 对作业脚本进行预处理,得到实际业务脚本; 提取所述实际业务脚本中语句解析使用到的目标表、源表字段及插入内容的关联 关系,以及提取所述实际业务脚本中的谓词信息; 利用所述谓词信息及加载算法标准信息,确定加载程序与加载算法的关联关系; 根据目标表、源表字段及插入内容的关联关系,以及加载程序与加载算法的关联 关系,对输入作业进行数据加载。 可选的,在本发明一实施例中,所述对作业脚本进行预处理,得到实际业务脚本包 括:将所述作业脚本的内容读取到变量中,利用正则表达式去除变量中非必要信息,得到仅 包含实际业务功能的实际业务脚本。 可选的,在本发明一实施例中,所述提取所述实际业务脚本中语句解析使用到的 目标表、源表字段及插入内容的关联关系,以及提取所述实际业务脚本中的谓词信息包括: 利用正则表达式逐一提取所述实际业务脚本中语句解析使用到的目标表、源表字段及插入 内容的关联关系,以及所述实际业务脚本中的SQL语句谓词信息。 可选的,在本发明一实施例中,所述根据目标表、源表字段及插入内容的关联关 系,以及加载程序与加载算法的关联关系,对输入作业进行数据加载包括:根据目标表与插 入内容的字段级关联关系,以及目标表与源表字段的字段级关联关系,利用输入作业的作 业名、表名、加载算法及字段级逻辑对照关系得到模板化加载程序;利用所述模板化加载程 序进行数据加载。 本发明实施例还提供一种基于数据仓库抽象数据加载的系统,所述系统包括: 脚本处理模块,用于对作业脚本进行预处理,得到实际业务脚本; 脚本解析模块,用于提取所述实际业务脚本中语句解析使用到的目标表、源表字 4 CN 111597243 A 说 明 书 2/8 页 段及插入内容的关联关系,以及提取所述实际业务脚本中的谓词信息;利用所述谓词信息 及加载算法标准信息,确定加载程序与加载算法的关联关系; 数据加载模块,用于根据目标表、源表字段及插入内容的关联关系,以及加载程序 与加载算法的关联关系,对输入作业进行数据加载。 可选的,在本发明一实施例中,所述脚本处理模块包括:语句抽取单元,用于将所 述作业脚本的内容读取到变量中,利用正则表达式去除变量中非必要信息,得到仅包含实 际业务功能的实际业务脚本。 可选的,在本发明一实施例中,所述脚本解析模块包括:脚本解析单元,用于利用 正则表达式逐一提取所述实际业务脚本中语句解析使用到的目标表、源表字段及插入内容 的关联关系,以及所述实际业务脚本中的SQL语句谓词信息。 可选的,在本发明一实施例中,所述数据加载模块包括:加载程序单元,用于根据 目标表与插入内容的字段级关联关系,以及目标表与源表字段的字段级关联关系,利用输 入作业的作业名、表名、加载算法及字段级逻辑对照关系得到模板化加载程序;数据加载单 元,用于利用所述模板化加载程序进行数据加载。 可选的,在本发明一实施例中,所述系统还包括:源数据模块,用于存储应用系统 的作业脚本。 可选的,在本发明一实施例中,所述系统还包括:加载算法标准模块,用于存储加 载算法标准信息。 可选的,在本发明一实施例中,所述系统还包括:存储模块,用于存储目标表、源表 字段及插入内容的关联关系,以及加载程序与加载算法的关联关系。 本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并 可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤: 对作业脚本进行预处理,得到实际业务脚本; 提取所述实际业务脚本中语句解析使用到的目标表、源表字段及插入内容的关联 关系,以及提取所述实际业务脚本中的谓词信息; 利用所述谓词信息及加载算法标准信息,确定加载程序与加载算法的关联关系; 根据目标表、源表字段及插入内容的关联关系,以及加载程序与加载算法的关联 关系,对输入作业进行数据加载。 本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计 算机程序被处理器执行时实现以下步骤: 对作业脚本进行预处理,得到实际业务脚本; 提取所述实际业务脚本中语句解析使用到的目标表、源表字段及插入内容的关联 关系,以及提取所述实际业务脚本中的谓词信息; 利用所述谓词信息及加载算法标准信息,确定加载程序与加载算法的关联关系; 根据目标表、源表字段及插入内容的关联关系,以及加载程序与加载算法的关联 关系,对输入作业进行数据加载。 本发明克服了对数据仓库在不同技术平台上大量手工加载程序的无序管理,并弥 补了数据仓库模型逻辑对应关系依赖人工查找,无法准确获取的缺点,提升加载程序开发 时效,降低人力成本,提升定位问题分析时效,提高分析准确性。 5 CN 111597243 A 说 明 书 3/8 页 附图说明 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述 中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些 实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附 图获得其他的附图。 图1为本发明实施例一种基于数据仓库抽象数据加载的方法的流程图; 图2为本发明实施例一种基于数据仓库抽象数据加载的系统结构示意图; 图3为本发明实施例中源数据应用系统脚本文件结构示意图; 图4为本发明实施例中实际业务脚本中SQL语句与对应提取结果的示意图; 图5为本发明实施例中提取关联关系程序流程图。