一种基于算法可配置的通用数据入库方法技术

技术编号:3916899 阅读:283 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种基于算法可配置的通用数据入库方法,可以在所有数据源为文件的数据入库,本发明专利技术解决数据(数据源)与字段(数据表)灵活对应,及入库脚本自动实现,可以根据不同的数据库平台做SQL语句的适当调整,所以可作为所有的数据库平台数据入库的方法。特别在海量数据处理及需要对入库数据做特殊处理的情况下有更好的应用体现。

【技术实现步骤摘要】

本专利技术涉及一种计算机数据处理
,具体地说是一种基于算法可配置的通用数据入库方法
技术介绍
数据库是数据应用的常用工具,在使用数据前需要先把数据入库到数据库中。在数据入库过程中使用到数据库平台标准的操作命令insert (新纪录的插入命令)、update(已有数据的更新命令);或者使用不同数据库平台的个性化快速入库工具,如oracle数据库平台的sqlload命令、informix平台的dbaccess等。 最简单、最常使用的入库方式是根据一个具体数据源的数据,直接生成一个具体的SQL语句,使用数据库的insert操作命令,进行数据入库操作(并根据入库操作的sql命令返回值,判断入库状态,并采用update实现数据的更新操作)。这种方式灵活性差,修改困难,在把数据移植到不同的数据库平台上时需要修改每个SQL语句。 另外在某些数据仓库的ETL工具中(或者类似的工具),实现了通用的数据入库功能,即通过数据源与目的数据库数据表字段间的灵活定义,满足数据灵活入库要求,在移植到不同的数据库平台时仅需修改数据库异构部分即可。但这种工具在灵活性上与现实使用仍然有很大的差距,如不同数据文件中日期格式不同,有些可以使用函数转换(如把年_月_日格式,转换为日月年格式等),有些更特殊的则无法使用内嵌的操作命令转换(如用长整型数据表示的时间),导致数据无法入库;在某些情况下,需要把待入库的一些代码形式的数据,使用目的数据库中的字典数据表中的数据实现代码到内容的转换,并入库到目的数据库中的新数据表中。这些功能在特定工具中没有很好的实现,或者实现方式效率不高(如从代码到内容的转换并入到新数据表中的功能,一般采用与字典表关联的方式,在海量数据中,效率非常低下,可用性很差)。
技术实现思路
本专利技术的目的是为了解决数据入库通用性,以及在数据入库时需要对数据进行特殊化处理等问题,提供。 本专利技术的目的是按以下方式实现的,主要实现包括以下内容 1)算法(数据源变量与目的数据表字段之间的对应关系;可以是四则混合运算,也可以是一些数据的特殊处理)可配置的通用数据入库方法 2)对于使用数据库中数据字典表中数据进行数据转换并把转换后数据入库的方法; 3)对于待入库数据需进行特殊处理(如日期转换、字符串处理、判断取值等)才能入库的实现方法; 4)通用的入库方法,能够适应不同的数据库平台使用; 根据源数据和目的数据的对应关系配置使用,能够处理特殊数据; 可以是数据库或数据文件(数据库方式按照字段对应关系配置,或者导出为文件方式使用); 可以选择不同的源变量和目的数据表,功能重复使用。可以由用户按照自己的处理需要开发对应的函数或配置对应的取值功能在入库中使用; 基于标准SQL操作,数据库平台差异化在算法配置执行中消除,可以自动适应于各种数据库平台; 采用本方法的通用入库系统后,优异效果举例如下 1)在不同的数据库平台间移植与数据内容的复杂度无关,几乎做到零工作量,不需要对算法及程序做任何调整,从而节省了大量的实施时间; 2)新增数据处理的需求从其他方式的一周或几个工作日减少到几个小时,并且不需要具有编程能力的技术人员,仅作配置即可; 3)本专利技术适应性好,可以对数据按需要做特殊处理,也可以直接从数据库中读取字典数据产生入库所需数据。如果需要对数据做的特殊处理,现系统没有提供,可以自己编写处理函数,在算法中配置即可,通用性和扩展性强。 可以在所有数据源为文件的数据入库。 本专利技术解决数据(数据源)与字段(数据表)灵活对应,及入库脚本自动实现,可以根据不同的数据库平台做SQL语句的适当调整,所以可作为所有的数据库平台数据入库的方法。特别在海量数据处理及需要对入库数据做特殊处理的情况下有更好的应用体现。附图说明 图1是系统实现流程图。具体实施例方式参照附图对本专利技术的方法作以下详细的说明。 在数据处理过程中,主要包括从数据源获得数据、数据的分析入库和数据库中数据的处理 本专利技术主要关注数据在分析后的入库功能,在图l数据处理过程示意中,数据源对应一些数据文件(经过采集形成文件)或者直接使用数据库。待入库数据如果是文件则格式要求如下 变量名1 I变量名2 I变量名3 值1 I值2 I值3 …(如果待入库数据不符合以下的格式,则先转换为该格式并按要求的文件名称形成新的文件,再使用本方法描述的入库功能) 如果是数据表则存在数据文件名称等价于数据表名;数据表中的字段名称等价于数据文件中的变量名称。处理过程都相同,下面主要以文件方式做实现说明。在系统中使用了一个主程序,及一个配置信息。主程序实现对配置信息的解析及功能函数的调用,配置信息实现算法的描述。算法描述配置信息包括数据库表名/数据库表字段/数据文件名称/算法描述/是否唯一关键字/缺省值; 读入算法配置文件形成程序控制数据;字典数据算法配置信息包括算法句柄、数据字典表名称、条件字段、取值字段; 解析配置文件信息; 读入字典表的数据形成内存数据组; 读入待入库文件,以文件名从算法数据中查找对应的信息并进行计算; 按算法解析并计算得出数值,包括从内存数据组中取值、四则混合运算、调用外部功能函数; 按照算法生成入库字段对应的数值; 形成SQL语句命令并执行插入数据操作; 不成功则更新操作数据; 可配置算法管理 在系统实现中使用的算法配置信息格式为算法版本号;数据库表名;数据库表字段;数据块名称;算法描述;是否唯一关键字;缺省值,在程序调用时指定算法版本号和入库数据的目录,调用方式如下 Dataload(程序名称)-ruleset(算法版本号)l-datadir (待处理数据目录)/data/ul 參字典数据转换 代值算法还对应一个配置信息,这个配置信息描述数据从什么地方来、按照什么规则获取。数据的来源一般是数据库中的字典表,当然也可以扩展为静态的数据字典文件。配置信息描述如下 算法句柄;数据字典表名称;条件字段;取值字段 内容如 0BJECT_ID_2_NAME ;object ;ID ;NAME 在主程序中从这个配置信息获知从表object中取值,则把该表的数值读出来存到名称为0BJECT_ID_2_NAME的哈希内存数组中,下标为ID字段的内容,值为NAME字段的内容。当读取X0BJECTJD—2—NAME(id)后,按照数据文件中的变量值从数组中取得对应的值。实现形如 Select謹e From object Where id = : id ;的SQL语句的作用 參四则算法 四则混合运算的算法实现较为简单,也直接。只要把算法描述的语句转变为开发语言的控制信息执行就可获得。四则算法里描述使用的变量必须在数据文件中能够找到,否则无法计算得出数值。 參特殊处理 特殊算法是把文件中的某些变量通过一定的转换关系形成新的数值。由于不能穷举这些特殊情况,本专利技术仅提供方法,不做特殊算法的枚举说明。无论是何种开发语言(做数据处理的程序语言)都可以包含另外一个函数文件。在这个函数文件里可以根据不同的特殊要求,分别设置计算函数,变量作为带入参数,数值为返回参数。如BIN_2_0CT (id),这个函数可以实现从二进制到十进制的转换,那么在算法配置信息里就可以直接使用数据文件中的变量带入,从而通过这个函数转换出需要的数值本文档来自技高网
...

