发明内容
本发明的主要目的在于提供一种在目标服务器构建ETL系统的处理方法及装置,以解决现有技术中在保证源服务器的ETL正常运行的情况下,无法在目标服务器中构建ETL系统的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种在目标服务器构建ETL系统的处理方法。
根据本发明的在目标服务器构建ETL系统的处理方法包括:该ETL系统包括:临时数据库、源数据库和数据仓库,临时数据库为用于临时存储数据的数据库,源数据库为用于存储原始数据的数据库,数据仓库用于存储经过ETL处理后的数据,临时数据库、源数据库和数据仓库均存储在源服务器中,该方法包括:将源数据库和数据仓库分别从源服务器同步至目标服务器;在源服务器中获取临时数据库中临时表的脚本代码,其中,临时数据库包括临时表,脚本代码为用于创建临时表的代码;以及根据脚本代码在目标服务器上创建目标临时数据库。
进一步地,根据脚本代码在目标服务器上创建目标临时数据库包括:在目标服务器上创建目标数据库;以及在目标数据库中执行脚本代码,得到临时表;根据临时表构成目标临时数据库。
进一步地,将源数据库和数据仓库分别从源服务器同步至目标服务器之前,该方法还包括:确定源数据库和数据仓库;以及分别对源数据库和数据仓库进行配置,得到配置源数据库和配置数据仓库,其中,配置源数据库是用于将源数据库预先进行配置执行同步操作后的数据库,配置数据仓库是用于将数据仓库预先进行配置执行同步操作后的数据库。
进一步地,分别对源数据库和数据仓库进行配置包括:分别获取源数据库和数据仓库中已有的配置指令,其中,配置指令为用于指示对源数据库和数据仓库进行预先配置执行同步操作的指令;以及通过配置指令分别对源数据库和数据仓库进行配置,或者,接收外部输入的配置代码,其中,配置代码为用于对源数据库和数据仓库进行预先配置执行同步操作的代码;以及根据配置代码生成的相应配置指令分别对源数据库和数据仓库进行配置。
进一步地,将源数据库和数据仓库分别从源服务器同步至目标服务器包括:分别针对源数据库和数据仓库获取第一预设代理程序,其中,第一预设代理程序为用于生成数据库快照的程序;根据第一预设代理程序分别生成与源数据库相应的数据库快照和数据仓库相应的数据仓库快照;分别针对源数据库和数据仓库获取第二预设代理程序,其中,第二预设代理程序为用于同步源数据库相应的数据库快照和数据仓库相应的数据仓库快照;以及根据第二预设的代理程序分别将源数据库相应的数据库快照和数据仓库相应的数据仓库快照同步至目标服务器。
为了实现上述目的,根据本发明的另一方面,提供了一种在目标服务器构建ETL系统的处理装置。
根据本发明的在目标服务器构建ETL系统的处装置包括:ETL系统包括:临时数据库、源数据库和数据仓库,临时数据库为用于临时存储数据的数据库,源数据库为用于存储原始数据的数据库,数据仓库用于存储经过ETL处理后的数据,临时数据库、源数据库和数据仓库均存储在源服务器中,该装置包括:同步单元,用于将源数据库和数据仓库分别从源服务器同步至目标服务器;获取单元,用于在源服务器中获取临时数据库中临时表的脚本代码,其中,临时数据库包括临时表,脚本代码为用于创建临时表的代码;以及创建单元,用于根据脚本代码在目标服务器上创建目标临时数据库。
进一步地,创建单元包括:创建模块,用于在目标服务器上创建目标数据库;以及执行模块,用于在目标数据库中执行脚本代码,得到临时表;组成模块,用于临时表构成目标临时数据库。
进一步地,该装置还包括:确定单元,用于确定源数据库和数据仓库;以及配置单元,用于分别对源数据库和数据仓库进行配置,得到配置源数据库和配置数据仓库,其中,配置源数据库是用于将源数据库预先进行配置执行同步操作后的数据库,配置数据仓库是用于将数据仓库预先进行配置执行同步操作后的数据库。
进一步地,配置单元包括:第一获取模块,用于分别获取源数据库和数据仓库中已有的配置指令,其中,配置指令为用于指示对源数据库和数据仓库进行预先配置执行同步操作的指令;以及第一配置模块,用于通过配置指令分别对源数据库和数据仓库进行配置,或者,接收模块,用于接收外部输入的配置代码,其中,配置代码为用于对源数据库和数据仓库进行预先配置执行同步操作的代码;以及第二配置模块,用于配置代码生成的相应配置指令分别对源数据库和数据仓库进行配置。
进一步地,同步单元包括:第二获取模块,用于分别针对源数据库和数据仓库获取第一预设代理程序,其中,第一预设代理程序为用于生成数据库快照的程序;生成模块,用于第一预设代理程序分别生成与源数据库相应的数据库快照和数据仓库相应的数据仓库快照;第三获取模块,用于分别针对源数据库和数据仓库获取第二预设代理程序,其中,第二预设代理程序为用于同步源数据库相应的数据库快照和数据仓库相应的数据仓库快照;以及同步模块,用于根据第二预设的代理程序分别将源数据库相应的数据库快照和数据仓库相应的数据仓库快照同步至目标服务器。
通过本发明,将源数据库和数据仓库分别从源服务器同步至目标服务器;在源服务器中获取临时数据库中临时表的脚本代码,其中,临时数据库包括临时表,脚本代码为用于创建临时表的代码;根据脚本代码在目标服务器上创建目标临时数据库,解决了现有技术中在保证源服务器的ETL正常运行的情况下,无法在目标服务器中构建ETL系统的问题,进而达到了在目标服务器中构建ETL系统的效果。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明的实施例,提供了一种在目标服务器构建ETL系统的处理方法。
图1是根据本发明实施例的在目标服务器构建ETL系统的处理方法的示意图。ETL系统包括:临时数据库、源数据库和数据仓库,临时数据库为用于临时存储数据的数据库,源数据库为用于存储原始数据的数据库,数据仓库用于存储经过ETL处理后的数据,临时数据库、源数据库和数据仓库均存储在源服务器中,如图1所示,该方法包括如下的步骤S101至步骤S103:
步骤S101,将源数据库和数据仓库分别从源服务器同步至目标服务器。
将源数据库和数据仓库分别从源服务器同步至目标服务器。
在本发明实施例提供的在目标服务器构建ETL系统的处理方法中,将源数据库和数据仓库分别从源服务器同步至目标服务器包括:分别针对源数据库和数据仓库获取第一预设代理程序,其中,第一预设代理程序为用于生成数据库快照的程序;根据第一预设代理程序分别生成与源数据库相应的数据库快照和数据仓库相应的数据仓库快照;分别针对源数据库和数据仓库获取第二预设代理程序,其中,第二预设代理程序为用于同步源数据库相应的数据库快照和数据仓库相应的数据仓库快照;以及根据第二预设的代理程序分别将源数据库相应的数据库快照和数据仓库相应的数据仓库快照同步至目标服务器。
具体地,根据源数据库生成数据库快照,其中,数据库快照是源数据库的只读静态视图。优选地,源据库为SQL Server数据库。生成数据库快照之后,数据库快照在事务上与源数据库一致。在本发明实施例中的数据库快照用于将源数据库中的数据转移至目标数据库。在数据库快照中包括用于执行同步操作的脚本文件。获取第一预设代理程序,其中,第一预设代理程序为用于生成数据库快照的程序;根据第一预设代理程序生成数据库快照。
优选地,源数据库为SQL Server数据库,获取用于生成数据库快照的第一预设代理程序为SQL Server目录下的snapshot.exe代理程序,根据SQL Server目录下的snapshot.exe代理程序生成数据库快照。在生成数据库快照之后,读取事务日志,其中,每次对数据库的更改,系统都会记录事务日志,replication会把对数据库的更改传送到目标服务器,目标服务器利用这些事务日志来进行同步。运行系统自带的logread.exe代理程序即可读取事务日志。
获取第二预设代理程序,其中,第二预设代理程序为用于同步数据库快照的程序;根据第二预设代理程序将修改后的数据库快照同步至目标数据库。
优选地,源数据库为SQL Server数据库,获取用于同步数据库快照的第二预设代理程序为SQL Server目录下的Distrib.exe代理程序,根据SQL Server目录下的Distrib.exe代理程序同步数据库快照。
需要说明的是,上述同步源数据库的方法也同样适用于同步数据仓库。
将源数据库和数据仓库分别从源服务器同步至目标服务器之前,该方法还包括:确定源数据库和数据仓库;以及分别对源数据库和数据仓库进行配置,得到配置源数据库和配置数据仓库,其中,配置源数据库是用于将源数据库预先进行配置执行同步操作后的数据库,配置数据仓库是用于将数据仓库预先进行配置执行同步操作后的数据库。
优选地,为了提升对未进行配置的数据库进行配置,在本发明实施例提供的数据库批量同步处理方法中,该方法还包括:获取数据库中已有的配置指令,其中,配置指令为用于指示对未进行配置的数据库进行预先配置执行同步操作的指令;以及通过配置指令分别对未进行配置的数据库进行配置,或者,接收外部输入的配置代码,其中,配置代码为用于对未进行配置的数据库进行预先配置执行同步操作的代码;以及根据配置代码生成的相应配置指令分别对未进行配置的数据库进行配置。
优选地,待同步数据库为SQL Server数据库。若待同步数据库未进行初始化,先进行初始化。然后调用sp_adddistributor和sp_addsitributiondb等等存储过程,即对未进行配置的数据库进行了配置。
需要说明的是,定期执行数据同步,也可以通过SSMS的复制监视器,打开SSMS,右击replication目录,选择Launch Replication Monitor,选择控制按钮执行复制操作。
步骤S102,在源服务器中获取临时数据库中临时表的脚本代码。
在源服务器中获取临时数据库中临时表的脚本代码,其中,临时数据库包括临时表,脚本代码为用于创建临时表的代码。
例如,在源服务器中获取临时数据库中临时表的脚本代码的操作代码为:
var dbCreateScripts=sourceDatabase.Script()
通过该步骤,在源服务器中获取到临时数据库中临时表的脚本代码。
步骤S103,根据脚本代码在目标服务器上创建目标临时数据库。
根据上述在源服务器中获取到临时数据库中临时表的脚本代码在目标服务器上创建目标临时数据库。
具体地,根据脚本代码在目标服务器上创建目标临时数据库包括:在目标服务器上创建目标数据库;以及在目标数据库中执行脚本代码,得到临时表;根据临时表构成目标临时数据库。
通过上述步骤,在目标服务器上创建了临时数据库、将源服务器上的源数据库和数据仓库同步至目标服务器。因此实现了在目标服务器中构建ETL系统。
本发明实施例提供的在目标服务器构建ETL系统的处理方法,通过将源数据库和数据仓库分别从源服务器同步至目标服务器;在源服务器中获取临时数据库中临时表的脚本代码,其中,临时数据库包括临时表,脚本代码为用于创建临时表的代码;根据脚本代码在目标服务器上创建目标临时数据库,解决了现有技术中在保证源服务器的ETL正常运行的情况下,无法在目标服务器中构建ETL系统的问题。进而达到了在目标服务器中构建ETL系统的效果。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例还提供了一种在目标服务器构建ETL系统的处理装置,需要说明的是,本发明实施例的在目标服务器构建ETL系统的处理装置可以用于执行本发明实施例所提供的用于在目标服务器构建ETL系统的处理方法。以下对本发明实施例提供的在目标服务器构建ETL系统的处理装置进行介绍。
图2是根据本发明实施例的在目标服务器构建ETL系统的处理装置的示意图。ETL系统包括:临时数据库、源数据库和数据仓库,临时数据库为用于临时存储数据的数据库,源数据库为用于存储原始数据的数据库,数据仓库用于存储经过ETL处理后的数据,临时数据库、源数据库和数据仓库均存储在源服务器中,如图2所示,装置包括:同步单元10、获取单元20和创建单元30。
同步单元10,用于将源数据库和数据仓库分别从源服务器同步至目标服务器。
具体地,该同步单元10包括:第二获取模块,用于分别针对源数据库和数据仓库获取第一预设代理程序,其中,第一预设代理程序为用于生成数据库快照的程序;生成模块,用于第一预设代理程序分别生成与源数据库相应的数据库快照和数据仓库相应的数据仓库快照;第三获取模块,用于分别针对源数据库和数据仓库获取第二预设代理程序,其中,第二预设代理程序为用于同步源数据库相应的数据库快照和数据仓库相应的数据仓库快照;以及同步模块,用于根据第二预设的代理程序分别将源数据库相应的数据库快照和数据仓库相应的数据仓库快照同步至目标服务器。
获取单元20,用于在源服务器中获取临时数据库中临时表的脚本代码,其中,临时数据库包括临时表,脚本代码为用于创建临时表的代码。
创建单元30,用于根据脚本代码在目标服务器上创建目标临时数据库。
具体地,创建单元30包括:创建模块,用于在目标服务器上创建目标数据库;以及执行模块,用于在目标数据库中执行脚本代码,得到临时表;组成模块,用于临时表构成目标临时数据库。
本发明实施例提供的在目标服务器构建ETL系统的处理装置,通过同步单元10将源数据库和数据仓库分别从源服务器同步至目标服务器;获取单元20在源服务器中获取临时数据库中临时表的脚本代码,其中,临时数据库包括临时表,脚本代码为用于创建临时表的代码;创建单元30根据脚本代码在目标服务器上创建目标临时数据库,解决了现有技术中在保证源服务器的ETL正常运行的情况下,无法在目标服务器中构建ETL系统的问题。进而达到了在目标服务器中构建ETL系统的效果。
优选地,在本发明实施例提供的在目标服务器构建ETL系统的处理装置中,该装置还包括:确定单元,用于确定源数据库和数据仓库;以及配置单元,用于分别对源数据库和数据仓库进行配置,得到配置源数据库和配置数据仓库,其中,配置源数据库是用于将源数据库预先进行配置执行同步操作后的数据库,配置数据仓库是用于将数据仓库预先进行配置执行同步操作后的数据库。具体地,该配置单元包括:第一获取模块,用于分别获取源数据库和数据仓库中已有的配置指令,其中,配置指令为用于指示对源数据库和数据仓库进行预先配置执行同步操作的指令;以及第一配置模块,用于通过配置指令分别对源数据库和数据仓库进行配置,或者,接收模块,用于接收外部输入的配置代码,其中,配置代码为用于对源数据库和数据仓库进行预先配置执行同步操作的代码;以及第二配置模块,用于配置代码生成的相应配置指令分别对源数据库和数据仓库进行配置。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。