空间数据批量抽取转换加载方法及装置的制作方法

文档序号:6441949阅读:185来源:国知局
专利名称:空间数据批量抽取转换加载方法及装置的制作方法
技术领域
本发明涉及计算机领域,具体而言,涉及一种空间数据批量抽取转换加载方法及直O背景技术
数据抽取、转换、加载(Extract-Transform-Load,简称为ETL)的过程将分布的、 异构的数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、 集成,最后加载到目标数据源或数据仓库中,成为联机分析处理、数据挖掘的基础。空间数据的ETL过程则是将多源、异构的空间数据(包含坐标信息)抽取到临时中间层后进行清洗、转换、集成,最后加载到另一种格式的目标空间数据源中。
相对于属性数据,多源空间数据之间的差异更加突出,其数据组织、存储方式差异较大,具体体现在
空间数据在各种GIS软件的发展下逐渐形成各种版本、各种形态的数据存储格式。
空间数据有文件存储形式、数据库形式的差异。
空间数据在单个文件形式内部可以按照图层进行组织,在数据库内部也可以按照数据集、图层进行组织。
空间数据的图层类型复杂,其按照图元类型通常又可分为点、线、面、复合图层。点层只存储点对象,线层只存储线对象,面层只存储面对象,复合图层则所有类型对象均可存储。
由于以上特点,空间数据的ETL过程更加复杂。目前大部分空间数据ETL软件仅给出了单个空间数据ETL过程的解决方案,而没有对批量ETL过程给出解决方案。部分空间数据ETL软件支持的批量ETL过程只是预先由手工将若干个数据源加入到ETL流程中, 并设置若干个固定的目标数据源进行一一对应,此方式是静态的批量解决方案,而非动态、 实时的批量ETL解决方案。即无法在执行过程中,实时的从某个位置枚举数据源,并动态对应的目标数据源上。在对大批量空间数据备份、迁移过程中,静态的ETL批量解决方案耗时耗力,灵活性很差,人工成本很高,而且无法自动、定期执行。
相关技术中,对于空间数据的批量ETL过程支持通常是以静态的、手工的方式来实现的。一般过程是由ETL软件的操作人员首先设计好单个数据的ETL处理流程,然后通过工具界面批量增加若干源数据到ETL流程中,并对每一个源数据指定对应的目标数据, 每一个源数据与目标数据需要按照顺序一一对应。
设计好流程之后,操作人员通过工具界面开始执行ETL流程。在ETL流程的执行过程中,ETL软件会按照操作者设定的数据源顺序,依次执行每一个源数据、目标数据及其之间的处理流程。
因此,相关技术中实现批量ETL过程的技术,具有以下缺陷1、操作复杂,易出错且人工成本高。其体现在操作人员不但需要将源数据批量加入到ETL流程中,还需要为每一个源数据指定正确的目标数据,一旦对应错误则无法产生正确的结果;2、灵活性低,一旦数据源发生变化,操作者需要到源数据与目标数据列表中增加、删除或者修改数据源。发明内容
本发明提供了一种空间数据批量抽取转换加载方法及装置,以至少解决相关技术中空间数据批量ETL过程由手动操作,耗时耗力且灵活性不高的问题。
根据本发明的一方面,提供了一种空间数据批量抽取转换加载方法,包括从与源数据一一对应的源数据容器获取源数据的设置参数,其中源数据容器用于给源数据提供用于确定数据源的参数;根据源数据的设置参数,从与目标数据一一对应的目标数据容器获取目标数据的设置参数,其中目标数据容器用于给目标数据提供用于确定数据源的参数; 根据源数据的设置参数和目标数据的设置参数,执行批量ETL过程。
优选地,从与源数据一一对应的数据容器获取源数据的设置参数包括调用与源数据容器的源数据枚举接口,其中源数据枚举接口用于枚举获取源数据的设置参数;通过源数据枚举接口,枚举获取源数据的设置参数。
优选地,源数据容器的接口还包括以下至少之一参数设置接口,用于对源数据上的数据容器的设置参数进行设置;重置接口,用于在执行批量ETL过程之前,对源数据上的数据容器进行重置。
优选地,根据源数据的设置参数,从与目标数据一一对应的数据容器获取目标数据的设置参数包括调用目标数据容器的目标数据获取接口,其中目标数据获取接口用于根据源数据的设置参数以及目标数据容器的设置参数获取目标数据的设置参数;通过目标数据获取接口,根据源数据的设置参数以及目标数据容器的设置参数获取目标数据的设置参数。
优选地,在通过目标数据获取接口,根据源数据的设置参数以及目标数据容器的设置参数获取目标数据的设置参数之前,还包括将源数据的设置参数传递给目标数据容ο
优选地,将源数据的设置参数传递给目标数据容器包括将源数据的设置参数从源数据容器传递给与其一一对应的源数据;将源数据的设置参数从该源数据传递给目标数据容器。
优选地,在通过目标数据获取接口,根据源数据的设置参数以及目标数据容器的设置参数获取目标数据的设置参数之后,还包括将目标数据的设置参数传递给目标数据。
优选地,目标数据容器的接口还包括以下至少之一参数设置接口,用于对目标数据上的数据容器的设置参数进行设置;重置接口,用于在执行批量ETL过程之前,对目标数据上的数据容器进行重置。
优选地,在根据源数据的设置参数和目标数据的设置参数,执行批量ETL过程之后,还包括返回执行从源数据容器获取源数据的设置参数的操作,直至源数据容器枚举结束ο
根据本发明的另一方面,提供了一种空间数据批量抽取转换加载装置,包括第一获取模块,用于从与源数据一一对应的源数据容器获取源数据的设置参数,其中源数据容器用于给源数据提供用于确定数据源的参数;第二获取模块,用于根据源数据的设置参数,从与目标数据一一对应的目标数据容器获取目标数据的设置参数,其中目标数据容器用于给目标数据提供用于确定数据源的参数;执行模块,用于根据源数据的设置参数和目标数据的设置参数,执行批量ETL过程。
通过本发明,采用自动获取源数据的设置参数和目标数据的设置参数,然后根据该设置参数执行批量ETL过程的方法,解决了空间数据ETL过程由手动操作,耗时耗力且灵活性不高的问题,进而达到了灵活性高效果。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中
图1是根据本发明实施例的空间数据批量抽取转换加载方法的流程图2是根据本发明优选实施例的空间数据批量抽取转换加载方法的流程图3是根据本发明实施例的空间数据批量抽取转换加载装置的结构框图4是根据本发明优选实施例的空间数据批量抽取转换加载装置的结构框图一;
图5是根据本发明优选实施例的空间数据批量抽取转换加载装置的结构框图二 ;
图6是根据本发明优选实施例的空间数据批量抽取转换加载装置的结构框图三。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
本发明提供了一种空间数据批量抽取转换加载方法。图1是根据本发明实施例的空间数据批量抽取转换加载方法的流程图,包括如下的步骤S102至步骤S106。
步骤S102,从与源数据一一对应的源数据容器获取源数据的设置参数,其中源数据容器用于给源数据提供用于确定数据源的参数。
步骤S104,根据源数据的设置参数,从与目标数据一一对应的目标数据容器获取目标数据的设置参数,其中目标数据容器用于给目标数据提供用于确定数据源的参数。
步骤S106,根据源数据的设置参数和目标数据的设置参数,执行批量ETL过程。
相关技术中,空间数据ETL过程是通过手工将若干个数据源加入到ETL流程中,并设置若干个固定的目标数据源进行一一对应,此方式耗时耗力、灵活性不高。本发明实施例中,通过自动获取源数据的设置参数和目标数据的设置参数,然后根据该设置参数执行批量ETL过程,其灵活性很高,尤其在大批量空间数据备份、迁移过程中可发挥很好的作用。
由此可见,本发明中的关键是如何获取源数据的设置参数和目标数据的设置参数,下面对其进行详细描述。
1、获取源数据的设置参数
为了获取源数据的设置参数,可以调用与源数据容器的源数据枚举接口,其中源数据枚举接口用于枚举获取源数据的设置参数;通过源数据枚举接口,枚举获取源数据的设置参数。本优选实施例中,通过源数据枚举接口枚举获取源数据的设置参数,其实现方式简便、可靠。
进而,源数据容器的接口还包括以下至少之一参数设置接口,用于对源数据上的数据容器的设置参数进行设置;重置接口,用于在执行批量ETL过程之前,对源数据上的数据容器进行重置。
2、获取目标数据的设置参数
为了获取目标数据的设置参数,可以调用目标数据容器的目标数据获取接口,其中目标数据获取接口用于根据源数据的设置参数以及目标容器的设置参数获取目标数据的设置参数;通过目标数据获取接口,根据源数据的设置参数以及目标容器的设置参数获取目标数据的设置参数。本优选实施例中,通过目标数据获取接口枚举获取目标数据的设置参数,其实现方式简便、可靠。
进而,在通过目标数据获取接口,根据源数据的设置参数以及目标数据容器的设置参数获取目标数据的设置参数之前,还包括将源数据的设置参数传递给目标数据容器。 其中,该传递方式可以包括将源数据的设置参数从源数据容器传递给与其一一对应的源数据;将源数据的设置参数从该源数据传递给目标数据容器。
优选地,在通过目标数据获取接口,根据源数据的设置参数以及目标容器的设置参数获取目标数据的设置参数之后,还包括将目标数据的设置参数传递给目标数据。
优选地,目标数据容器的接口还包括以下至少之一参数设置接口,用于对目标数据上的数据容器的设置参数进行设置;重置接口,用于在执行批量ETL过程之前,对目标数据上的数据容器进行重置。
更进一步地,为了更好地实现空间数据自动批量抽取转换加载,在根据源数据的设置参数和目标数据的设置参数,执行批量ETL过程之后,还包括返回执行从源数据容器获取源数据的设置参数的操作,直至源数据容器枚举结束。本优选实施例中,通过反复执行自动获取源数据的设置参数和目标数据的设置参数,然后根据该设置参数执行批量ETL过程,可以动态、实时的批量ETL过程,在大批量空间数据备份、迁移过程中发挥很好的作用。
下面将结合实例对本发明实施例的实现过程进行详细描述。
图2是根据本发明优选实施例的空间数据批量抽取转换加载方法的流程图,包括如下的步骤S202至步骤S218。
步骤S202,开始执行批量ETL过程。
步骤S204,从源数据关联的数据容器获得源数据设置参数。
步骤S206,判断获取是否成功,如果成功则执行步骤S208,如果失败则执行步骤 S210。
步骤S208,设置参数传递给源数据,执行步骤S212。
步骤S210,结束执行过程。
步骤S212,设置参数传递给目标数据关联的数据容器。
步骤S214,从目标数据关联的数据容器获得目标数据设置参数。
步骤S216,设置参数传递给目标数据。
步骤S218,执行ETL过程。
在具体实现上,由于各种空间数据源存储、数据组织方式不同,需要针对每一种数据源提供一个对应的数据容器实现。但是所有数据容器的实现都应遵循相同的接口规范, 本发明给出了实现数据容器时应包含的主要接口
参数设置接口(ktParameter/Getfarameter)用于对数据容器设置其所需的参数,以便能够正确枚举数据源。例如批量转换文件格式的数据源时,通常参数中应包括一个本地目录,用于枚举文件。
重置接口(Reset)在每次批量执行ETL过程前,需要对数据容器进行重置,保证其处于正确的初始状态,以便从第一个数据源开始枚举。
源数据枚举接口(GetNext)源数据上的数据容器会被调用此方法,通过不断调用此接口,可以获得枚举出来的源数据设置参数。
目标数据获取接口(GetTargetDataParam):目标数据上的数据容器会被调用此方法,此方法需要传入源数据设置参数,并据此得到目标数据上的数据源设置参数并返回。
需要说明的是,对于以上接口,其中比较难以实现的是最后一个接口。由于空间数据格式的多样性,对于一种数据格式的数据容器,如何在不知道源数据格式的情况下,根据传入的源数据设置参数,以及自身的设置参数,来确定目标数据上的数据源设置参数。
为了解决此问题,需要对数据容器枚举出来的源数据设置参数进行规范化。经过对各种常用空间数据格式的归纳,本发明提出,对于数据容器枚举出来的任何空间数据格式的源数据的设置参数(即GetNext方法返回的参数)应规范为由以下若干参数构成
文件类型数据源的相对路径此相对路径是枚举到的文件路径相对于枚举根目录的相对路径,例如源数据是从“C: \Data”目录下进行枚举得到,则对于“C: \Data\DataSetl\ Vector\A. shp”数据源,其返回参数应包含一个相对路径参数“Dat必etl\VeCtor\”。当目标数据源也是文件类型数据源时,此参数可以确定目标数据源的具体子目录存放位置。
文件类型数据源的文件名文件名称通常可以用于目标数据源的数据表名。
数据表名或者图层名通常可以用于目标数据源的数据表名。
数据集名称用于给出数据源所属的分组名称。
这样,各类数据源实现数据容器的GetTargetDataParam方法时,可以根据各自特点,按照优先级从上述参数中选取,并结合自身设置参数,从而确定目标数据上的数据源设置参数。
基于此方案的优点如下
可以实现执行期间动态、实时的批量ETL过程,即具体转换的数据源是在执行期间枚举得到,而不是由手工预先批量增加的。因此大大降低了人工成本,在大批量空间数据备份、迁移过程中可发挥很好的作用。
灵活性高,由于其执行时才确定数据源信息,当在数据源发生变化时,无需修改整个ETL过程,大大降低了维护的成本。
对空间数据格式适应性强,可实现文件类型到文件类型、文件类型到数据库类型、 数据库类型到数据库类型等各种数据的批量ETL过程。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例提供了一种空间数据批量抽取转换加载装置,该装置可以用于实现上述空间数据批量抽取转换加载方法。图3是根据本发明实施例的空间数据批量抽取转换加载装置的结构框图,包括第一获取模块32、第二获取模块34和执行模块36。下面对其结构进行详细描述。
第一获取模块32,用于从与源数据一一对应的源数据容器获取源数据的设置参数,其中源数据容器用于给源数据提供用于确定数据源的参数;第二获取模块34,连接至第一获取模块32,用于根据源数据的设置参数,从与目标数据一一对应的目标数据容器获取目标数据的设置参数,其中目标数据容器用于给目标数据提供用于确定数据源的参数; 执行模块36,连接至第一获取模块32和第二获取模块34,用于根据第一获取模块32获取的源数据的设置参数和第二获取模块34获取的目标数据的设置参数,执行批量ETL过程。
图4是根据本发明优选实施例的空间数据批量抽取转换加载装置的结构框图一, 如图4所示,第一获取模块32包括第一调用模块322,用于调用与源数据容器的源数据枚举接口,其中源数据枚举接口用于枚举获取源数据的设置参数;第一枚举模块324,连接至第一调用模块322,用于通过第一调用模块322调用的源数据枚举接口,枚举获取源数据的设置参数。
图5是根据本发明优选实施例的空间数据批量抽取转换加载装置的结构框图二, 如图5所示,第一获取模块32包括第二调用模块326,用于调用目标数据容器的目标数据获取接口,其中目标数据获取接口用于根据源数据的设置参数,枚举获取目标数据的设置参数;第二枚举模块328,连接至第二调用模块326,用于通过第二调用模块3 调用的目标数据获取接口,根据源数据的设置参数,枚举获取目标数据的设置参数。
图6是根据本发明优选实施例的空间数据批量抽取转换加载装置的结构框图三, 如图6所示,上述装置还包括返回模块38,用于返回执行从源数据容器获取源数据的设置参数的操作,直至源数据容器枚举结束。
需要说明的是,装置实施例中描述的空间数据批量抽取转换加载装置对应于上述的方法实施例,其具体的实现过程在方法实施例中已经进行过详细说明,在此不再赘述。
综上所述,根据本发明的上述实施例,提供了一种空间数据批量抽取转换加载方法及装置。通过本发明,采用自动获取源数据的设置参数和目标数据的设置参数,然后根据该设置参数执行批量ETL过程的方法,解决了空间数据ETL过程由手动操作,耗时耗力且灵活性不高的问题,进而达到了灵活性高效果。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种空间数据批量抽取转换加载方法,其特征在于包括从与源数据一一对应的源数据容器获取所述源数据的设置参数,其中所述源数据容器用于给所述源数据提供用于确定数据源的参数;根据所述源数据的设置参数,从与目标数据一一对应的目标数据容器获取所述目标数据的设置参数,其中所述目标数据容器用于给所述目标数据提供用于确定数据源的参数;根据所述源数据的设置参数和所述目标数据的设置参数,执行批量抽取转换加载ETL 过程。
2.根据权利要求1所述的方法,其特征在于,从与源数据一一对应的数据容器获取所述源数据的设置参数包括调用与所述源数据容器的源数据枚举接口,其中所述源数据枚举接口用于枚举获取所述源数据的设置参数;通过所述源数据枚举接口,枚举获取所述源数据的设置参数。
3.根据权利要求2所述的方法,其特征在于,所述源数据容器的接口还包括以下至少之一参数设置接口,用于对所述源数据上的数据容器的设置参数进行设置; 重置接口,用于在执行批量ETL过程之前,对所述源数据上的数据容器进行重置。
4.根据权利要求1所述的方法,其特征在于,根据所述源数据的设置参数,从与目标数据一一对应的数据容器获取所述目标数据的设置参数包括调用所述目标数据容器的目标数据获取接口,其中所述目标数据获取接口用于根据所述源数据的设置参数以及所述目标数据容器的枚举参数获取所述目标数据的设置参数;通过所述目标数据获取接口,根据所述源数据的设置参数以及所述目标数据容器的枚举参数获取所述目标数据的设置参数。
5.根据权利要求4所述的方法,其特征在于,在通过所述目标数据获取接口,根据所述源数据的设置参数以及所述目标数据容器的枚举参数获取所述目标数据的设置参数之前, 还包括将所述源数据的设置参数传递给所述目标数据容器。
6.根据权利要求5所述的方法,其特征在于,将所述源数据的设置参数传递给所述目标数据容器包括将所述源数据的设置参数从所述源数据容器传递给与其一一对应的源数据; 将所述源数据的设置参数从该源数据传递给所述目标数据容器。
7.根据权利要求4所述的方法,其特征在于,在通过所述目标数据获取接口,根据所述源数据的设置参数以及所述目标数据容器的枚举参数获取所述目标数据的设置参数之后, 还包括将所述目标数据的设置参数传递给所述目标数据。
8.根据权利要求4至7中任一项所述的方法,其特征在于,所述目标数据容器的接口还包括以下至少之一参数设置接口,用于对所述目标数据上的数据容器的设置参数进行设置; 重置接口,用于在执行批量ETL过程之前,对所述目标数据上的数据容器进行重置。
9.根据权利要求1至7中任一项所述的方法,其特征在于,在根据所述源数据的设置参数和所述目标数据的设置参数,执行批量ETL过程之后,还包括返回执行从所述源数据容器获取所述源数据的设置参数的操作,直至所述源数据容器枚举结束。
10. 一种空间数据批量抽取转换加载装置,其特征在于包括第一获取模块,用于从与源数据一一对应的源数据容器获取所述源数据的设置参数, 其中所述源数据容器用于给所述源数据提供用于确定数据源的参数;第二获取模块,用于根据所述源数据的设置参数,从与目标数据一一对应的目标数据容器获取所述目标数据的设置参数,其中所述目标数据容器用于给所述目标数据提供用于确定数据源的参数;执行模块,用于根据所述源数据的设置参数和所述目标数据的设置参数,执行批量抽取转换加载ETL过程。
全文摘要
本发明提供了一种空间数据批量抽取转换加载方法及装置,该方法包括从与源数据一一对应的源数据容器获取源数据的设置参数,其中源数据容器用于给源数据提供用于确定数据源的参数;根据源数据的设置参数,从与目标数据一一对应的目标数据容器获取目标数据的设置参数,其中目标数据容器用于给目标数据提供用于确定数据源的参数;根据源数据的设置参数和目标数据的设置参数,执行批量ETL过程。本发明通过自动获取源数据的设置参数和目标数据的设置参数,然后根据该设置参数执行批量ETL过程,其灵活性很高,尤其在大批量空间数据备份、迁移过程中可发挥很好的作用。
文档编号G06F17/30GK102521370SQ201110424768
公开日2012年6月27日 申请日期2011年12月16日 优先权日2011年12月16日
发明者余兵, 周大良, 李欣, 蔡金华, 赵一民 申请人:方正国际软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1