通用的数据库校验及元数据导入方法

文档序号:6516244阅读:851来源:国知局
通用的数据库校验及元数据导入方法
【专利摘要】本发明公开了一种通用的数据库校验及元数据导入方法,程序构建即插即用式的通用的元数据导入模块,可热插拔到分散自律电力数据管理平台中。模块支持对之前通过通用元数据导出模块或第三方应用系统持久存储到关系型数据库中的海量数据进行自定义查询和过滤,并转换为数据管理平台所支持的以三层HashMap结构表示的元数据。本发明将位于关系型数据库中的海量数据筛选为数据管理平台所能识别的三层HashMap元数据,并存储到Felix容器(内存)中,使得数据管理平台的处理层和输出层各模块能够方便灵活地获取历史生产数据,同时也有效降低了这些模块的开发难度。
【专利说明】通用的数据库校验及元数据导入方法
【技术领域】
[0001]本发明涉及电力系统数据处理方法领域,具体为一种通用的数据库校验及元数据导入方法。
【背景技术】
[0002]目前众多的电力应用大多采用关系型数据库来存储海量历史生产数据,但它们各自基于的数据标准和格式往往不同,从而导致了数据库表结构的不同。因此,现有电力系统在不修改代码的前提下,几乎不可能复用其他系统的生产数据,从而增加了下游各数据查询和分析子系统的开发难度和成本。

【发明内容】

[0003]为了克服上述现有技术的不足,本发明的目的是提供一种通用的数据库校验及元数据导入方法。
[0004]为了达到上述目的,本发明所采用的技术方案为:
通用的数据库校验及元数据导入方法,其特征在于:程序构建即插即用式的通用的元数据导入模块,所述元数据导入模块逻辑结构如下:
导入配置的定义,编辑元数据导入所必要的配置信息,配置信息保存在n或配置文件
中;
导入配置的校验,检查n或配置文件中的导入配置信息是否与源数据库的结构匹配以及是否满足三层HashMap的存储要求;
行过滤条件的定义,在n中通过可视化的方式对源数据库中的各表设置过滤条件以得到需要的记录行,并能指定多个过滤条件的连接逻辑;
导入为元数据:按照导入配置和过滤条件将任意数据库中的关系型数据转换为三层HashMap结构并存入电力数据管理平台;
手动运行方式,用户通过操作模块提供的n来自定义和校验导入配置信息并执行导
A ;
自动运行方式,实现自律分散的即插即用电力数据管理平台中输入层定义的接口,并通过手动运行方式下得到的含有导入配置信息的配置文件完成校验和导入逻辑。
[0005]所述的通用的数据库校验及元数据导入方法,其特征在于:导入配置的定义过程如下:
步骤1:手动方式启动模块,选择数据库类型以及要导入的源数据库;
步骤2:选择要导入的数据表;
步骤3:定义生成的元数据名称并选择一次或多次定时导入;
步骤4:对于每个要导入的表,定义其对应的Tag名称以及其下所有字段对应的Key名
称;
步骤5:对于每个要导入的表,选择其要导入的字段以及三层HashMap的中层Key值的组成字段;
步骤6:对于每个要导入的表,定义其数据行过滤条件。
[0006]所述的通用的数据库校验及元数据导入方法,其特征在于:导入配置的校验过程如下:
步骤1:检查导入配置是否未指定单表可导入的最大记录行数或行数非法;
步骤2:检查导入配置是否未指定要导入的源数据库名称;
步骤3:检查导入配置指定的要导入的源数据库是否不存在;
步骤4:检查导入配置是否未指定要导入的表名或表名为空;
步骤5:检查导入配置是否指定了多个同名的导入表或导入表不存在;
步骤6:检查导入配置是否未指定导入表对应的Tag名或多个导入表对应的Tag名相
同;
步骤7:检查导入配置是否未指定导入表的导入字段名或字段名为空;
步骤8:检查导入配置指定的导入表的导入字段是否不存在;
步骤9:检查导入配置是否未指定导入表的导入字段对应的Key名或Key名为空; 步骤10:检查导入配置是否未指定导入表的中层Key值的组成字段名或字段名不存
在;
步骤11:检查导入配置是否未指定导入表对应的数据行计数SQL语句或SQL语句存在语法错误;
步骤12:检查导入配置指定的导入表对应的数据行计数SQL语句的返回数据行数超过了指定的单表最大行数;
步骤13:检查导入配置是否未指定导入表的中层Key值SQL语句或SQL语句存在语法错误;
步骤14:检查导入配置指定的导入表的中层Key值SQL语句的返回数据行是否包含多个相同的值;
步骤15:检查导入配置是否未指定导入表的数据行过滤SQL语句或SQL语句存在语法错误。
[0007]所述的通用的数据库校验及元数据导入方法,其特征在于:行过滤条件的定义过程如下:
步骤1:选择过滤条件包含的字段名;
步骤2:选择过滤条件包含的运算符;
步骤3:选择过滤条件包含的参考值;
步骤4:选择过滤条件包含的运算符;
步骤5:选择过滤条件之间的连接逻辑;
步骤6:在产生的SQL语句的合适位置添加括号以显式改变多个过滤条件的运算优先
级;
步骤7:在产生的SQL语句的合适位置添加括号以显式改变多个过滤条件的运算优先
级;
步骤8:预览过滤后的数据。
[0008]所述的通用的数据库校验及元数据导入方法,其特征在于:将过滤数据中每个二维结构表转换为两层HashMap结构,最终形成以三层HashMap形式存放的元数据,并存入电力数据管理平台。
[0009]所述的通用的数据库校验及元数据导入方法,其特征在于:自律分散的即插即用数据平台可以通过手动运行方式下得到的含有导入配置信息的配置文件,自动完成数据库的校验和导入逻辑,过程如下:
步骤1:以手动方式运行本模块;
步骤2:用户操作模块的UI,选择和编辑导入配置信息,并将配置信息保存为配置文
件;
步骤3:启动自律分散的即插即用数据平台,并以可视化拖曳的方式在数据平台的输入层创建本模块的实例;
步骤4:为实例指定配置文件,并启动实例,此后数据平台将通过输入层接口定义的回调方法触发校验和导入逻辑。
[0010]本发明支持对之前以通用元数据导出模块或第三方应用系统持久存储到关系型数据库中的海量数据进行自定义查询和过滤,并转换为数据管理平台所支持的以三层HashMap结构表示的元数据,使得数据管理平台的处理层和输出层各模块能够方便灵活地获取历史生产数据,同时也有效降低了这些模块的开发难度。
[0011]本发明与现有的技术相比,具有如下优点:
(1),模块即插即用,可定义程度高。模块以OSGi的Bundle形式热插拔到数据管理平台中,所有可配置部分均存放在独立的配置文件中或通过数据管理平台的UI指定。
[0012](2),代码清晰分层,可扩展性高。模块被划分为Model、Dao、BiZ及n等逻辑层,层间单向依赖,对电网应用的快速需求变更具有很好的适应性。
[0013](3),同时支持MySQL和Oracle数据库,多个并发模块的数据查询效率较高。模块能自动判断源数据库是由通用元数据导出模块还是由其他第三方应用系统创建的。
[0014](4),完善的校验逻辑和详细的提示信息。无论是手动还是自动运行方式,模块均提供了各种可能出现的无意或恶意的导入配置的校验逻辑以及详细的错误提示信息。
【专利附图】

