專利名稱:空間數(shù)據(jù)批量抽取轉(zhuǎn)換加載方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機(jī)領(lǐng)域,具體而言,涉及一種空間數(shù)據(jù)批量抽取轉(zhuǎn)換加載方法及直O(jiān)背景技術(shù)
數(shù)據(jù)抽取、轉(zhuǎn)換、加載(Extract-Transform-Load,簡稱為ETL)的過程將分布的、 異構(gòu)的數(shù)據(jù)源中的數(shù)據(jù)如關(guān)系數(shù)據(jù)、平面數(shù)據(jù)文件等抽取到臨時中間層后進(jìn)行清洗、轉(zhuǎn)換、 集成,最后加載到目標(biāo)數(shù)據(jù)源或數(shù)據(jù)倉庫中,成為聯(lián)機(jī)分析處理、數(shù)據(jù)挖掘的基礎(chǔ)??臻g數(shù)據(jù)的ETL過程則是將多源、異構(gòu)的空間數(shù)據(jù)(包含坐標(biāo)信息)抽取到臨時中間層后進(jìn)行清洗、轉(zhuǎn)換、集成,最后加載到另一種格式的目標(biāo)空間數(shù)據(jù)源中。
相對于屬性數(shù)據(jù),多源空間數(shù)據(jù)之間的差異更加突出,其數(shù)據(jù)組織、存儲方式差異較大,具體體現(xiàn)在
空間數(shù)據(jù)在各種GIS軟件的發(fā)展下逐漸形成各種版本、各種形態(tài)的數(shù)據(jù)存儲格式。
空間數(shù)據(jù)有文件存儲形式、數(shù)據(jù)庫形式的差異。
空間數(shù)據(jù)在單個文件形式內(nèi)部可以按照圖層進(jìn)行組織,在數(shù)據(jù)庫內(nèi)部也可以按照數(shù)據(jù)集、圖層進(jìn)行組織。
空間數(shù)據(jù)的圖層類型復(fù)雜,其按照圖元類型通常又可分為點(diǎn)、線、面、復(fù)合圖層。點(diǎn)層只存儲點(diǎn)對象,線層只存儲線對象,面層只存儲面對象,復(fù)合圖層則所有類型對象均可存儲。
由于以上特點(diǎn),空間數(shù)據(jù)的ETL過程更加復(fù)雜。目前大部分空間數(shù)據(jù)ETL軟件僅給出了單個空間數(shù)據(jù)ETL過程的解決方案,而沒有對批量ETL過程給出解決方案。部分空間數(shù)據(jù)ETL軟件支持的批量ETL過程只是預(yù)先由手工將若干個數(shù)據(jù)源加入到ETL流程中, 并設(shè)置若干個固定的目標(biāo)數(shù)據(jù)源進(jìn)行一一對應(yīng),此方式是靜態(tài)的批量解決方案,而非動態(tài)、 實(shí)時的批量ETL解決方案。即無法在執(zhí)行過程中,實(shí)時的從某個位置枚舉數(shù)據(jù)源,并動態(tài)對應(yīng)的目標(biāo)數(shù)據(jù)源上。在對大批量空間數(shù)據(jù)備份、遷移過程中,靜態(tài)的ETL批量解決方案耗時耗力,靈活性很差,人工成本很高,而且無法自動、定期執(zhí)行。
相關(guān)技術(shù)中,對于空間數(shù)據(jù)的批量ETL過程支持通常是以靜態(tài)的、手工的方式來實(shí)現(xiàn)的。一般過程是由ETL軟件的操作人員首先設(shè)計好單個數(shù)據(jù)的ETL處理流程,然后通過工具界面批量增加若干源數(shù)據(jù)到ETL流程中,并對每一個源數(shù)據(jù)指定對應(yīng)的目標(biāo)數(shù)據(jù), 每一個源數(shù)據(jù)與目標(biāo)數(shù)據(jù)需要按照順序一一對應(yīng)。
設(shè)計好流程之后,操作人員通過工具界面開始執(zhí)行ETL流程。在ETL流程的執(zhí)行過程中,ETL軟件會按照操作者設(shè)定的數(shù)據(jù)源順序,依次執(zhí)行每一個源數(shù)據(jù)、目標(biāo)數(shù)據(jù)及其之間的處理流程。
因此,相關(guān)技術(shù)中實(shí)現(xiàn)批量ETL過程的技術(shù),具有以下缺陷1、操作復(fù)雜,易出錯且人工成本高。其體現(xiàn)在操作人員不但需要將源數(shù)據(jù)批量加入到ETL流程中,還需要為每一個源數(shù)據(jù)指定正確的目標(biāo)數(shù)據(jù),一旦對應(yīng)錯誤則無法產(chǎn)生正確的結(jié)果;2、靈活性低,一旦數(shù)據(jù)源發(fā)生變化,操作者需要到源數(shù)據(jù)與目標(biāo)數(shù)據(jù)列表中增加、刪除或者修改數(shù)據(jù)源。發(fā)明內(nèi)容
本發(fā)明提供了一種空間數(shù)據(jù)批量抽取轉(zhuǎn)換加載方法及裝置,以至少解決相關(guān)技術(shù)中空間數(shù)據(jù)批量ETL過程由手動操作,耗時耗力且靈活性不高的問題。
根據(jù)本發(fā)明的一方面,提供了一種空間數(shù)據(jù)批量抽取轉(zhuǎn)換加載方法,包括從與源數(shù)據(jù)一一對應(yīng)的源數(shù)據(jù)容器獲取源數(shù)據(jù)的設(shè)置參數(shù),其中源數(shù)據(jù)容器用于給源數(shù)據(jù)提供用于確定數(shù)據(jù)源的參數(shù);根據(jù)源數(shù)據(jù)的設(shè)置參數(shù),從與目標(biāo)數(shù)據(jù)一一對應(yīng)的目標(biāo)數(shù)據(jù)容器獲取目標(biāo)數(shù)據(jù)的設(shè)置參數(shù),其中目標(biāo)數(shù)據(jù)容器用于給目標(biāo)數(shù)據(jù)提供用于確定數(shù)據(jù)源的參數(shù); 根據(jù)源數(shù)據(jù)的設(shè)置參數(shù)和目標(biāo)數(shù)據(jù)的設(shè)置參數(shù),執(zhí)行批量ETL過程。
優(yōu)選地,從與源數(shù)據(jù)一一對應(yīng)的數(shù)據(jù)容器獲取源數(shù)據(jù)的設(shè)置參數(shù)包括調(diào)用與源數(shù)據(jù)容器的源數(shù)據(jù)枚舉接口,其中源數(shù)據(jù)枚舉接口用于枚舉獲取源數(shù)據(jù)的設(shè)置參數(shù);通過源數(shù)據(jù)枚舉接口,枚舉獲取源數(shù)據(jù)的設(shè)置參數(shù)。
優(yōu)選地,源數(shù)據(jù)容器的接口還包括以下至少之一參數(shù)設(shè)置接口,用于對源數(shù)據(jù)上的數(shù)據(jù)容器的設(shè)置參數(shù)進(jìn)行設(shè)置;重置接口,用于在執(zhí)行批量ETL過程之前,對源數(shù)據(jù)上的數(shù)據(jù)容器進(jìn)行重置。
優(yōu)選地,根據(jù)源數(shù)據(jù)的設(shè)置參數(shù),從與目標(biāo)數(shù)據(jù)一一對應(yīng)的數(shù)據(jù)容器獲取目標(biāo)數(shù)據(jù)的設(shè)置參數(shù)包括調(diào)用目標(biāo)數(shù)據(jù)容器的目標(biāo)數(shù)據(jù)獲取接口,其中目標(biāo)數(shù)據(jù)獲取接口用于根據(jù)源數(shù)據(jù)的設(shè)置參數(shù)以及目標(biāo)數(shù)據(jù)容器的設(shè)置參數(shù)獲取目標(biāo)數(shù)據(jù)的設(shè)置參數(shù);通過目標(biāo)數(shù)據(jù)獲取接口,根據(jù)源數(shù)據(jù)的設(shè)置參數(shù)以及目標(biāo)數(shù)據(jù)容器的設(shè)置參數(shù)獲取目標(biāo)數(shù)據(jù)的設(shè)置參數(shù)。
優(yōu)選地,在通過目標(biāo)數(shù)據(jù)獲取接口,根據(jù)源數(shù)據(jù)的設(shè)置參數(shù)以及目標(biāo)數(shù)據(jù)容器的設(shè)置參數(shù)獲取目標(biāo)數(shù)據(jù)的設(shè)置參數(shù)之前,還包括將源數(shù)據(jù)的設(shè)置參數(shù)傳遞給目標(biāo)數(shù)據(jù)容ο
優(yōu)選地,將源數(shù)據(jù)的設(shè)置參數(shù)傳遞給目標(biāo)數(shù)據(jù)容器包括將源數(shù)據(jù)的設(shè)置參數(shù)從源數(shù)據(jù)容器傳遞給與其一一對應(yīng)的源數(shù)據(jù);將源數(shù)據(jù)的設(shè)置參數(shù)從該源數(shù)據(jù)傳遞給目標(biāo)數(shù)據(jù)容器。
優(yōu)選地,在通過目標(biāo)數(shù)據(jù)獲取接口,根據(jù)源數(shù)據(jù)的設(shè)置參數(shù)以及目標(biāo)數(shù)據(jù)容器的設(shè)置參數(shù)獲取目標(biāo)數(shù)據(jù)的設(shè)置參數(shù)之后,還包括將目標(biāo)數(shù)據(jù)的設(shè)置參數(shù)傳遞給目標(biāo)數(shù)據(jù)。
優(yōu)選地,目標(biāo)數(shù)據(jù)容器的接口還包括以下至少之一參數(shù)設(shè)置接口,用于對目標(biāo)數(shù)據(jù)上的數(shù)據(jù)容器的設(shè)置參數(shù)進(jìn)行設(shè)置;重置接口,用于在執(zhí)行批量ETL過程之前,對目標(biāo)數(shù)據(jù)上的數(shù)據(jù)容器進(jìn)行重置。
優(yōu)選地,在根據(jù)源數(shù)據(jù)的設(shè)置參數(shù)和目標(biāo)數(shù)據(jù)的設(shè)置參數(shù),執(zhí)行批量ETL過程之后,還包括返回執(zhí)行從源數(shù)據(jù)容器獲取源數(shù)據(jù)的設(shè)置參數(shù)的操作,直至源數(shù)據(jù)容器枚舉結(jié)束ο
根據(jù)本發(fā)明的另一方面,提供了一種空間數(shù)據(jù)批量抽取轉(zhuǎn)換加載裝置,包括第一獲取模塊,用于從與源數(shù)據(jù)一一對應(yīng)的源數(shù)據(jù)容器獲取源數(shù)據(jù)的設(shè)置參數(shù),其中源數(shù)據(jù)容器用于給源數(shù)據(jù)提供用于確定數(shù)據(jù)源的參數(shù);第二獲取模塊,用于根據(jù)源數(shù)據(jù)的設(shè)置參數(shù),從與目標(biāo)數(shù)據(jù)一一對應(yīng)的目標(biāo)數(shù)據(jù)容器獲取目標(biāo)數(shù)據(jù)的設(shè)置參數(shù),其中目標(biāo)數(shù)據(jù)容器用于給目標(biāo)數(shù)據(jù)提供用于確定數(shù)據(jù)源的參數(shù);執(zhí)行模塊,用于根據(jù)源數(shù)據(jù)的設(shè)置參數(shù)和目標(biāo)數(shù)據(jù)的設(shè)置參數(shù),執(zhí)行批量ETL過程。
通過本發(fā)明,采用自動獲取源數(shù)據(jù)的設(shè)置參數(shù)和目標(biāo)數(shù)據(jù)的設(shè)置參數(shù),然后根據(jù)該設(shè)置參數(shù)執(zhí)行批量ETL過程的方法,解決了空間數(shù)據(jù)ETL過程由手動操作,耗時耗力且靈活性不高的問題,進(jìn)而達(dá)到了靈活性高效果。
此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中
圖1是根據(jù)本發(fā)明實(shí)施例的空間數(shù)據(jù)批量抽取轉(zhuǎn)換加載方法的流程圖2是根據(jù)本發(fā)明優(yōu)選實(shí)施例的空間數(shù)據(jù)批量抽取轉(zhuǎn)換加載方法的流程圖3是根據(jù)本發(fā)明實(shí)施例的空間數(shù)據(jù)批量抽取轉(zhuǎn)換加載裝置的結(jié)構(gòu)框圖4是根據(jù)本發(fā)明優(yōu)選實(shí)施例的空間數(shù)據(jù)批量抽取轉(zhuǎn)換加載裝置的結(jié)構(gòu)框圖一;
圖5是根據(jù)本發(fā)明優(yōu)選實(shí)施例的空間數(shù)據(jù)批量抽取轉(zhuǎn)換加載裝置的結(jié)構(gòu)框圖二 ;
圖6是根據(jù)本發(fā)明優(yōu)選實(shí)施例的空間數(shù)據(jù)批量抽取轉(zhuǎn)換加載裝置的結(jié)構(gòu)框圖三。
具體實(shí)施方式
需要說明的是,在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。
本發(fā)明提供了一種空間數(shù)據(jù)批量抽取轉(zhuǎn)換加載方法。圖1是根據(jù)本發(fā)明實(shí)施例的空間數(shù)據(jù)批量抽取轉(zhuǎn)換加載方法的流程圖,包括如下的步驟S102至步驟S106。
步驟S102,從與源數(shù)據(jù)一一對應(yīng)的源數(shù)據(jù)容器獲取源數(shù)據(jù)的設(shè)置參數(shù),其中源數(shù)據(jù)容器用于給源數(shù)據(jù)提供用于確定數(shù)據(jù)源的參數(shù)。
步驟S104,根據(jù)源數(shù)據(jù)的設(shè)置參數(shù),從與目標(biāo)數(shù)據(jù)一一對應(yīng)的目標(biāo)數(shù)據(jù)容器獲取目標(biāo)數(shù)據(jù)的設(shè)置參數(shù),其中目標(biāo)數(shù)據(jù)容器用于給目標(biāo)數(shù)據(jù)提供用于確定數(shù)據(jù)源的參數(shù)。
步驟S106,根據(jù)源數(shù)據(jù)的設(shè)置參數(shù)和目標(biāo)數(shù)據(jù)的設(shè)置參數(shù),執(zhí)行批量ETL過程。
相關(guān)技術(shù)中,空間數(shù)據(jù)ETL過程是通過手工將若干個數(shù)據(jù)源加入到ETL流程中,并設(shè)置若干個固定的目標(biāo)數(shù)據(jù)源進(jìn)行一一對應(yīng),此方式耗時耗力、靈活性不高。本發(fā)明實(shí)施例中,通過自動獲取源數(shù)據(jù)的設(shè)置參數(shù)和目標(biāo)數(shù)據(jù)的設(shè)置參數(shù),然后根據(jù)該設(shè)置參數(shù)執(zhí)行批量ETL過程,其靈活性很高,尤其在大批量空間數(shù)據(jù)備份、遷移過程中可發(fā)揮很好的作用。
由此可見,本發(fā)明中的關(guān)鍵是如何獲取源數(shù)據(jù)的設(shè)置參數(shù)和目標(biāo)數(shù)據(jù)的設(shè)置參數(shù),下面對其進(jìn)行詳細(xì)描述。
1、獲取源數(shù)據(jù)的設(shè)置參數(shù)
為了獲取源數(shù)據(jù)的設(shè)置參數(shù),可以調(diào)用與源數(shù)據(jù)容器的源數(shù)據(jù)枚舉接口,其中源數(shù)據(jù)枚舉接口用于枚舉獲取源數(shù)據(jù)的設(shè)置參數(shù);通過源數(shù)據(jù)枚舉接口,枚舉獲取源數(shù)據(jù)的設(shè)置參數(shù)。本優(yōu)選實(shí)施例中,通過源數(shù)據(jù)枚舉接口枚舉獲取源數(shù)據(jù)的設(shè)置參數(shù),其實(shí)現(xiàn)方式簡便、可靠。
進(jìn)而,源數(shù)據(jù)容器的接口還包括以下至少之一參數(shù)設(shè)置接口,用于對源數(shù)據(jù)上的數(shù)據(jù)容器的設(shè)置參數(shù)進(jìn)行設(shè)置;重置接口,用于在執(zhí)行批量ETL過程之前,對源數(shù)據(jù)上的數(shù)據(jù)容器進(jìn)行重置。
2、獲取目標(biāo)數(shù)據(jù)的設(shè)置參數(shù)
為了獲取目標(biāo)數(shù)據(jù)的設(shè)置參數(shù),可以調(diào)用目標(biāo)數(shù)據(jù)容器的目標(biāo)數(shù)據(jù)獲取接口,其中目標(biāo)數(shù)據(jù)獲取接口用于根據(jù)源數(shù)據(jù)的設(shè)置參數(shù)以及目標(biāo)容器的設(shè)置參數(shù)獲取目標(biāo)數(shù)據(jù)的設(shè)置參數(shù);通過目標(biāo)數(shù)據(jù)獲取接口,根據(jù)源數(shù)據(jù)的設(shè)置參數(shù)以及目標(biāo)容器的設(shè)置參數(shù)獲取目標(biāo)數(shù)據(jù)的設(shè)置參數(shù)。本優(yōu)選實(shí)施例中,通過目標(biāo)數(shù)據(jù)獲取接口枚舉獲取目標(biāo)數(shù)據(jù)的設(shè)置參數(shù),其實(shí)現(xiàn)方式簡便、可靠。
進(jìn)而,在通過目標(biāo)數(shù)據(jù)獲取接口,根據(jù)源數(shù)據(jù)的設(shè)置參數(shù)以及目標(biāo)數(shù)據(jù)容器的設(shè)置參數(shù)獲取目標(biāo)數(shù)據(jù)的設(shè)置參數(shù)之前,還包括將源數(shù)據(jù)的設(shè)置參數(shù)傳遞給目標(biāo)數(shù)據(jù)容器。 其中,該傳遞方式可以包括將源數(shù)據(jù)的設(shè)置參數(shù)從源數(shù)據(jù)容器傳遞給與其一一對應(yīng)的源數(shù)據(jù);將源數(shù)據(jù)的設(shè)置參數(shù)從該源數(shù)據(jù)傳遞給目標(biāo)數(shù)據(jù)容器。
優(yōu)選地,在通過目標(biāo)數(shù)據(jù)獲取接口,根據(jù)源數(shù)據(jù)的設(shè)置參數(shù)以及目標(biāo)容器的設(shè)置參數(shù)獲取目標(biāo)數(shù)據(jù)的設(shè)置參數(shù)之后,還包括將目標(biāo)數(shù)據(jù)的設(shè)置參數(shù)傳遞給目標(biāo)數(shù)據(jù)。
優(yōu)選地,目標(biāo)數(shù)據(jù)容器的接口還包括以下至少之一參數(shù)設(shè)置接口,用于對目標(biāo)數(shù)據(jù)上的數(shù)據(jù)容器的設(shè)置參數(shù)進(jìn)行設(shè)置;重置接口,用于在執(zhí)行批量ETL過程之前,對目標(biāo)數(shù)據(jù)上的數(shù)據(jù)容器進(jìn)行重置。
更進(jìn)一步地,為了更好地實(shí)現(xiàn)空間數(shù)據(jù)自動批量抽取轉(zhuǎn)換加載,在根據(jù)源數(shù)據(jù)的設(shè)置參數(shù)和目標(biāo)數(shù)據(jù)的設(shè)置參數(shù),執(zhí)行批量ETL過程之后,還包括返回執(zhí)行從源數(shù)據(jù)容器獲取源數(shù)據(jù)的設(shè)置參數(shù)的操作,直至源數(shù)據(jù)容器枚舉結(jié)束。本優(yōu)選實(shí)施例中,通過反復(fù)執(zhí)行自動獲取源數(shù)據(jù)的設(shè)置參數(shù)和目標(biāo)數(shù)據(jù)的設(shè)置參數(shù),然后根據(jù)該設(shè)置參數(shù)執(zhí)行批量ETL過程,可以動態(tài)、實(shí)時的批量ETL過程,在大批量空間數(shù)據(jù)備份、遷移過程中發(fā)揮很好的作用。
下面將結(jié)合實(shí)例對本發(fā)明實(shí)施例的實(shí)現(xiàn)過程進(jìn)行詳細(xì)描述。
圖2是根據(jù)本發(fā)明優(yōu)選實(shí)施例的空間數(shù)據(jù)批量抽取轉(zhuǎn)換加載方法的流程圖,包括如下的步驟S202至步驟S218。
步驟S202,開始執(zhí)行批量ETL過程。
步驟S204,從源數(shù)據(jù)關(guān)聯(lián)的數(shù)據(jù)容器獲得源數(shù)據(jù)設(shè)置參數(shù)。
步驟S206,判斷獲取是否成功,如果成功則執(zhí)行步驟S208,如果失敗則執(zhí)行步驟 S210。
步驟S208,設(shè)置參數(shù)傳遞給源數(shù)據(jù),執(zhí)行步驟S212。
步驟S210,結(jié)束執(zhí)行過程。
步驟S212,設(shè)置參數(shù)傳遞給目標(biāo)數(shù)據(jù)關(guān)聯(lián)的數(shù)據(jù)容器。
步驟S214,從目標(biāo)數(shù)據(jù)關(guān)聯(lián)的數(shù)據(jù)容器獲得目標(biāo)數(shù)據(jù)設(shè)置參數(shù)。
步驟S216,設(shè)置參數(shù)傳遞給目標(biāo)數(shù)據(jù)。
步驟S218,執(zhí)行ETL過程。
在具體實(shí)現(xiàn)上,由于各種空間數(shù)據(jù)源存儲、數(shù)據(jù)組織方式不同,需要針對每一種數(shù)據(jù)源提供一個對應(yīng)的數(shù)據(jù)容器實(shí)現(xiàn)。但是所有數(shù)據(jù)容器的實(shí)現(xiàn)都應(yīng)遵循相同的接口規(guī)范, 本發(fā)明給出了實(shí)現(xiàn)數(shù)據(jù)容器時應(yīng)包含的主要接口
參數(shù)設(shè)置接口(ktParameter/Getfarameter)用于對數(shù)據(jù)容器設(shè)置其所需的參數(shù),以便能夠正確枚舉數(shù)據(jù)源。例如批量轉(zhuǎn)換文件格式的數(shù)據(jù)源時,通常參數(shù)中應(yīng)包括一個本地目錄,用于枚舉文件。
重置接口(Reset)在每次批量執(zhí)行ETL過程前,需要對數(shù)據(jù)容器進(jìn)行重置,保證其處于正確的初始狀態(tài),以便從第一個數(shù)據(jù)源開始枚舉。
源數(shù)據(jù)枚舉接口(GetNext)源數(shù)據(jù)上的數(shù)據(jù)容器會被調(diào)用此方法,通過不斷調(diào)用此接口,可以獲得枚舉出來的源數(shù)據(jù)設(shè)置參數(shù)。
目標(biāo)數(shù)據(jù)獲取接口(GetTargetDataParam):目標(biāo)數(shù)據(jù)上的數(shù)據(jù)容器會被調(diào)用此方法,此方法需要傳入源數(shù)據(jù)設(shè)置參數(shù),并據(jù)此得到目標(biāo)數(shù)據(jù)上的數(shù)據(jù)源設(shè)置參數(shù)并返回。
需要說明的是,對于以上接口,其中比較難以實(shí)現(xiàn)的是最后一個接口。由于空間數(shù)據(jù)格式的多樣性,對于一種數(shù)據(jù)格式的數(shù)據(jù)容器,如何在不知道源數(shù)據(jù)格式的情況下,根據(jù)傳入的源數(shù)據(jù)設(shè)置參數(shù),以及自身的設(shè)置參數(shù),來確定目標(biāo)數(shù)據(jù)上的數(shù)據(jù)源設(shè)置參數(shù)。
為了解決此問題,需要對數(shù)據(jù)容器枚舉出來的源數(shù)據(jù)設(shè)置參數(shù)進(jìn)行規(guī)范化。經(jīng)過對各種常用空間數(shù)據(jù)格式的歸納,本發(fā)明提出,對于數(shù)據(jù)容器枚舉出來的任何空間數(shù)據(jù)格式的源數(shù)據(jù)的設(shè)置參數(shù)(即GetNext方法返回的參數(shù))應(yīng)規(guī)范為由以下若干參數(shù)構(gòu)成
文件類型數(shù)據(jù)源的相對路徑此相對路徑是枚舉到的文件路徑相對于枚舉根目錄的相對路徑,例如源數(shù)據(jù)是從“C: \Data”目錄下進(jìn)行枚舉得到,則對于“C: \Data\DataSetl\ Vector\A. shp”數(shù)據(jù)源,其返回參數(shù)應(yīng)包含一個相對路徑參數(shù)“Dat必etl\VeCtor\”。當(dāng)目標(biāo)數(shù)據(jù)源也是文件類型數(shù)據(jù)源時,此參數(shù)可以確定目標(biāo)數(shù)據(jù)源的具體子目錄存放位置。
文件類型數(shù)據(jù)源的文件名文件名稱通??梢杂糜谀繕?biāo)數(shù)據(jù)源的數(shù)據(jù)表名。
數(shù)據(jù)表名或者圖層名通??梢杂糜谀繕?biāo)數(shù)據(jù)源的數(shù)據(jù)表名。
數(shù)據(jù)集名稱用于給出數(shù)據(jù)源所屬的分組名稱。
這樣,各類數(shù)據(jù)源實(shí)現(xiàn)數(shù)據(jù)容器的GetTargetDataParam方法時,可以根據(jù)各自特點(diǎn),按照優(yōu)先級從上述參數(shù)中選取,并結(jié)合自身設(shè)置參數(shù),從而確定目標(biāo)數(shù)據(jù)上的數(shù)據(jù)源設(shè)置參數(shù)。
基于此方案的優(yōu)點(diǎn)如下
可以實(shí)現(xiàn)執(zhí)行期間動態(tài)、實(shí)時的批量ETL過程,即具體轉(zhuǎn)換的數(shù)據(jù)源是在執(zhí)行期間枚舉得到,而不是由手工預(yù)先批量增加的。因此大大降低了人工成本,在大批量空間數(shù)據(jù)備份、遷移過程中可發(fā)揮很好的作用。
靈活性高,由于其執(zhí)行時才確定數(shù)據(jù)源信息,當(dāng)在數(shù)據(jù)源發(fā)生變化時,無需修改整個ETL過程,大大降低了維護(hù)的成本。
對空間數(shù)據(jù)格式適應(yīng)性強(qiáng),可實(shí)現(xiàn)文件類型到文件類型、文件類型到數(shù)據(jù)庫類型、 數(shù)據(jù)庫類型到數(shù)據(jù)庫類型等各種數(shù)據(jù)的批量ETL過程。
需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機(jī)可執(zhí)行指令的計算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
本發(fā)明實(shí)施例提供了一種空間數(shù)據(jù)批量抽取轉(zhuǎn)換加載裝置,該裝置可以用于實(shí)現(xiàn)上述空間數(shù)據(jù)批量抽取轉(zhuǎn)換加載方法。圖3是根據(jù)本發(fā)明實(shí)施例的空間數(shù)據(jù)批量抽取轉(zhuǎn)換加載裝置的結(jié)構(gòu)框圖,包括第一獲取模塊32、第二獲取模塊34和執(zhí)行模塊36。下面對其結(jié)構(gòu)進(jìn)行詳細(xì)描述。
第一獲取模塊32,用于從與源數(shù)據(jù)一一對應(yīng)的源數(shù)據(jù)容器獲取源數(shù)據(jù)的設(shè)置參數(shù),其中源數(shù)據(jù)容器用于給源數(shù)據(jù)提供用于確定數(shù)據(jù)源的參數(shù);第二獲取模塊34,連接至第一獲取模塊32,用于根據(jù)源數(shù)據(jù)的設(shè)置參數(shù),從與目標(biāo)數(shù)據(jù)一一對應(yīng)的目標(biāo)數(shù)據(jù)容器獲取目標(biāo)數(shù)據(jù)的設(shè)置參數(shù),其中目標(biāo)數(shù)據(jù)容器用于給目標(biāo)數(shù)據(jù)提供用于確定數(shù)據(jù)源的參數(shù); 執(zhí)行模塊36,連接至第一獲取模塊32和第二獲取模塊34,用于根據(jù)第一獲取模塊32獲取的源數(shù)據(jù)的設(shè)置參數(shù)和第二獲取模塊34獲取的目標(biāo)數(shù)據(jù)的設(shè)置參數(shù),執(zhí)行批量ETL過程。
圖4是根據(jù)本發(fā)明優(yōu)選實(shí)施例的空間數(shù)據(jù)批量抽取轉(zhuǎn)換加載裝置的結(jié)構(gòu)框圖一, 如圖4所示,第一獲取模塊32包括第一調(diào)用模塊322,用于調(diào)用與源數(shù)據(jù)容器的源數(shù)據(jù)枚舉接口,其中源數(shù)據(jù)枚舉接口用于枚舉獲取源數(shù)據(jù)的設(shè)置參數(shù);第一枚舉模塊324,連接至第一調(diào)用模塊322,用于通過第一調(diào)用模塊322調(diào)用的源數(shù)據(jù)枚舉接口,枚舉獲取源數(shù)據(jù)的設(shè)置參數(shù)。
圖5是根據(jù)本發(fā)明優(yōu)選實(shí)施例的空間數(shù)據(jù)批量抽取轉(zhuǎn)換加載裝置的結(jié)構(gòu)框圖二, 如圖5所示,第一獲取模塊32包括第二調(diào)用模塊326,用于調(diào)用目標(biāo)數(shù)據(jù)容器的目標(biāo)數(shù)據(jù)獲取接口,其中目標(biāo)數(shù)據(jù)獲取接口用于根據(jù)源數(shù)據(jù)的設(shè)置參數(shù),枚舉獲取目標(biāo)數(shù)據(jù)的設(shè)置參數(shù);第二枚舉模塊328,連接至第二調(diào)用模塊326,用于通過第二調(diào)用模塊3 調(diào)用的目標(biāo)數(shù)據(jù)獲取接口,根據(jù)源數(shù)據(jù)的設(shè)置參數(shù),枚舉獲取目標(biāo)數(shù)據(jù)的設(shè)置參數(shù)。
圖6是根據(jù)本發(fā)明優(yōu)選實(shí)施例的空間數(shù)據(jù)批量抽取轉(zhuǎn)換加載裝置的結(jié)構(gòu)框圖三, 如圖6所示,上述裝置還包括返回模塊38,用于返回執(zhí)行從源數(shù)據(jù)容器獲取源數(shù)據(jù)的設(shè)置參數(shù)的操作,直至源數(shù)據(jù)容器枚舉結(jié)束。
需要說明的是,裝置實(shí)施例中描述的空間數(shù)據(jù)批量抽取轉(zhuǎn)換加載裝置對應(yīng)于上述的方法實(shí)施例,其具體的實(shí)現(xiàn)過程在方法實(shí)施例中已經(jīng)進(jìn)行過詳細(xì)說明,在此不再贅述。
綜上所述,根據(jù)本發(fā)明的上述實(shí)施例,提供了一種空間數(shù)據(jù)批量抽取轉(zhuǎn)換加載方法及裝置。通過本發(fā)明,采用自動獲取源數(shù)據(jù)的設(shè)置參數(shù)和目標(biāo)數(shù)據(jù)的設(shè)置參數(shù),然后根據(jù)該設(shè)置參數(shù)執(zhí)行批量ETL過程的方法,解決了空間數(shù)據(jù)ETL過程由手動操作,耗時耗力且靈活性不高的問題,進(jìn)而達(dá)到了靈活性高效果。
顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實(shí)現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實(shí)現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種空間數(shù)據(jù)批量抽取轉(zhuǎn)換加載方法,其特征在于包括從與源數(shù)據(jù)一一對應(yīng)的源數(shù)據(jù)容器獲取所述源數(shù)據(jù)的設(shè)置參數(shù),其中所述源數(shù)據(jù)容器用于給所述源數(shù)據(jù)提供用于確定數(shù)據(jù)源的參數(shù);根據(jù)所述源數(shù)據(jù)的設(shè)置參數(shù),從與目標(biāo)數(shù)據(jù)一一對應(yīng)的目標(biāo)數(shù)據(jù)容器獲取所述目標(biāo)數(shù)據(jù)的設(shè)置參數(shù),其中所述目標(biāo)數(shù)據(jù)容器用于給所述目標(biāo)數(shù)據(jù)提供用于確定數(shù)據(jù)源的參數(shù);根據(jù)所述源數(shù)據(jù)的設(shè)置參數(shù)和所述目標(biāo)數(shù)據(jù)的設(shè)置參數(shù),執(zhí)行批量抽取轉(zhuǎn)換加載ETL 過程。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,從與源數(shù)據(jù)一一對應(yīng)的數(shù)據(jù)容器獲取所述源數(shù)據(jù)的設(shè)置參數(shù)包括調(diào)用與所述源數(shù)據(jù)容器的源數(shù)據(jù)枚舉接口,其中所述源數(shù)據(jù)枚舉接口用于枚舉獲取所述源數(shù)據(jù)的設(shè)置參數(shù);通過所述源數(shù)據(jù)枚舉接口,枚舉獲取所述源數(shù)據(jù)的設(shè)置參數(shù)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述源數(shù)據(jù)容器的接口還包括以下至少之一參數(shù)設(shè)置接口,用于對所述源數(shù)據(jù)上的數(shù)據(jù)容器的設(shè)置參數(shù)進(jìn)行設(shè)置; 重置接口,用于在執(zhí)行批量ETL過程之前,對所述源數(shù)據(jù)上的數(shù)據(jù)容器進(jìn)行重置。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述源數(shù)據(jù)的設(shè)置參數(shù),從與目標(biāo)數(shù)據(jù)一一對應(yīng)的數(shù)據(jù)容器獲取所述目標(biāo)數(shù)據(jù)的設(shè)置參數(shù)包括調(diào)用所述目標(biāo)數(shù)據(jù)容器的目標(biāo)數(shù)據(jù)獲取接口,其中所述目標(biāo)數(shù)據(jù)獲取接口用于根據(jù)所述源數(shù)據(jù)的設(shè)置參數(shù)以及所述目標(biāo)數(shù)據(jù)容器的枚舉參數(shù)獲取所述目標(biāo)數(shù)據(jù)的設(shè)置參數(shù);通過所述目標(biāo)數(shù)據(jù)獲取接口,根據(jù)所述源數(shù)據(jù)的設(shè)置參數(shù)以及所述目標(biāo)數(shù)據(jù)容器的枚舉參數(shù)獲取所述目標(biāo)數(shù)據(jù)的設(shè)置參數(shù)。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在通過所述目標(biāo)數(shù)據(jù)獲取接口,根據(jù)所述源數(shù)據(jù)的設(shè)置參數(shù)以及所述目標(biāo)數(shù)據(jù)容器的枚舉參數(shù)獲取所述目標(biāo)數(shù)據(jù)的設(shè)置參數(shù)之前, 還包括將所述源數(shù)據(jù)的設(shè)置參數(shù)傳遞給所述目標(biāo)數(shù)據(jù)容器。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,將所述源數(shù)據(jù)的設(shè)置參數(shù)傳遞給所述目標(biāo)數(shù)據(jù)容器包括將所述源數(shù)據(jù)的設(shè)置參數(shù)從所述源數(shù)據(jù)容器傳遞給與其一一對應(yīng)的源數(shù)據(jù); 將所述源數(shù)據(jù)的設(shè)置參數(shù)從該源數(shù)據(jù)傳遞給所述目標(biāo)數(shù)據(jù)容器。
7.根據(jù)權(quán)利要求4所述的方法,其特征在于,在通過所述目標(biāo)數(shù)據(jù)獲取接口,根據(jù)所述源數(shù)據(jù)的設(shè)置參數(shù)以及所述目標(biāo)數(shù)據(jù)容器的枚舉參數(shù)獲取所述目標(biāo)數(shù)據(jù)的設(shè)置參數(shù)之后, 還包括將所述目標(biāo)數(shù)據(jù)的設(shè)置參數(shù)傳遞給所述目標(biāo)數(shù)據(jù)。
8.根據(jù)權(quán)利要求4至7中任一項所述的方法,其特征在于,所述目標(biāo)數(shù)據(jù)容器的接口還包括以下至少之一參數(shù)設(shè)置接口,用于對所述目標(biāo)數(shù)據(jù)上的數(shù)據(jù)容器的設(shè)置參數(shù)進(jìn)行設(shè)置; 重置接口,用于在執(zhí)行批量ETL過程之前,對所述目標(biāo)數(shù)據(jù)上的數(shù)據(jù)容器進(jìn)行重置。
9.根據(jù)權(quán)利要求1至7中任一項所述的方法,其特征在于,在根據(jù)所述源數(shù)據(jù)的設(shè)置參數(shù)和所述目標(biāo)數(shù)據(jù)的設(shè)置參數(shù),執(zhí)行批量ETL過程之后,還包括返回執(zhí)行從所述源數(shù)據(jù)容器獲取所述源數(shù)據(jù)的設(shè)置參數(shù)的操作,直至所述源數(shù)據(jù)容器枚舉結(jié)束。
10. 一種空間數(shù)據(jù)批量抽取轉(zhuǎn)換加載裝置,其特征在于包括第一獲取模塊,用于從與源數(shù)據(jù)一一對應(yīng)的源數(shù)據(jù)容器獲取所述源數(shù)據(jù)的設(shè)置參數(shù), 其中所述源數(shù)據(jù)容器用于給所述源數(shù)據(jù)提供用于確定數(shù)據(jù)源的參數(shù);第二獲取模塊,用于根據(jù)所述源數(shù)據(jù)的設(shè)置參數(shù),從與目標(biāo)數(shù)據(jù)一一對應(yīng)的目標(biāo)數(shù)據(jù)容器獲取所述目標(biāo)數(shù)據(jù)的設(shè)置參數(shù),其中所述目標(biāo)數(shù)據(jù)容器用于給所述目標(biāo)數(shù)據(jù)提供用于確定數(shù)據(jù)源的參數(shù);執(zhí)行模塊,用于根據(jù)所述源數(shù)據(jù)的設(shè)置參數(shù)和所述目標(biāo)數(shù)據(jù)的設(shè)置參數(shù),執(zhí)行批量抽取轉(zhuǎn)換加載ETL過程。
全文摘要
本發(fā)明提供了一種空間數(shù)據(jù)批量抽取轉(zhuǎn)換加載方法及裝置,該方法包括從與源數(shù)據(jù)一一對應(yīng)的源數(shù)據(jù)容器獲取源數(shù)據(jù)的設(shè)置參數(shù),其中源數(shù)據(jù)容器用于給源數(shù)據(jù)提供用于確定數(shù)據(jù)源的參數(shù);根據(jù)源數(shù)據(jù)的設(shè)置參數(shù),從與目標(biāo)數(shù)據(jù)一一對應(yīng)的目標(biāo)數(shù)據(jù)容器獲取目標(biāo)數(shù)據(jù)的設(shè)置參數(shù),其中目標(biāo)數(shù)據(jù)容器用于給目標(biāo)數(shù)據(jù)提供用于確定數(shù)據(jù)源的參數(shù);根據(jù)源數(shù)據(jù)的設(shè)置參數(shù)和目標(biāo)數(shù)據(jù)的設(shè)置參數(shù),執(zhí)行批量ETL過程。本發(fā)明通過自動獲取源數(shù)據(jù)的設(shè)置參數(shù)和目標(biāo)數(shù)據(jù)的設(shè)置參數(shù),然后根據(jù)該設(shè)置參數(shù)執(zhí)行批量ETL過程,其靈活性很高,尤其在大批量空間數(shù)據(jù)備份、遷移過程中可發(fā)揮很好的作用。
文檔編號G06F17/30GK102521370SQ201110424768
公開日2012年6月27日 申請日期2011年12月16日 優(yōu)先權(quán)日2011年12月16日
發(fā)明者余兵, 周大良, 李欣, 蔡金華, 趙一民 申請人:方正國際軟件有限公司