【技术保护点】
一种基于算法可配置的通用数据入库方法,其特征在于,数据处理入库过程中,数据源对应的经过采集形成的数据为待入库数据,待入库数据是文件则要求如下格式:变量名1|变量名2|变量名3值1|值2|值3…待入库数据不符合格式的,则先转换为该格式,并按要求的文件名称形成新的文件,再使用上述描述的入库功能;是数据表的则存在数据文件名称等价于数据表名;数据表中的字段名称等价于数据文件中的变量名称,处理过程是在系统中使用了一个主程序及一个配置信息,主程序实现对配置信息的解析及功能函数的调用,配置信息实现算法的描述,系统实现流程如下:算法描述配置信息:包括数据库表名、数据库表字段、数据文件名称、算法描述、是否唯一关键字、缺省值;读入算法配置文件形成程序控制数据;字典数据算法配置信息:包括算法句柄、数据字典表名称、条件字段、取值字段;解析配置文件信息;读入字典表的数据形成内存数据组;读入待入库文件,以文件名从算法数据中查找对应的信息并进行计算;按算法解析并计算得出数值,包括从内存数据组中取值、四则混合运算、调用外部功能函数;按照算法生成入库字段对应的数值;形成SQL语句命令并执行插入数据操作;不成功则更新操作数据。...

【技术特征摘要】

【专利技术属性】
技术研发人员:祝乃国
申请(专利权)人:浪潮通信信息系统有限公司
类型:发明
国别省市:88[中国|济南]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1