专利名称:一种数据自动转换与存储的方法及系统的制作方法
技术领域:
本发明涉及工业信息化领域,特别涉及一种数据自动转换与存储的方法及系统。
背景技术:
目前工业企业一般都是实施了多套计算机系统,包括生产监控的实时数据库系统、能源计量系统、完成特定功能的业务系统软件,以及办公自动化系统、财务系统、ERP等等,这些系统通常都是在不同时期投资、由不同施工单位、采用不同技术完成的,所采用的数据存储形式、数据的组织结构均存在差异,而且开放出来的数据接口也各不相同,无法实现数据的无障碍交换,逐渐造成了运行维护难、信息沟通难、改造升级投入大等问题。同时这些系统所形成的大量的、珍贵的生产数据,以各种结构独立存储在各个系统中,难于统一分析,难于形成对企业生产决策有效的辅助信息,所以目前企业面临的不是没有数据进行分析,而且数据太多、太分散无法进行统一、有效分析。本发明的目标就是要解决这类问题,为企业提供生产数据自动转换与存储的方法及系统,自动提取各个系统的数据,进行数据转换和存储,形成统一格式的企业生产信息库,为企业生产数据分析、经营决策提供全面、准确的数据支持。
发明内容
本发明提供的一种数据自动转换与存储的方法及系统,能够将工业企业现有各种业务系统的异构数据进行统一集成,从而提供及时、全面、可靠的数据基础。本发明提供的数据自动转换与存储系统包括:数据提取器,用于从不同的数据源中提取原始数据,传递给数据转换器;数据转换器,将从不同的数据源提取的原始数据转换成特定的数据格式;数据缓存器,与数据转换器相连,将数据转换器转换得到的数据结果组织成统一的数据结构,以数据表为单位来组织数据项,数据表包含维度、数据项和数据记录,维度用于描述和标识数据记录,数据记录中记录了具体的数据项值;数据存储器,用于将数据缓存器中以数据表为单位组织的数据与关系型数据库中的物理表进行映射,最终将缓存数据写入对应的数据库表中,完成数据的存储;执行调度器,根据系统配置文件对各个过程进行调度和控制。本发明还提供一种数据自动转换与存储方法,该方法包括:步骤1,从不同的数据源中提取原始数据,传递给数据转换器;步骤2,将从不同的数据源提取的原始数据转换成特定的数据格式;步骤3,将数据转换器转换得到的数据结果组织成统一的数据结构,以数据表为单位来组织数据项,数据表包含维度、数据项和数据记录,维度用于描述和标识数据记录,数据记录中记录了具体的数据项值;步骤4,判断目标数据库中是否存在对应所述数据表的名称的数据库表,如果不存在则创建该名称的数据库表,然后判断对应维度名称的表字段是否存在,如果不存在则创建该维度名称的表字段,接下来判断对应数据项名称的表字段是否存在,如果不存在则创建该数据项名称的表字段,最后判断对应维度值组合的数据记录是否已存在,如果存在,则生成数据记录更新命令,如果不存在,则生成数据记录插入命令,命令执行后就完成了数据的存储。本发明的方案提出了数据提取接口库及数据转换算法库,提出了数据转换算法的在线编译环境和插件集成环境,从而使系统具备了良好的灵活性和适应能力。扩展数据提取接口库,就能够接入更多的数据源;扩展数据转换算法,就能够满足更多的数据转换需求。另外本发明设计了统一的数据存储结构,并且通过定义数据分析维度,结构化存储数据信息,为信息组织、分析提供了强大支持。本发明还设计了功能完备的执行调度器,并且具有完善的开放性,支持各类信息的用户配置,包括各类执行周期的配置、数据源的配置、数据提取的配置、数据转换方法的配置、数据存储格式配置、数据存储的配置等等。
图1是本发明数据自动转换与存储方法的基本流程图;图2是本发明数据自动转换与存储系统的结构框图;图3是本发明数据自动转换与存储系统中数据转换器的结构框图;图4是本发明数据缓存器中数据表结构示意图;图5是本发明数据存储器执行流程图;图6是本发明执行调度器调度流程图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。本发明提出一种数据自动转换与存储的方法及系统,解决例如工业企业各种生产执行系统、信息化系统所产生的各种异构数据的统一集成问题。图1为本发明数据自动转换与存储方法的基本流程图。参照图1,本发明的方法包括数据提取S1、数据转换S2和数据存储S3三个步骤。在步骤SI进行数据提取,该步骤负责从数据源提取原始业务数据,利用一个数据提取接口库来实现多种数据提取方式,针对不同数据源选用合适的数据提取方式,快速高效的实现数据提取。针对实时数据库系统,通过集成不同实时数据库产品的API接口,只需配置对应的数据点位号即可完成数据提取。主要包括以下几种方式的提取:1)针对以通用关系数据库作为数据存储的系统,提供标准SQL数据查询支持,可以编写SQL语句或者执行存储过程进行数据的提取。2)针对以数据文件并公开数据文件结构的系统,通过数据文件接口进行数据提取。3)针对不公开数据存储结构,但是提供数据通信接口的系统,可以编写接口适配器,再以插件形式集成到系统中,完成数据提取。在步骤S2,在数据提取之后执行数据转换,数据从不同的数据源提取到系统中后,经过数据转换,将提取到的业务系统的操作数据、原始数据,转换为适合进行信息分析的数据结构。数据转换过程集成了丰富的数据转换算法实现方式,其组成结构如图3所示,包含一个数据转换算法库,可以预置大量通用的、一般性的、基础性的数据转换算法,实现一般性的数据转换需求。在数据转换过程中,还提供一个高级语言脚本环境,用户可以直接编写数据转换逻辑,系统自动编译自动执行,完成定制的数据转换,并且用户可以根据需要随时在线修改脚本,系统自动重新编译、自动执行新的算法脚本。数据转换过程还提供了一个插件集成环境,数据转换算法可以以插件的形式集成到系统中进行数据转换。这个插件集成环境,定义了插件实现方式,包括定义了插件的三个接口,分别是获取转换算法的接口、获取转换算法输入参数和输出参数定义的接口、执行算法并返回计算结果的接口,还定义了转换算法数据输入和结果返回的数据结构。用户只要遵照这一实现方式,就可以将复杂的数据转换逻辑编写成算法插件,放到系统中,就可以动态配置和应用这些算法进行数据转换。在步骤S3,在数据转换之后执行数据存储,负责将数据转换结果存储到目标数据库中,为提高系统数据处理能力和系统性能,在执行存储之前,先按照统一格式对转换后的数据进行缓存,同一张数据表的数据全部完成转换后,一次性将这张表的数据进行存储,批量执行,避免了单个数据单次执行,提高系统执行效率和性能。数据存储过程完成数据的集中、统一存储,并且完成数据存储前的各种逻辑判断处理,这些逻辑包括但不限于:判断数据库表是否存在,不存在则自动创建;判断数据项是否存在,不存在则自动创建相应数据格式的数据项;判断目标维度是否存在,不存在则自动创建目标维度;判断目标维度值(多维度需组合判断)的数据项是否存在,不存在则插入数据,已存在则更新数据。本发明的方法还通过定时器来支持定义数据转换存储的不同时间周期,在满足执行周期时,能够自动执行数据提取、数据转换、数据缓存、数据存储过程,完成本周期的数据提取、转换、存储一系列任务,再进入下一周期的判断,周而复始,随着时间的推移形成完备的基础信息库。图2为本发明数据自动转换与存储的系统结构图。参照图2,该系统包括:数据提取接口库201、数据提取器202、数据转换器203、数据缓存器204、数据存储器205和执行调度器206。所述数据提取接口库201直接与数据源相连,数据源可以是各种公开了数据存储结构、或者具备数据通信接口的计算机软硬件系统。数据提取器202通过调用数据提取接口库201从数据源中提取到原始数据,传递给数据转换器203,由数据转换器203进行数据转换。数据提取器202能够利用一个数据提取接口库201来实现多种数据提取方式,针对不同数据源选用合适的数据提取方式,快速高效的实现数据提取。主要包括:1)针对实时数据库系统,通过集成不同实时数据库产品的API接口,只需配置对应的数据点位号即可完成数据提取。2)针对以通用关系数据库作为数据存储的系统,提供标准SQL数据查询支持,可以编写SQL语句或者执行存储过程进行数据的提取。3)针对使用数据文件来存储数据,并且公开了数据文件结构的系统,通过数据文件接口进行数据提取。4)针对不公开数据存储结构,但是提供数据通信接口的系统,可以编写接口适配器,再以插件形式集成到系统中,完成数据提取。所述数据转换器203通过转换算法进行数据转换,其结构如图3所示,由通用数据转换算法提供装置、高级语言在线编译环境提供装置和数据转换算法插件集成环境提供装置三部分构成。通用数据转换算法提供装置包含了系统预定义的各种算法,能够完成一般性和比较常见的数据转换需求,比如从压力表历史压力数据记录,转换得到某一时间段内的最大压力和最小压力;比如从产品的外运称重记录数据,转换得到某一时段内某一产品的外运量,等等,而且随着产品的不断应用和成熟,可以对用户数据转换需求进行总结和归纳,形成通用数据转换算法,不断充实到通用数据转换算法提供装置中。如果通用数据转换算法不能满足用户的数据转换要求,用户可以直接在编译环境中在线编写数据转换脚本,该环境支持高级语言(C#)语法,脚本编写完成后,编译环境自动编译成可执行代码并缓存,供数据转换器调用进行数据转换。此方式最大的特点是支持在线修改脚本,数据转换需求的改变,可以随时通过在线修改脚本来实现,快捷高效。缺点是需要在线编译而花费编译时间,效率相比预编译好的动态库要低。所以如果转换算法复杂需要花费较长编译时间,或者为了获得最佳执行效率,可以采用离线编译的算法插件方式。算法插件方式由系统的数据转换算法插件集成环境来实现,支持离线编写、编译和动态加载算法插件。算法实现人员可以选用熟悉的语言(支持C/C++/C#三种语言),按照插件环境规定的插件接口定义进行插件实现,将编写和编译好的插件(dll文件)放到系统转换算法插件目录下,插件环境就可以动态加载该插件,供数据转换器调用完成数据转换。所述数据缓存器204与数据转换器203相连,数据转换器203将转换得到的数据结果传递给数据缓存器204,这时的数据结果已经具有了一致的数据属性,包括:数据项名称(如硫酸产量)、维度(如时间、车间、班组等等)、数据项值(如字符串、整形、浮点型等的数据值),再由数据缓存器204将数据组织成统一的数据结构,以数据表为单位来组织数据项,数据表包含维度、数据项和数据记录,维度(如时间、车间、班组等等)用于描述和标识数据记录,数据记录中记录了具体的数据项值。同一数据表中的数据项共用一组维度(可以是一个或多个,但至少要有一个),不同的维度值组合来标识不同的数据记录,图4示意了一个数据表的数据结构。数据完成转换和缓存后,最后一步就是进行数据库存储,由数据存储器205完成,其执行过程是以数据表为组织单位,批量一次存储表内所有数据项,按照图4所示的数据表结构,进行数据库物理表的比照来执行相应操作,其执行流程如图5所示,数据存储器首先判断目标数据库中是否存在对应数据表名称的数据库表,如果不存在则创建该名称的数据库表,然后判断对应维度名称的表字段是否存在,如果不存在则创建该维度名称的表字段,接下来判断对应数据项名称的表字段是否存在,如果不存在则创建该数据项名称的表字段。最后判断对应维度值组合的数据记录是否已存在,如果存在,则生成数据记录更新命令,如果不存在,则生成数据记录插入命令。命令执行后就完成了数据的存储。数据的提取、转换、存储需要按照工业现场的需求,按照设定的固定周期自动执行,并且有不同类型的周期,如按照班、日、月,或者小时等等,从而形成不同周期的生产信息。周期性自动调度由执行调度器206完成,不同的周期类型,按照周期由短至长依次执行,比如所配置的班周期和日周期同时到达执行时刻,则优先执行班周期,完成后再执行日周期,这样日周期执行过程中就可以直接利用班周期中得到的数据,从而减少从数据源提取原始数据的次数及数量,提高执行效率。所述执行调度器206除完成执行周期的实时判断,还需要在执行过程中,调度系统各个部分协调工作,共同完成数据转换与存储的一系列任务,在一个执行周期中,执行调度器的调度流程如图6所示,当某个数据转换周期到达时,首先判断该周期类型下是否有数据表需要转储,如果没有则返回到转换周期的实时判断;如果有数据表需要转储,则扫描该表下是否配置了数据项,如果没有配置数据项,则判断下一个数据表;如果有数据项,则取出第一个数据项的配置信息,包括数据提取配置、数据转换配置、数据存储配置等,按照数据提取配置,执行相应的数据提取接口提取原始数据,按照数据转换配置,执行相应的数据转换算法进行数据转换,并将数据转换结果存入数据缓存器,然后执行下一个数据项,直到完成数据表内的所有数据项,启动数据存储器,将当前数据表所有数据存储到数据库中,然后继续执行下一个数据表,直到完成当前周期类型的所有表。本发明的方案基于面向对象理论,对数据集成中的各个环节进行规划,形成了数据提取器、数据转换器、数据缓存器、数据存储器以及执行调度器五大组成单元,各单元分工明确执行顺畅。数据提取器完成数据提取,实现异构数据的集成;数据转换器负责数据格式转换,满足各种数据统计、数据汇总的客户需求;数据缓存器负责数据格式统一和高速缓存,实现海量数据的高速处理要求;数据存储器完成数据的最终存储,构建起企业基础信息数据仓库。提出了数据提取接口库及数据转换算法库,提出了数据转换算法的在线编译环境和插件集成环境,从而使系统具备了良好的灵活性和适应能力。扩展数据提取接口库,就能够接入更多的数据源;扩展数据转换算法,就能够满足更多的数据转换需求。设计了统一的数据存储结构,并且通过定义数据分析维度,结构化存储数据信息,为信息组织、分析提供了强大支持。设计了功能完备的执行调度器,并且具有完善的开放性,支持各类信息的用户配置,包括各类执行周期的配置、数据源的配置、数据提取的配置、数据转换方法的配置、数据存储格式配置、数据存储的配置等等。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种数据自动转换与存储系统,该系统包括: 数据提取器,用于从不同的数据源中提取原始数据,传递给数据转换器; 数据转换器,将从不同的数据源提取的原始数据转换成特定的数据格式; 数据缓存器,与数据转换器相连,将数据转换器转换得到的数据结果组织成统一的数据结构,以数据表为单位来组织数据项,数据表包含维度、数据项和数据记录,维度用于描述和标识数据记录,数据记录中记录了具体的数据项值; 数据存储器,用于将数据缓存器中以数据表为单位组织的数据与关系型数据库中的物理表进行映射,最终将缓存数据写入对应的数据库表中,完成数据的存储; 执行调度器,根据系统配置文件对各个过程进行调度和控制。
2.按权利要求1所述的系统,其特征在于,数据提取器前端有一个数据提取接口库,支持多种数据提取方式,并预置了多种通用提取接口,并且具有良好的开放性,支持新接口动态库的动态接入。
3.按权利要求1所述的系统,其特征在于,数据提取器根据以下方式调用接口库中的接口进行数据的提取:针对实时数据库系统,通过集成不同实时数据库的API接口,配置对应的数据点位号来完成数据提取;针对以通用关系数据库作为数据存储的系统,提供标准SQL数据查询支持,通过编写SQL语句或者执行存储过程进行数据的提取;针对以数据文件并公开数据文件结构的系统,通过数据文件接口进行数据提取;针对不公开数据存储结构,但是提供数据通信接口的系统,通过编写接口适配器,再以插件形式集成到系统中来完成数据提取。
4.按权利要求1所述的系统,其特征在于,所述数据转换器进一步包括: 通用数据转换算法提供装置,其包含有该系统预定义的各种算法,对适用这些算法的数据进行转换处理; 高级语言在线编译环境提供装置,用于直接在编译环境中在线编写数据转换脚本,脚本编写完成后,编译器自动编译成可执行代码并缓存,供数据转换器调用进行数据转换; 数据转换算法插件集成环境提供装置,用于独立编写算法插件,按照插件环境规定的插件接口定义进行插件实现,将编写好的插件放到系统转换算法插件目录下,插件环境动态加载该插件,供数据转换器调用完成数据转换。
5.按权利要求1所述的系统,其特征在于,该系统进一步包括执行调度器,由其调度和控制系统的运行,他的执行依据是系统配置文件,根据转换周期配置判断是否启动一次转换存储,在一个转换存储周期中,依据数据提取配置进行数据提取,依据数据转换配置执行数据转换,依据数据存储配置完成数据存储。
6.一种数据自动转换与存储方法,该方法包括: 步骤1,从不同的数据源中提取原始数据,传递给数据转换器; 步骤2,将从不同的数据源提取的原始数据转换成特定的数据格式; 步骤3,将数据转换器转换得到的数据结果组织成统一的数据结构,以数据表为单位来组织数据项,数据表包含维度、数据项和数据记录,维度用于描述和标识数据记录,数据记录中记录了具体的数据项值; 步骤4,判断目标数据库中是否存在对应所述数据表的名称的数据库表,如果不存在则创建该名称的数据库表,然后判断对应维度名称的表字段是否存在,如果不存在则创建该维度名称的表字段,接下来判断对应数据项名称的表字段是否存在,如果不存在则创建该数据项名称的表字段,最后判断对应维度值组合的数据记录是否已存在,如果存在,则生成数据记录更新命令,如果不存在,则生成数据记录插入命令,命令执行后就完成了数据的存储。
7.按权利要求6所述的方法,其特征在于,在步骤I,针对实时数据库系统,通过集成不同实时数据库产品的API接口,配置对应的数据点位号来完成数据提取;针对以通用关系数据库作为数据存储的系统,提供标准SQL数据查询支持,通过编写SQL语句或者执行存储过程进行数据的提取;针对以数据文件并公开数据文件结构的系统,通过数据文件接口进行数据提取;针对不公开数据存储结构,但是提供数据通信接口的系统,通过编写接口适配器,再以插件形式集成到系统中来完成数据提取。
8.按权利要求6所述的方法,其特征在于,在步骤2包括以下三种数据转换方式:利用系统预定义的算法对适用这些算法的数据进行转换处理;直接在编译环境中在线编写数据转换脚本,脚本编写完成后,编译器自动编译成可执行代码并缓存,供数据转换器调用进行数据转换;独立编写算法插件,按照插件环境规定的插件接口定义进行插件实现,将编写好的插件放到系统转换算法插件目录下,插件环境动态加载该插件,供数据转换器调用完成数据转换。
9.按权利要求8所述的方法,其特征在于,该方法进一步包括一个周期性执行方法:由执行调度器完成执行周期判断,在一个执行周期中,首先判断该周期类型下是否有数据表需要转储,如果没有则返回到转换周期的实时判断;如果有数据表需要转储,则扫描该表下是否配置了数据项,如果没有配置数据项,则判断下一个数据表;如果有数据项,则取出第一个数据项的配置信息,按照数据提取配置,执行相应的数据提取接口提取原始数据,按照数据转换配置,执行相应的数据转换算法进行数据转换,并将数据转换结果存入数据缓存器,然后执行下一个数据项,直到完成数据表内的所有数据项,启动数据存储器,将当前数据表所有数据存储到数 据库中,然后继续执行下一个数据表,直到完成当前周期类型的所有表。
全文摘要
本发明公开了一种数据自动转换与存储系统,包括数据提取器,用于从不同的数据源中提取原始数据,传递给数据转换器;数据转换器,将从不同的数据源提取的原始数据转换成特定的数据格式;数据缓存器,与数据转换器相连,将数据转换器转换得到的数据结果组织成统一的数据结构;数据存储器,用于将缓存器中的数据存储到目标数据库中。本发明开放了各种系统信息配置,支持按照现场需求进行系统定制,从而能够完成企业现有各种业务系统的异构数据集成,有效整合数据。
文档编号G06F17/30GK103092980SQ20131003860
公开日2013年5月8日 申请日期2013年1月31日 优先权日2013年1月31日
发明者林红权, 辛若家, 马增良, 牛鹏飞, 田晓娟 申请人:中国科学院自动化研究所, 北京三博中自科技有限公司