本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,具體而言,涉及一種全量數(shù)據(jù)導(dǎo)出方法、裝置及系統(tǒng)。
背景技術(shù):
目前,在進(jìn)行全量數(shù)據(jù)導(dǎo)出時,通常采用基于單線程的同步式數(shù)據(jù)導(dǎo)出方法,該方法為:用戶通過瀏覽器發(fā)出數(shù)據(jù)導(dǎo)出請求;服務(wù)器在接收到該請求后,通過查詢語句,從數(shù)據(jù)庫查詢數(shù)據(jù);數(shù)據(jù)庫將查詢到的結(jié)果集返回給服務(wù)器;服務(wù)器對返回的結(jié)果集進(jìn)行業(yè)務(wù)組裝后,以響應(yīng)流的形式返回給用戶。而隨著系統(tǒng)的使用,累積存儲的數(shù)據(jù)量越來越多,僅通過單線程同步方式導(dǎo)出全量數(shù)據(jù)已經(jīng)無法滿足需求。
當(dāng)存儲的數(shù)據(jù)量達(dá)到一定數(shù)量級后,在全量數(shù)據(jù)導(dǎo)出時,數(shù)據(jù)的查詢、結(jié)果集的組裝等操作越來越慢,同時造成對服務(wù)器內(nèi)存損耗巨大。當(dāng)請求的響應(yīng)時間過長后,會出現(xiàn)服務(wù)器響應(yīng)超時,請求被丟棄,從而導(dǎo)致全臉數(shù)據(jù)導(dǎo)出失敗。此外,當(dāng)百萬級的全量數(shù)據(jù)導(dǎo)出時,處理時間長、反應(yīng)慢,用戶請求提交后,往往在頁面停留很長時間,甚至長達(dá)幾十分鐘,用戶體驗(yàn)十分不友好。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明提供一種全量數(shù)據(jù)導(dǎo)出方法、裝置及系統(tǒng),基于多線程進(jìn)行數(shù)據(jù)導(dǎo)出操作,能夠提高數(shù)據(jù)導(dǎo)出效率,增加用戶滿意度。
本發(fā)明的其他特性和優(yōu)點(diǎn)將通過下面的詳細(xì)描述變得顯然,或部分地通過本發(fā)明的實(shí)踐而習(xí)得。
根據(jù)本發(fā)明的一方面,提供了一種全量數(shù)據(jù)導(dǎo)出方法,包括:接收用戶通過客戶端發(fā)送的全量數(shù)據(jù)導(dǎo)出請求;通過主線程向所述客戶端返回確認(rèn)消息,以提示用戶數(shù)據(jù)導(dǎo)出操作正在執(zhí)行;為所述全量數(shù)據(jù)導(dǎo)出 請求分配數(shù)據(jù)導(dǎo)出線程;基于多線程操作,通過各數(shù)據(jù)導(dǎo)出線程分別執(zhí)行數(shù)據(jù)導(dǎo)出操作,向數(shù)據(jù)庫發(fā)送獲取數(shù)據(jù)請求;以及從所述數(shù)據(jù)庫獲取數(shù)據(jù)并進(jìn)行數(shù)據(jù)業(yè)務(wù)組裝后,通知相應(yīng)的客戶端進(jìn)行導(dǎo)出數(shù)據(jù)的下載。
根據(jù)本發(fā)明的一實(shí)施方式,所述數(shù)據(jù)導(dǎo)出操作包括:進(jìn)行所述全量數(shù)據(jù)導(dǎo)出請求的導(dǎo)出數(shù)據(jù)量分析;當(dāng)所述導(dǎo)出數(shù)據(jù)量超過預(yù)設(shè)的單次獲取數(shù)據(jù)量的最大值時,根據(jù)數(shù)據(jù)量,分次向所述數(shù)據(jù)庫發(fā)送獲取數(shù)據(jù)請求。
根據(jù)本發(fā)明的一實(shí)施方式,上述方法還包括:記錄發(fā)送所述全量數(shù)據(jù)導(dǎo)出請求的用戶信息;以及當(dāng)從所述數(shù)據(jù)庫獲取數(shù)據(jù)并進(jìn)行數(shù)據(jù)業(yè)務(wù)組裝后,將經(jīng)數(shù)據(jù)業(yè)務(wù)組裝后的數(shù)據(jù)與所述用戶信息進(jìn)行關(guān)聯(lián)。
根據(jù)本發(fā)明的一實(shí)施方式,當(dāng)從所述數(shù)據(jù)庫獲取數(shù)據(jù)并進(jìn)行數(shù)據(jù)業(yè)務(wù)組裝后,上述方法還包括:將經(jīng)數(shù)據(jù)業(yè)務(wù)組裝后的數(shù)據(jù)按目錄規(guī)則進(jìn)行存儲及將存儲路徑保存在所述數(shù)據(jù)庫中;以及在所述數(shù)據(jù)庫中進(jìn)行執(zhí)行完成的標(biāo)記記錄。
根據(jù)本發(fā)明的一實(shí)施方式,上述方法還包括:接收用戶通過所述客戶端發(fā)送的數(shù)據(jù)下載請求;以及將相應(yīng)的導(dǎo)出數(shù)據(jù)返回給所述客戶端。
根據(jù)本發(fā)明的另一方面,提供了一種全量數(shù)據(jù)導(dǎo)出裝置,包括:用戶接口模塊,用于接收用戶通過客戶端發(fā)送的全量數(shù)據(jù)導(dǎo)出請求;用戶提示模塊,用于通過主線程向所述客戶端返回確認(rèn)消息,以提示用戶數(shù)據(jù)導(dǎo)出操作正在執(zhí)行;線程分配模塊,用于為所述全量數(shù)據(jù)導(dǎo)出請求分配數(shù)據(jù)導(dǎo)出線程;導(dǎo)出操作模塊,用于基于多線程操作,通過各數(shù)據(jù)導(dǎo)出線程分別執(zhí)行數(shù)據(jù)導(dǎo)出操作,向數(shù)據(jù)庫發(fā)送獲取數(shù)據(jù)請求;以及下載通知模塊,用于從所述數(shù)據(jù)庫獲取數(shù)據(jù)并進(jìn)行數(shù)據(jù)業(yè)務(wù)組裝后,通知相應(yīng)的客戶端進(jìn)行導(dǎo)出數(shù)據(jù)的下載。
根據(jù)本發(fā)明的一實(shí)施方式,所述導(dǎo)出操作模塊包括:數(shù)據(jù)量分析子模塊,用于進(jìn)行所述全量數(shù)據(jù)導(dǎo)出請求的導(dǎo)出數(shù)據(jù)量分析;以及數(shù)據(jù)請求拆分子模塊,用于當(dāng)所述導(dǎo)出數(shù)據(jù)量超過預(yù)設(shè)的單次獲取數(shù)據(jù)量的最大值時,根據(jù)數(shù)據(jù)量,分次向所述數(shù)據(jù)庫發(fā)送獲取數(shù)據(jù)請求。
根據(jù)本發(fā)明的一實(shí)施方式,上述裝置還包括:用戶信息記錄模塊,用于記錄發(fā)送所述全量數(shù)據(jù)導(dǎo)出請求的用戶信息;以及用戶信息關(guān)聯(lián)模 塊,用于當(dāng)從所述數(shù)據(jù)庫獲取數(shù)據(jù)并進(jìn)行數(shù)據(jù)業(yè)務(wù)組裝后,將經(jīng)數(shù)據(jù)業(yè)務(wù)組裝后的數(shù)據(jù)與所述用戶信息進(jìn)行關(guān)聯(lián)。
根據(jù)本發(fā)明的一實(shí)施方式,上述裝置還包括:數(shù)據(jù)存儲模塊,用于將經(jīng)數(shù)據(jù)業(yè)務(wù)組裝后的數(shù)據(jù)按目錄規(guī)則進(jìn)行存儲及將存儲路徑保存在所述數(shù)據(jù)庫中;以及數(shù)據(jù)庫標(biāo)記模塊,用于在所述數(shù)據(jù)庫中進(jìn)行執(zhí)行完成的標(biāo)記記錄。
根據(jù)本發(fā)明的一實(shí)施方式,所述用戶接口模塊還用于接收用戶通過所述客戶端發(fā)送的數(shù)據(jù)下載請求,及將相應(yīng)的導(dǎo)出數(shù)據(jù)返回給所述客戶端。
根據(jù)本發(fā)明的再一方面,提供了一種全量數(shù)據(jù)導(dǎo)出系統(tǒng),包括:處理器和存儲器;其中所述存儲器用于存儲所述處理器的可執(zhí)行指令;所述處理器配置為經(jīng)由執(zhí)行所述可執(zhí)行指令來執(zhí)行以下操作:接收用戶通過客戶端發(fā)送的全量數(shù)據(jù)導(dǎo)出請求;通過主線程向所述客戶端返回確認(rèn)消息,以提示用戶數(shù)據(jù)導(dǎo)出操作正在執(zhí)行;為所述全量數(shù)據(jù)導(dǎo)出請求分配數(shù)據(jù)導(dǎo)出線程;基于多線程操作,通過各數(shù)據(jù)導(dǎo)出線程分別執(zhí)行數(shù)據(jù)導(dǎo)出操作,向數(shù)據(jù)庫發(fā)送獲取數(shù)據(jù)請求;以及從所述數(shù)據(jù)庫獲取數(shù)據(jù)并進(jìn)行數(shù)據(jù)業(yè)務(wù)組裝后,通知相應(yīng)的客戶端進(jìn)行導(dǎo)出數(shù)據(jù)的下載。
根據(jù)本發(fā)明的一實(shí)施方式,所述數(shù)據(jù)導(dǎo)出操作包括:進(jìn)行所述全量數(shù)據(jù)導(dǎo)出請求的導(dǎo)出數(shù)據(jù)量分析;當(dāng)所述導(dǎo)出數(shù)據(jù)量超過預(yù)設(shè)的單次獲取數(shù)據(jù)量的最大值時,根據(jù)數(shù)據(jù)量,分次向所述數(shù)據(jù)庫發(fā)送獲取數(shù)據(jù)請求。
根據(jù)本發(fā)明的一實(shí)施方式,所述處理器還配置為經(jīng)由執(zhí)行所述可執(zhí)行指令來執(zhí)行以下操作:記錄發(fā)送所述全量數(shù)據(jù)導(dǎo)出請求的用戶信息;以及當(dāng)從所述數(shù)據(jù)庫獲取數(shù)據(jù)并進(jìn)行數(shù)據(jù)業(yè)務(wù)組裝后,將經(jīng)數(shù)據(jù)業(yè)務(wù)組裝后的數(shù)據(jù)與所述用戶信息進(jìn)行關(guān)聯(lián)。
根據(jù)本發(fā)明的全量數(shù)據(jù)導(dǎo)出方法可基于多線程執(zhí)行不同全量數(shù)據(jù)導(dǎo)出請求的數(shù)據(jù)導(dǎo)出操作,可有效處理并發(fā)的全量數(shù)據(jù)導(dǎo)出請求,提高了數(shù)據(jù)導(dǎo)出操作效率,降低了用戶的等待時間;此外,本發(fā)明的全量數(shù)據(jù)導(dǎo)出方法在獲得從數(shù)據(jù)庫返回的結(jié)果集,并進(jìn)行業(yè)務(wù)組裝后,通知用戶下載,而不是如現(xiàn)有技術(shù)中以響應(yīng)流的形式直接返回導(dǎo)出的數(shù)據(jù)。這 樣,用戶在發(fā)起全量數(shù)據(jù)導(dǎo)出請求后,無需如現(xiàn)有技術(shù)中一樣必須等待在當(dāng)前頁面中,以等待導(dǎo)出數(shù)據(jù)的返回。
另外,根據(jù)一些實(shí)施例,本發(fā)明的全量數(shù)據(jù)導(dǎo)出方法通過設(shè)置最大單次獲取數(shù)據(jù)量,可最大限度地降低數(shù)據(jù)庫的執(zhí)行壓力。
應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性的,并不能限制本發(fā)明。
附圖說明
通過參照附圖詳細(xì)描述其示例實(shí)施例,本發(fā)明的上述和其它目標(biāo)、特征及優(yōu)點(diǎn)將變得更加顯而易見。
圖1是根據(jù)一示例性實(shí)施方式示出的一種全量數(shù)據(jù)導(dǎo)出方法的流程圖。
圖2是根據(jù)一示例性實(shí)施方式示出的另一種全量數(shù)據(jù)導(dǎo)出方法的流程圖。
圖3是根據(jù)一示例性實(shí)施方式示出的一種全量數(shù)據(jù)導(dǎo)出裝置的框圖。
圖4是根據(jù)一示例性實(shí)施方式示出的另一種全量數(shù)據(jù)導(dǎo)出裝置的框圖。
具體實(shí)施方式
現(xiàn)在將參考附圖更全面地描述示例實(shí)施方式。然而,示例實(shí)施方式能夠以多種形式實(shí)施,且不應(yīng)被理解為限于在此闡述的范例;相反,提供這些實(shí)施方式使得本發(fā)明將更加全面和完整,并將示例實(shí)施方式的構(gòu)思全面地傳達(dá)給本領(lǐng)域的技術(shù)人員。附圖僅為本發(fā)明的示意性圖解,并非一定是按比例繪制。圖中相同的附圖標(biāo)記表示相同或類似的部分,因而將省略對它們的重復(fù)描述。
此外,所描述的特征、結(jié)構(gòu)或特性可以以任何合適的方式結(jié)合在一個或更多實(shí)施方式中。在下面的描述中,提供許多具體細(xì)節(jié)從而給出對本發(fā)明的實(shí)施方式的充分理解。然而,本領(lǐng)域技術(shù)人員將意識到,可以實(shí)踐本發(fā)明的技術(shù)方案而省略所述特定細(xì)節(jié)中的一個或更多,或者可以采用其它的方法、組元、裝置、步驟等。在其它情況下,不詳細(xì)示出或 描述公知結(jié)構(gòu)、方法、裝置、實(shí)現(xiàn)或者操作以避免喧賓奪主而使得本發(fā)明的各方面變得模糊。
圖1是根據(jù)一示例性實(shí)施方式示出的一種全量數(shù)據(jù)導(dǎo)出方法的流程圖,該全量數(shù)據(jù)導(dǎo)出方法可以應(yīng)用于一服務(wù)器中。如圖1所示,全量數(shù)據(jù)導(dǎo)出方法10包括:
在步驟s102中,接收用戶通過客戶端發(fā)送的全量數(shù)據(jù)導(dǎo)出請求。
該客戶端例如可以為web客戶端,也可以為wap客戶端。服務(wù)器可以分時接收到不同客戶端發(fā)送的全量數(shù)據(jù)導(dǎo)出請求,也可以是同時收到不同客戶端發(fā)送的全量數(shù)據(jù)導(dǎo)出請求。
在步驟s104中,通過主線程向客戶端返回確認(rèn)消息,以提示用戶導(dǎo)出操作正在執(zhí)行。
在步驟s106中,為該全量數(shù)據(jù)導(dǎo)出請求分配數(shù)據(jù)導(dǎo)出線程。
服務(wù)器具有多個數(shù)據(jù)導(dǎo)出線程,以利用多線程操作處理不同的全量數(shù)據(jù)導(dǎo)出請求。以web服務(wù)器為例,web服務(wù)器每收到一個用戶通過web客戶端(如瀏覽器)發(fā)送的全量數(shù)據(jù)導(dǎo)出請求,就為該全量數(shù)據(jù)導(dǎo)出請求分配一個空閑的數(shù)據(jù)導(dǎo)出線程。
在步驟s108中,基于多線程操作,通過各數(shù)據(jù)導(dǎo)出線程分別執(zhí)行數(shù)據(jù)導(dǎo)出操作,向數(shù)據(jù)庫發(fā)送獲取數(shù)據(jù)請求。
各數(shù)據(jù)導(dǎo)出線程分別執(zhí)行數(shù)據(jù)導(dǎo)出操作,從數(shù)據(jù)庫獲取數(shù)據(jù),并進(jìn)行相應(yīng)的數(shù)據(jù)封裝。
在步驟s110中,從數(shù)據(jù)庫獲取數(shù)據(jù)并進(jìn)行數(shù)據(jù)業(yè)務(wù)組裝后,通知相應(yīng)的客戶端進(jìn)行導(dǎo)出數(shù)據(jù)的下載。
數(shù)據(jù)業(yè)務(wù)組裝為將從數(shù)據(jù)庫獲得結(jié)果集進(jìn)行格式轉(zhuǎn)換,生成如csv、excel等形式的文件。
本發(fā)明的全量數(shù)據(jù)導(dǎo)出方法10可基于多線程執(zhí)行不同全量數(shù)據(jù)導(dǎo)出請求的數(shù)據(jù)導(dǎo)出操作,可有效處理并發(fā)的全量數(shù)據(jù)導(dǎo)出請求,提高了數(shù)據(jù)導(dǎo)出操作效率,降低了用戶的等待時間;此外,本發(fā)明的全量數(shù)據(jù)導(dǎo)出方法10在獲得從數(shù)據(jù)庫返回的結(jié)果集,并進(jìn)行業(yè)務(wù)組裝后,通知用戶下載,而不是如現(xiàn)有技術(shù)中以響應(yīng)流的形式直接返回導(dǎo)出的數(shù)據(jù)。這 樣,用戶在發(fā)起全量數(shù)據(jù)導(dǎo)出請求后,無需如現(xiàn)有技術(shù)中一樣必須等待在當(dāng)前頁面中,以等待導(dǎo)出數(shù)據(jù)的返回。
應(yīng)清楚地理解,本發(fā)明描述了如何形成和使用特定示例,但本發(fā)明的原理不限于這些示例的任何細(xì)節(jié)。相反,基于本發(fā)明公開的內(nèi)容的教導(dǎo),這些原理能夠應(yīng)用于許多其它實(shí)施方式。
圖2是根據(jù)一示例性實(shí)施方式示出的另一種全量數(shù)據(jù)導(dǎo)出方法的流程圖,該全量數(shù)據(jù)導(dǎo)出方法同樣可以應(yīng)用于服務(wù)器中。如圖2所示,全量數(shù)據(jù)導(dǎo)出方法20包括:
在步驟s202中,接收用戶通過客戶端發(fā)送的全量數(shù)據(jù)導(dǎo)出請求。
該客戶端例如可以為web客戶端,也可以為wap客戶端。服務(wù)器可以分時接收到不同客戶端發(fā)送的全量數(shù)據(jù)導(dǎo)出請求,也可以是同時收到不同客戶端發(fā)送的全量數(shù)據(jù)導(dǎo)出請求。
在步驟s204中,記錄發(fā)起該全量數(shù)據(jù)導(dǎo)出請求的用戶信息。
用戶信息例如可以包括:具有不重復(fù)唯一性的用戶編號、用戶名等。
在步驟s206中,通過主線程向客戶端返回確認(rèn)消息,以提示用戶導(dǎo)出操作正在執(zhí)行。
用戶通過瀏覽器收到該提示信息后,可以繼續(xù)其他操作,而無需長時間停留在該頁面等待返回的導(dǎo)出數(shù)據(jù),提升了交互的友好性。
在步驟s208中,為該全量數(shù)據(jù)導(dǎo)出請求分配數(shù)據(jù)導(dǎo)出線程。
服務(wù)器具有多個數(shù)據(jù)導(dǎo)出線程,以利用多線程操作處理不同的全量數(shù)據(jù)導(dǎo)出請求。以web服務(wù)器為例,web服務(wù)器每收到一個用戶通過web客戶端(如瀏覽器)發(fā)送的全量數(shù)據(jù)導(dǎo)出請求,就為該全量數(shù)據(jù)導(dǎo)出請求分配一個空閑的數(shù)據(jù)導(dǎo)出線程。
在步驟s210中,基于多線程操作,通過各數(shù)據(jù)導(dǎo)出線程分別執(zhí)行數(shù)據(jù)導(dǎo)出操作,向數(shù)據(jù)庫發(fā)送獲取數(shù)據(jù)請求。
數(shù)據(jù)導(dǎo)出操作包括:進(jìn)行導(dǎo)出數(shù)據(jù)量的分析,當(dāng)該導(dǎo)出數(shù)據(jù)量超過系統(tǒng)設(shè)置的單次獲取數(shù)據(jù)量最大值時,自動進(jìn)行批次拆分操作,根據(jù)數(shù)據(jù)量,分次向數(shù)據(jù)庫發(fā)送獲取數(shù)據(jù)請求。通過設(shè)置最大單次獲取數(shù)據(jù)量,可以減少對網(wǎng)絡(luò)帶寬的占用,降低數(shù)據(jù)庫執(zhí)行壓力,減少數(shù)據(jù)庫操 作時間,提高數(shù)據(jù)處理效率。
在步驟s212中,從數(shù)據(jù)庫獲取數(shù)據(jù)后,對獲取的結(jié)果集進(jìn)行數(shù)據(jù)業(yè)務(wù)組裝,并與發(fā)起全數(shù)據(jù)導(dǎo)出請求的用戶信息進(jìn)行關(guān)聯(lián)。
數(shù)據(jù)業(yè)務(wù)組裝為將從數(shù)據(jù)庫獲得結(jié)果集進(jìn)行格式轉(zhuǎn)換,生成如csv、excel等形式的文件。數(shù)據(jù)業(yè)務(wù)組裝后,還可以按目錄規(guī)則將其保存在服務(wù)器磁盤中,將文件路徑保存在數(shù)據(jù)庫中,并在數(shù)據(jù)庫進(jìn)行執(zhí)行完成的標(biāo)記記錄。
在步驟s214中,通知相應(yīng)的客戶端進(jìn)行導(dǎo)出數(shù)據(jù)的下載。
用戶在收到提醒后,可以進(jìn)行導(dǎo)出數(shù)據(jù)的下載,這樣用戶能夠感知到的只有下載時間,從而進(jìn)一步提高了交互的友好性。
在步驟s216中,接收用戶的數(shù)據(jù)下載請求。
在步驟s218中,將導(dǎo)出的數(shù)據(jù)返回給該用戶。
本領(lǐng)域技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施方式的全部或部分步驟被實(shí)現(xiàn)為由cpu執(zhí)行的計算機(jī)程序。在該計算機(jī)程序被cpu執(zhí)行時,執(zhí)行本發(fā)明提供的上述方法所限定的上述功能。所述的程序可以存儲于一種計算機(jī)可讀存儲介質(zhì)中,該存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
此外,需要注意的是,上述附圖僅是根據(jù)本發(fā)明示例性實(shí)施方式的方法所包括的處理的示意性說明,而不是限制目的。易于理解,上述附圖所示的處理并不表明或限制這些處理的時間順序。另外,也易于理解,這些處理可以是例如在多個模塊中同步或異步執(zhí)行的。
下述為本發(fā)明裝置實(shí)施例,可以用于執(zhí)行本發(fā)明方法實(shí)施例。對于本發(fā)明裝置實(shí)施例中未披露的細(xì)節(jié),請參照本發(fā)明方法實(shí)施例。
圖3是根據(jù)一示例性實(shí)施方式示出的一種全量數(shù)據(jù)導(dǎo)出裝置的框圖,該全量數(shù)據(jù)導(dǎo)出裝置可以應(yīng)用于一服務(wù)器中。如圖1所示,全量數(shù)據(jù)導(dǎo)出裝置30包括:用戶接口模塊302、用戶提示模塊304、線程分配模塊306、導(dǎo)出操作模塊308及下載通知模塊310。
其中,用戶接口模塊302用于接收用戶通過客戶端發(fā)送的全量數(shù)據(jù)導(dǎo)出請求。
用戶提示模塊304用于通過主線程向該客戶端返回確認(rèn)消息,以提示用戶數(shù)據(jù)導(dǎo)出操作正在執(zhí)行。
線程分配模塊306用于為該全量數(shù)據(jù)導(dǎo)出請求分配數(shù)據(jù)導(dǎo)出線程。
導(dǎo)出操作模塊308用于基于多線程操作,通過各數(shù)據(jù)導(dǎo)出線程分別執(zhí)行數(shù)據(jù)導(dǎo)出操作,向數(shù)據(jù)庫發(fā)送獲取數(shù)據(jù)請求。
下載通知模塊310用于從數(shù)據(jù)庫獲取數(shù)據(jù)并進(jìn)行數(shù)據(jù)業(yè)務(wù)組裝后,通知相應(yīng)的客戶端進(jìn)行導(dǎo)出數(shù)據(jù)的下載。
本發(fā)明的全量數(shù)據(jù)導(dǎo)出裝置30可基于多線程執(zhí)行不同全量數(shù)據(jù)導(dǎo)出請求的數(shù)據(jù)導(dǎo)出操作,可有效處理并發(fā)的全量數(shù)據(jù)導(dǎo)出請求,提高了數(shù)據(jù)導(dǎo)出操作效率,降低了用戶的等待時間;此外,本發(fā)明的全量數(shù)據(jù)導(dǎo)出裝置30在獲得從數(shù)據(jù)庫返回的結(jié)果集,并進(jìn)行業(yè)務(wù)組裝后,通知用戶下載,而不是如現(xiàn)有技術(shù)中以響應(yīng)流的形式直接返回導(dǎo)出的數(shù)據(jù)。這樣,用戶在發(fā)起全量數(shù)據(jù)導(dǎo)出請求后,無需如現(xiàn)有技術(shù)中一樣必須等待在當(dāng)前頁面中,以等待導(dǎo)出數(shù)據(jù)的返回。
圖4是根據(jù)一示例性實(shí)施方式示出的另一種全量數(shù)據(jù)導(dǎo)出裝置的框圖,該全量數(shù)據(jù)導(dǎo)出裝置同樣可以應(yīng)用于一服務(wù)器中。與圖3所示的全量數(shù)據(jù)導(dǎo)出裝置30不同的是,圖4所示的全量數(shù)據(jù)導(dǎo)出裝置40中的導(dǎo)出操作模塊408包括:數(shù)據(jù)量分析子模塊4082及數(shù)據(jù)請求拆分子模塊4084。
其中,數(shù)據(jù)量分析子模塊4082用于進(jìn)行全量數(shù)據(jù)導(dǎo)出請求的導(dǎo)出數(shù)據(jù)量分析。
數(shù)據(jù)請求拆分子模塊4084用于當(dāng)數(shù)據(jù)量分析子模塊4082分析出的導(dǎo)出數(shù)據(jù)量超過預(yù)設(shè)的單次獲取數(shù)據(jù)量的最大值時,根據(jù)數(shù)據(jù)量,分次向數(shù)據(jù)庫發(fā)送獲取數(shù)據(jù)請求。
在一些實(shí)施例中,全量數(shù)據(jù)導(dǎo)出裝置40還包括:用戶信息記錄模塊(圖中未示出)及用戶信息關(guān)聯(lián)模塊圖中未示出。用戶信息記錄模塊用于記錄發(fā)送全量數(shù)據(jù)導(dǎo)出請求的用戶信息。用戶信息關(guān)聯(lián)模塊用于當(dāng)從數(shù)據(jù)庫獲取數(shù)據(jù)并進(jìn)行數(shù)據(jù)業(yè)務(wù)組裝后,將經(jīng)數(shù)據(jù)業(yè)務(wù)組裝后的數(shù)據(jù)與用戶信息進(jìn)行關(guān)聯(lián)。
在一些實(shí)施例中,全量數(shù)據(jù)導(dǎo)出裝置40還包括:數(shù)據(jù)存儲模塊(圖 中未示出)及數(shù)據(jù)庫標(biāo)記模塊(圖中未示出)。數(shù)據(jù)存儲模塊用于將經(jīng)數(shù)據(jù)業(yè)務(wù)組裝后的數(shù)據(jù)按目錄規(guī)則進(jìn)行存儲及將存儲路徑保存在數(shù)據(jù)庫中。數(shù)據(jù)庫標(biāo)記模塊用于在數(shù)據(jù)庫中進(jìn)行執(zhí)行完成的標(biāo)記記錄。
在一些實(shí)施例中,用戶接口模塊302還用于接收用戶通過客戶端發(fā)送的數(shù)據(jù)下載請求,及將相應(yīng)的導(dǎo)出數(shù)據(jù)返回給該客戶端。
需要注意的是,上述附圖中所示的框圖是功能實(shí)體,不一定必須與物理或邏輯上獨(dú)立的實(shí)體相對應(yīng)??梢圆捎密浖问絹韺?shí)現(xiàn)這些功能實(shí)體,或在一個或多個硬件模塊或集成電路中實(shí)現(xiàn)這些功能實(shí)體,或在不同網(wǎng)絡(luò)和/或處理器裝置和/或微控制器裝置中實(shí)現(xiàn)這些功能實(shí)體。
此外,本發(fā)明還提供了一種全量數(shù)據(jù)導(dǎo)出系統(tǒng),例如可以為服務(wù)器、個人計算機(jī)、移動終端、或者網(wǎng)絡(luò)設(shè)備等,其包括:處理器和存儲器。其中存儲器可以是只讀存儲器,磁盤或光盤等,用于存儲該處理器的可執(zhí)行指令。該處理器配置為經(jīng)由執(zhí)行可執(zhí)行指令來執(zhí)行上述本發(fā)明實(shí)施方式的各方法。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員易于理解,這里描述的示例實(shí)施方式可以通過軟件實(shí)現(xiàn),也可以通過軟件結(jié)合必要的硬件的方式來實(shí)現(xiàn)。因此,根據(jù)本發(fā)明實(shí)施方式的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲在一個非易失性存儲介質(zhì)(可以是cd-rom,u盤,移動硬盤等)中或網(wǎng)絡(luò)上,包括若干指令以使得一臺計算設(shè)備(可以是個人計算機(jī)、服務(wù)器、移動終端、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行根據(jù)本發(fā)明實(shí)施方式的方法。
以上具體地示出和描述了本發(fā)明的示例性實(shí)施方式。應(yīng)可理解的是,本發(fā)明不限于這里描述的詳細(xì)結(jié)構(gòu)、設(shè)置方式或?qū)崿F(xiàn)方法;相反,本發(fā)明意圖涵蓋包含在所附權(quán)利要求的精神和范圍內(nèi)的各種修改和等效設(shè)置。