【附图说明】
[0015]图1为本发明功能及逻辑划分图。
[0016]图2为本发明将过滤后的数据转换为三层HashMap结构的流程图。
[0017]图3为本发明更新三层HashMap中Tag和Key名的流程图。
【具体实施方式】
[0018]通用的数据库校验及元数据导入方法,程序构建即插即用式的通用的元数据导入模块,元数据导入模块逻辑结构如下:
导入配置的定义,编辑元数据导入所必要的配置信息,配置信息保存在UI或配置文件
中;
导入配置的校验,检查n或配置文件中的导入配置信息是否与源数据库的结构匹配以及是否满足三层HashMap的存储要求;
行过滤条件的定义,在n中通过可视化的方式对源数据库中的各表设置过滤条件以得到需要的记录行,并能指定多个过滤条件的连接逻辑;
导入为元数据:按照导入配置和过滤条件将任意数据库中的关系型数据转换为三层HashMap结构并存入电力数据管理平台;
手动运行方式,用户通过操作模块提供的n来自定义和校验导入配置信息并执行导
A ;
自动运行方式,实现自律分散的即插即用电力数据管理平台中输入层定义的接口,并通过手动运行方式下得到的含有导入配置信息的配置文件完成校验和导入逻辑。
[0019]导入配置的定义过程如下:
步骤1:手动方式启动模块,选择数据库类型以及要导入的源数据库;
步骤2:选择要导入的数据表;
步骤3:定义生成的元数据名称并选择一次或多次定时导入;
步骤4:对于每个要导入的表,定义其对应的Tag名称以及其下所有字段对应的Key名
称;
步骤5:对于每个要导入的表,选择其要导入的字段以及三层HashMap的中层Key值的组成字段;
步骤6:对于每个要导入的表,定义其数据行过滤条件。
[0020]导入配置的校验过程如下:
步骤1:检查导入配置是否未指定单表可导入的最大记录行数或行数非法;
步骤2:检查导入配置是否未指定要导入的源数据库名称;
步骤3:检查导入配置指定的要导入的源数据库是否不存在;
步骤4:检查导入配置是否未指定要导入的表名或表名为空;
步骤5:检查导入配置是否指定了多个同名的导入表或导入表不存在;
步骤6:检查导入配置是否未指定导入表对应的Tag名或多个导入表对应的Tag名相
同;
步骤7:检查导入配置是否未指定导入表的导入字段名或字段名为空;
步骤8:检查导入配置指定的导入表的导入字段是否不存在;
步骤9:检查导入配置是否未指定导入表的导入字段对应的Key名或Key名为空; 步骤10:检查导入配置是否未指定导入表的中层Key值的组成字段名或字段名不存
在;
步骤11:检查导入配置是否未指定导入表对应的数据行计数SQL语句或SQL语句存在语法错误;
步骤12:检查导入配置指定的导入表对应的数据行计数SQL语句的返回数据行数超过了指定的单表最大行数;
步骤13:检查导入配置是否未指定导入表的中层Key值SQL语句或SQL语句存在语法错误;
步骤14:检查导入配置指定的导入表的中层Key值SQL语句的返回数据行是否包含多个相同的值;
步骤15:检查导入配置是否未指定导入表的数据行过滤SQL语句或SQL语句存在语法错误。[0021]行过滤条件的定义过程如下:
步骤1:选择过滤条件包含的字段名;
步骤2:选择过滤条件包含的运算符;
步骤3:选择过滤条件包含的参考值;
步骤4:选择过滤条件包含的运算符;
步骤5:选择过滤条件之间的连接逻辑;
步骤6:在产生的SQL语句的合适位置添加括号以显式改变多个过滤条件的运算优先
级;
步骤7:在产生的SQL语句的合适位置添加括号以显式改变多个过滤条件的运算优先
级;
步骤8:预览过滤后的数据。
[0022]将过滤数据中每个二维结构表转换为两层HashMap结构,最终形成以三层HashMap形式存放的元数据,并存入电力数据管理平台。
[0023]自律分散的即插即用数据平台可以通过手动运行方式下得到的含有导入配置信息的配置文件,自动完成数据库的校验和导入逻辑,过程如下:
步骤1:以手动方式运行本模块;
步骤2:用户操作模块的UI,选择和编辑导入配置信息,并将配置信息保存为配置文
件;
步骤3:启动自律分散的即插即用数据平台,并以可视化拖曳的方式在数据平台的输入层创建本模块的实例;
步骤4:为实例指定配置文件,并启动实例,此后数据平台将通过输入层接口定义的回调方法触发校验和导入逻辑。
[0024]如图1所示,本发明为一种通用的元数据导入模块,可热插拔到分散自律电力数据管理平台中。模块支持以手动操作n和自动通过电力数据管理平台的输入层接口回调2种工作方式完成导入配置的编辑、校验、保存以及源数据库的数据过滤和导入。
[0025]实施例1,将过滤后的数据库数据转换为以三层HashMap结构存放的元数据。
[0026]首先,对过滤数据中的每个数据表进行迭代,并构造相应的顶层HashMap ;接着,对数据表的所有记录行进行迭代,构造相应的中层HashMap,并以导入配置指定的中层Key字段的组成值作为中层HashMap的Key值;最后,对记录行中的所有数据列进行迭代,构造相应的底层HashMap。具体流程如图2所示。
[0027]实施例2,更新三层HashMap中的各个Tag和Key名。
[0028]将过滤后的数据库数据转换为以三层HashMap结构存放的元数据后,各顶层及底层HashMap的Key名默认使用对应的数据表名和字段名,可能不满足用户的需求,因此需要更新。更新的方法为依次迭代每层HashMap,并使用导入配置中的表名/Tag名、字段名/Key名的映射信息,替换各顶层及底层HashMap的Key名。具体流程如图3所示。
【权利要求】
1.通用的数据库校验及元数据导入方法,其特征在于:程序构建即插即用式的通用的元数据导入模块,所述元数据导入模块逻辑结构如下: 导入配置的定义,编辑元数据导入所必要的配置信息,配置信息保存在n或配置文件中; 导入配置的校验,检查n或配置文件中的导入配置信息是否与源数据库的结构匹配以及是否满足三层HashMap的存储要求; 行过滤条件的定义,在n中通过可视化的方式对源数据库中的各表设置过滤条件以得到需要的记录行,并能指定多个过滤条件的连接逻辑; 导入为元数据:按照导入配置和过滤条件将任意数据库中的关系型数据转换为三层HashMap结构并存入电力数据管理平台; 手动运行方式,用户通过操作模块提供的n来自定义和校验导入配置信息并执行导A ; 自动运行方式,实现自律分散的即插即用电力数据管理平台中输入层定义的接口,并通过手动运行方式下得到的含有导入配置信息的配置文件完成校验和导入逻辑。
2.根据权利要求1所述的通用的数据库校验及元数据导入方法,其特征在于:导入配置的定义过程如下: 步骤1:手动方式启动模块,选择数据库类型以及要导入的源数据库;` 步骤2:选择要导入的数据表; 步骤3:定义生成的元数据名称并选择一次或多次定时导入; 步骤4:对于每个要导入的表,定义其对应的Tag名称以及其下所有字段对应的Key名称; 步骤5:对于每个要导入的表,选择其要导入的字段以及三层HashMap的中层Key值的组成字段; 步骤6:对于每个要导入的表,定义其数据行过滤条件。
3.根据权利要求1所述的通用的数据库校验及元数据导入方法,其特征在于:导入配置的校验过程如下: 步骤1:检查导入配置是否未指定单表可导入的最大记录行数或行数非法; 步骤2:检查导入配置是否未指定要导入的源数据库名称; 步骤3:检查导入配置指定的要导入的源数据库是否不存在; 步骤4:检查导入配置是否未指定要导入的表名或表名为空; 步骤5:检查导入配置是否指定了多个同名的导入表或导入表不存在; 步骤6:检查导入配置是否未指定导入表对应的Tag名或多个导入表对应的Tag名相同; 步骤7:检查导入配置是否未指定导入表的导入字段名或字段名为空; 步骤8:检查导入配置指定的导入表的导入字段是否不存在; 步骤9:检查导入配置是否未指定导入表的导入字段对应的Key名或Key名为空; 步骤10:检查导入配置是否未指定导入表的中层Key值的组成字段名或字段名不存在; 步骤11:检查导入配置是否未指定导入表对应的数据行计数SQL语句或SQL语句存在语法错误; 步骤12:检查导入配置指定的导入表对应的数据行计数SQL语句的返回数据行数超过了指定的单表最大行数; 步骤13:检查导入配置是否未指定导入表的中层Key值SQL语句或SQL语句存在语法错误; 步骤14:检查导入配置指定的导入表的中层Key值SQL语句的返回数据行是否包含多个相同的值; 步骤15:检查导入配置是否未指定导入表的数据行过滤SQL语句或SQL语句存在语法错误。
4.根据权利要求1所述的通用的数据库校验及元数据导入方法,其特征在于:行过滤条件的定义过程如下: 步骤1:选择过滤条件包含的字段名; 步骤2:选择过滤条件包含的运算符; 步骤3:选择过滤条件包含的参考值; 步骤4:选择过滤条件包含的运算符; 步骤5:选择过滤条件之间的连接逻辑; 步骤6:在产生的SQL语 句的合适位置添加括号以显式改变多个过滤条件的运算优先级; 步骤7:在产生的SQL语句的合适位置添加括号以显式改变多个过滤条件的运算优先级; 步骤8:预览过滤后的数据。
5.根据权利要求1所述的通用的数据库校验及元数据导入方法,其特征在于:将过滤数据中每个二维结构表转换为两层HashMap结构,最终形成以三层HashMap形式存放的元数据,并存入电力数据管理平台。
6.根据权利要求1所述的通用的数据库校验及元数据导入方法,其特征在于:自律分散的即插即用数据平台可以通过手动运行方式下得到的含有导入配置信息的配置文件,自动完成数据库的校验和导入逻辑,过程如下: 步骤1:以手动方式运行本模块; 步骤2:用户操作模块的UI,选择和编辑导入配置信息,并将配置信息保存为配置文件; 步骤3:启动自律分散的即插即用数据平台,并以可视化拖曳的方式在数据平台的输入层创建本模块的实例; 步骤4:为实例指定配置文件,并启动实例,此后数据平台将通过输入层接口定义的回调方法触发校验和导入逻辑。
【文档编号】G06F17/30GK103605663SQ201310499751
【公开日】2014年2月26日 申请日期:2013年10月22日 优先权日:2013年10月22日
【发明者】黄少伟, 陈颖, 胡平, 汪国武 申请人:芜湖大学科技园发展有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1