新四季網

一種數據導出的方法和裝置的製作方法

2023-08-09 22:37:51

專利名稱:一種數據導出的方法和裝置的製作方法
技術領域:
本申請涉及軟體測試領域,特別涉及一種數據導出的方法和裝置。
背景技術:
在企業級應用系統中,經常需要將資料庫中保存的部分或全部原始數據進行導 出,即是轉換為其他格式的數據文件,以便於後續的閱讀或修改。現有技術中,有一種單線程導出數據的方法,當接收到用戶的一個導出操作請求 時,需要根據該導出操作請求從資料庫中查詢相應的數據,然後再將查詢到的數據寫入到 文本文件中,並將該文本文件轉換為目標格式的文件,轉換時可以採用修改文件擴展名等 方式。但是,該方法存在的缺點,一個導出操作請求僅由一個線程單獨響應完成,當需要 導出的數據量較大時,因為每次只能啟動一個線程進行導出,就會使得從資料庫中查詢數 據的過程非常慢,同時將數據寫入到文本文件的響應時間也過長,這就降低了數據導出效率。總之,目前需要本領域技術人員迫切解決的一個技術問題就是如何能夠創新的 提出一種數據導出的方法,以解決現有技術中在需要導出大數據量的情況下,導致的數據 導出效率較低的問題。

發明內容
本申請所要解決的技術問題是提供一種數據導出的方法,用以解決現有技術中在 需要導出大數據量的情況下,導致的數據導出效率較低的問題。本申請還提供了一種數據導出的裝置,用以保證上述方法在實際中的實現及應用。為了解決上述問題,本申請公開了一種數據導出的方法,包括接收待導出數據的導出條件和導出配置信息,所述導出配置信息包括單個任務的 最大線程數,和,每個線程的單次記錄數;根據所述導出條件、最大線程數和單次記錄數生成導出任務;依據所述導出任務對所述待導出數據進行導出。優選的,所述導出配置信息還包括緩存失效時間;則所述方法還包括根據所述導出條件從資料庫中獲取所述待導出數據的第一記錄數;比較所述第一記錄數與上一次相同導出條件下保存的第二記錄數;當所述第一記錄數與第二記錄數相等時,判斷所述上一次進行導出操作時的導出 時間是否在所述緩存失效時間內;如果否,則執行所述根據所述導出條件、最大線程數和單次記錄數生成導出任務 的步驟。
優選的,所述依據所述導出任務對所述待導出數據進行導出之後,還包括保存本次導出時的導出條件和記錄總數。優選的,所述根據所述導出條件、最大線程數和單次記錄數生成導出任務,具體包 括根據所述導出條件從資料庫中獲取所述待導出數據的第一記錄數;根據所述單次記錄數和所述第一記錄數,計算當前任務的線程個數;按照所述線程個數創建線程,並按照所述單次記錄數為每個所述創建的線程分配 數據區間;按照所述數據區間啟動所述創建的每一個線程。優選的,所述依據所述導出任務對所述待導出數據進行導出,具體包括獲取每個線程的數據區間對應的待導出數據;調用相應的目標格式文件組件,將所述待導出數據生成對應個數的目標格式的文 件。優選的,所述依據所述導出任務和導出條件對所述待導出數據進行導出之後,還 包括在同步模式下,直接將所述導出的結果文件返回至客戶端。本申請公開了一種數據導出的裝置,包括接收模塊,用於接收待導出數據的導出條件和導出配置信息,所述導出配置信息 包括單個任務的最大線程數,和,每個線程的單次記錄數;生成模塊,用於根據所述導出條件、最大線程數和單次記錄數生成導出任務;導出模塊,用於依據所述導出任務對所述待導出數據進行導出。優選的,所述裝置還包括獲取模塊,用於從資料庫中獲取所述待導出數據的第一記錄數;比較模塊,用於比較所述第一記錄數與上一次相同導出條件下導出時的第二記錄 數;判斷模塊,用於當所述第一記錄數與第二記錄數相等時,判斷所述上一次進行導 出操作時的導出時間是否在所述緩存失效時間內;執行模塊,用於當所述判斷模塊的結果為否時,執行所述根據所述最大線程數和 單次記錄數生成導出任務的步驟。優選的,還包括保存模塊,用於保存本次導出時的導出條件和導出的記錄總數。優選的,所述生成模塊具體包括第一獲取子模塊,用於從資料庫中獲取所述待導出數據的第一記錄數;計算子模塊,用於根據所述單次記錄數和所述第一記錄數,計算當前任務的線程 個數;創建線程子模塊,用於按照所述線程個數創建線程,並按照所述單次記錄數為每 個所述創建的線程分配數據區間;啟動線程子模塊,用於按照所述數據區間啟動所述創建的每一個線程。優選的,所述導出模塊具體包括
第二獲取子模塊,用於獲取每個線程的數據區間對應的待導出數據;生成子模塊,用於調用相應的目標格式文件組件,將所述待導出數據生成對應個 數的目標格式的文件。優選的,還包括返回模塊,用於在同步模式下,直接將所述導出的結果文件返回至客戶端。與現有技術相比,本申請包括以下優點在本申請實施例中,通過待導出數據的導出條件和導出配置信息,所述導出配置 信息包括單個任務的最大線程數,和,每個線程的單次記錄數;可以由根據所述導出條件、 最大線程數和單次記錄數生成導出任務;依據所述導出任務對所述待導出數據進行導出。 在本申請實施例中,所述最大線程數即為當前導出操作請求可以分配的線程個數,即是通 過將當前導出操作分配至多個線程來完成,由此,避免了在大數據量情況下,單線程操作的 響應時間過長的問題,提高了大數據量的導出效率。當然,實施本申請的任一產品並不一定 需要同時達到以上所述的所有優點。


為了更清楚地說明本申請實施例或現有技術中的技術方案,下面將對實施例或現 有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 申請的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可
以根據這些附圖獲得其他的附圖。
圖1是本申請的--種·〔據導出的方法實施例1的流程圖2是本申請的--種·〔據導出的方法實施例2的流程圖3是本申請的--種·〔據導出的方法實施例3的流程圖4是本申請的--種·〔據導出的裝置實施例1的結構框圖
圖5是本申請的--種·〔據導出的裝置實施例2的結構框圖
圖6是本申請的-一種·〔據導出的裝置實施例3的結構框圖。
具體實施例方式下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例。基於 本申請中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他 實施例,都屬於本申請保護的範圍。本申請可用於眾多通用或專用的計算裝置環境或配置中。例如個人計算機、服務 器計算機、手持設備或可攜式設備、平板型設備、多處理器裝置、包括以上任何裝置或設備 的分布式計算環境等等。本申請可以在由計算機執行的計算機可執行指令的一般上下文中描述,例如程序 模塊。一般地,程序模塊包括執行特定任務或實現特定抽象數據類型的例程、程序、對象、組 件、數據結構等等。也可以在分布式計算環境中實踐本申請,在這些分布式計算環境中,由 通過通信網絡而被連接的遠程處理設備來執行任務。在分布式計算環境中,程序模塊可以 位於包括存儲設備在內的本地和遠程計算機存儲介質中。
本申請的主要思想包括,本申請實施例中採用多個線程來處理用戶的每一個導出 請求,即是通過接收到的導出配置信息,所述導出配置信息包括單個任務的最大線程數, 和,每個線程的單次記錄數,並根據所述最大線程數和單次記錄數,還有待導出數據的導出 條件生成導出任務;最後依據所述導出任務對所述待導出數據進行導出。由於所述單個任 務的最大線程數即是當前導出操作任務可以分配的最大線程個數,這樣就可以通過最大線 程數,以及每一個線程的單次記錄數來生成導出任務,從而無需在大數據量的情況下,採用 多線程導出的方式,就減少了導出操作請求的響應時間,從而提高了數據的導出效率。參考圖1,示出了本申請一種數據導出的方法實施例1的流程圖,可以包括以下步 驟步驟101 接收待導出數據的導出條件和導出配置信息,所述導出配置信息包括 單個任務的最大線程數,和,每個線程的單次記錄數;在本實施例中,所述待導出數據的導出條件可以理解為導出結果文件的篩選條 件,例如資料庫中存儲有大量的客戶數據,其中客戶數據中包括客戶所屬地區及所屬行 業。若要導出某一地區A的某一行業B的客戶數據,則A和B即為該導出操作的導出條件, 所述客戶數據則為待導出數據,所述待導出數據存放在資料庫中;因為本申請實施例中採 用多個線程來處理用戶的一個導出請求,則所述導出配置信息可以包括單個任務的最大 線程數和每個線程的單次記錄數;所述單個任務的最大線程數為用戶的每一個導出請求可 以分配的最大線程數目,所述每個線程的單次記錄數為每一個線程能夠處理的記錄數目, 所述記錄是資料庫的一個基本概念,在實際中一個記錄就對應資料庫中的一行原始數據; 就前面例子而言,一個記錄就是一個客戶數據;例如,當最大線程數為80,單次記錄數為10 萬時,表示用戶的每個導出請求最多可以分配給80個線程來處理,每一個線程最多可以處 理10萬個記錄;當待導出數據為客戶數據,所述記錄的總數即為客戶的總數;步驟102 根據所述導出條件、最大線程數和單次記錄數生成導出任務;在本步驟中,具體可以通過導出條件從資料庫中獲取到所述待導出數據的記錄 數,即是對所述待導出數據進行導出時的總記錄數,在本申請實施例中稱為第一記錄數;其 中,所述待導出數據的記錄數和資料庫中的數據區間一一對應,所述數據區間即是與記錄 數對應的資料庫中的待處理數據;同時根據所述最大線程數可以為用戶的該次導出請求創 建相應個數的線程,再根據所述第一記錄數和單次記錄數為所述創建的線程分配記錄數, 所述第一記錄數與所述單次記錄數相除的商即是當前任務所需的線程個數;例如,當查詢到所述第一記錄數為16萬時,而每個線程的單次記錄數為10萬個, 則需要創建兩個線程,第一個線程處理10萬個記錄,第二個線程處理6萬個記錄;步驟103 依據所述導出任務對所述待導出數據進行導出。啟動所述創建的每一個線程之後,根據所述記錄數對應的數據區間,調用相應的 目標格式文件組件將所述待導出數據生成目標格式的文件,例如,EXCEL文件。所述數據區 間為在資料庫中的具體是從哪一行到哪一行的一塊區間數據,所述記錄數是多少個,則在 資料庫中對應的數據區間就有多少行數據;其中,需要說明的是,每一個線程對應一個目標 格式的文件,在步驟102中創建了多少個線程,則本步驟中對應生成多少個目標格式的文 件,則需要根據前面的兩個線程生成兩個EXCEL文件。在實際應用中,在同步模式下,可以直接將所述導出的結果文件返回至客戶端,如果是異步模式下,則系統可以不返回該導出的結果文件給客戶端,可以保存在文件系統中, 用戶在後續需要該導出結果文件時,可以通過結果管理組件提供的導出結果下載頁面來從 文件系統中查詢結果文件。在本實施例中,將用戶發起的一次導出請求操作,通過多個線程來實現數據的導 出,和現有技術中單線程處理導出請求操作相比,可以在待導出數據的數據量較大的時候, 能夠減少系統的響應時間,從而提高待導出數據的導出效率。參考圖2,示出了本申請一種數據導出的方法實施例2的流程圖,可以包括以下步 驟步驟201 接收待導出數據的導出條件和導出配置信息,所述導出配置信息包括 單個任務的最大線程數、緩存失效時間和每個線程的單次記錄數;在本實施例中,所述導出配置信息還可以包括緩存失效時間,所述緩存失效時間 為預先設定的一個時間參數,例如,可以為60分鐘,或12小時;所述緩存失效時間表示在該 段時間內,可以認為在相同導出條件下的相鄰兩次導出操作的導出數據是相同的;即是如 果相同導出條件下的相鄰兩次導出操作的導出數據儘管內容是一致的,但是如果兩次間隔 時間超出了所述緩存失效時間,則在實際中就認為這兩次的導出數據並不是相同的;其中, 所述緩存失效時間可以根據對於待導出數據的精度要求,或者資料庫中待導出數據的讀寫 特點進行設定;所述緩存失效時間越短則精度越高;例如,當資料庫中「寫」的操作較多,就 可以將緩存失效時間適當調小一點,如果「寫」的操作較少,一兩天內都不會更新,則可以適 當的將所述緩存失效時間適當的調大一點;具體緩存失效時間的設置可以根據統計資料庫 中相鄰兩次「寫」操作的平均時間間隔設定,可以設置緩存失效時間小於相鄰兩次「寫」操 作的平均時間間隔。所述單個任務的最大線程數、緩存失效時間和每個線程的單次記錄數可以根據需 要預先設定,當然還可以採用默認值,例如,所述最大線程數的默認值為80,所述單次記錄 數默認值為10萬個,所述緩存失效時間的默認值為60分鐘;步驟202 根據所述導出條件從資料庫中獲取所述待導出數據的第一記錄數;所述資料庫中保存有待導出數據,根據導出條件可以查詢到相應的待導出數據, 所述資料庫中還包括有導出該待導出數據的第一記錄數;步驟203 比較所述第一記錄數與上一次相同導出條件下導出時的第二記錄數;獲取到上一次相同的導出條件下導出時的第二記錄數,該第二記錄數為相同導出 條件下與本次導出時間上最接近的一次導出操作時的記錄總數;步驟204 當所述第一記錄數與第二記錄數相等時,判斷所述上一次進行導出操 作時的導出時間是否在所述緩存失效時間內,如果否,則進入步驟205,如果是,則直接獲取 上一次的導出結果文件;當所述第一記錄數與所述第二記錄數相等時,則繼續判斷上一次進行導出操作時 的導出時間,是否在所述緩存失效時間內,如果在該緩存失效時間內,則表示上一次導出時 的數據與本次需要導出的待導出數據相同,則此時直接從文件系統中獲取到上一次的導出 結果文件,作為本次導出的導出結果文件即可;如果不在所述緩存失效時間內,則表示上一 次導出時的數據與本次的待導出數據並不相同,則進入步驟205;步驟205 根據所述導出任務、最大線程數和單次記錄數生成導出任務;
步驟206 依據所述導出任務對所述待導出數據進行導出。步驟207 保存本次導出時的導出條件和導出的記錄總數。在本實施例中,還需要將本次導出的導出條件和導出時的記錄總數記錄下來,以 便於下一次導出時,能夠根據保存的記錄總數來判斷是否需要直接返回已有的導出結果文 件。其中,當第一記錄數與第二記錄數相等時,記錄總數就與兩者均相等;當所述第一記錄 數與第二記錄數不相等時,所述記錄總數與所述第一記錄數相等。本實施例與上一個實施例的不同之處在於,本實施例可以提前判斷與本次導出操 作相鄰的導出操作是否與本次導出的導出條件相等,如果相同,則直接獲取到已有的導出 結果文件即可,如果不相等,則再進行待導出數據的導出操作,這樣就能夠在提高導出請求 的響應速度的同時,還能夠提高數據的導出效率。參考圖3,示出了本申請一種數據導出的方法實施例3的流程圖,可以包括以下步 驟步驟301 接收待導出數據的導出條件和導出配置信息,所述導出配置信息包括 單個任務的最大線程數,和,每個線程的單次記錄數;步驟302 根據所述導出條件從資料庫中獲取所述待導出數據的第一記錄數;步驟303 根據所述單次記錄數和所述第一記錄數,計算當前任務的線程個數;將所述第一記錄數與所述單次記錄數相除,所得的商即為當前任務需要啟動的線 程個數;如果得到的商為小數,則向上取整數作為商;步驟304 按照所述線程個數創建線程,並按照所述單次記錄數為每個所述創建 的線程分配數據區間;按照步驟303中創建的線程個數和單次記錄數為各個線程分配數據區間,例如, 當第一個線程的記錄數為10萬個時,則該第一個線程的數據區間的起始位置為第1個記錄 對應的待導出數據在資料庫中的位置,結束位置為第10萬個記錄對應的待導出數據在數 據庫中的位置;步驟305 按照所述數據區間啟動所述創建的每一個線程;按照所述為每個線程分配的數據區間啟動每一個線程,其中,所述線程的個數即 為數據區間的塊數,也即是將所有的待導出數據進行了分塊,每一個線程負責其中一塊待 導出數據的導出操作;步驟306 獲取每個線程的數據區間對應的待導出數據;根據數據區間從資料庫中查詢獲得對應的待導出數據;步驟307 調用相應的目標格式文件組件,將所述待導出數據生成對應個數的目 標格式的文件。可以調用相應的目標格式文件組件,例如EXCEL組件,來將該若干個待導出數據 生成對應個數的EXCEL格式的文件;本實施例還可以包括步驟308 在同步模式下,直接將所述導出的結果文件返回至客戶端。對於前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但 是本領域技術人員應該知悉,本申請並不受所描述的動作順序的限制,因為依據本申請,某 些步驟可以採用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬於優選實施例,所涉及的動作和模塊並不一定是本申請所必須的。與上述本申請一種數據導出的方法實施例1所提供的方法相對應,參見圖4,本申 請還提供了一種數據導出的裝置實施例1,在本實施例中,該裝置可以包括接收模塊401,用於接收待導出數據的導出條件和導出配置信息,所述導出配置信 息包括單個任務的最大線程數,和,每個線程的單次記錄數;在本實施例中,所述待導出數據的導出條件可以理解為導出結果文件的篩選條 件,例如資料庫中存儲有大量的客戶數據,其中客戶數據中包括客戶所屬地區及所屬行 業。若要導出某一地區A的某一行業B的客戶數據,則A和B即為該導出操作的導出條件, 所述客戶數據則為待導出數據,所述待導出數據存放在資料庫中;因為本申請實施例中採 用多個線程來處理用戶的一個導出請求,則所述導出配置信息可以包括單個任務的最大 線程數和每個線程的單次記錄數;所述單個任務的最大線程數為用戶的每一個導出請求可 以分配的最大線程數目,所述每個線程的單次記錄數為每一個線程能夠處理的記錄數目, 所述記錄是資料庫的一個基本概念,在實際中一個記錄就對應資料庫中的一行原始數據; 就前面例子而言,一個記錄就是一個客戶數據;生成模塊402,用於根據所述導出條件、最大線程數和單次記錄數生成導出任務;具體的,所述生成模塊502可以通過導出條件從資料庫中獲取到所述待導出數據 的記錄數,即是對所述待導出數據進行導出時的總記錄數,在本申請實施例中稱為第一記 錄數;其中,所述待導出數據的記錄數和資料庫中的數據區間一一對應,所述數據區間即是 與記錄數對應的資料庫中的待處理數據;同時根據所述最大線程數可以為用戶的該次導出 請求創建相應個數的線程,再根據所述第一記錄數和單次記錄數為所述創建的線程分配記 錄數,所述第一記錄數與所述單次記錄數相除的商即是當前任務所需的線程個數;導出模塊403,用於依據所述導出任務對所述待導出數據進行導出。啟動所述創建的每一個線程之後,根據所述記錄數對應的數據區間,調用相應的 目標格式文件組件將所述待導出數據生成目標格式的文件,需要說明的是,每一個線程對 應一個目標格式的文件。本實施例中,所述裝置可以通過多個線程來實現數據的導出,和現 有技術中單線程處理導出請求操作相比,可以在待導出數據的數據量較大的時候,能夠減 少系統的響應時間,從而提高待導出數據的導出效率。與上述本申請一種數據導出的方法實施例2所提供的方法相對應,參見圖5,本申 請還提供了一種數據導出的裝置的優選實施例2,在本實施例中,該裝置具體可以包括接收模塊501,用於接收待導出數據的導出條件和導出配置信息,所述導出配置信 息包括單個任務的最大線程數、緩存失效時間和每個線程的單次記錄數;在本實施例中,所述導出配置信息還可以包括緩存失效時間,所述緩存失效時間 為預先設定的一個時間參數,例如,可以為60分鐘,或12小時;所述緩存失效時間表示在該 時間內,相同導出條件的相鄰兩次導出操作的待導出數據相同;其中,所述緩存失效時間可 以根據對於待導出數據的精度要求,或者資料庫中待導出數據的讀寫特點進行設定;所述 緩存失效時間越短則精度越高;例如,當資料庫中「寫」的操作較多,就可以將緩存失效時間 適當調小一點,如果「寫」的操作較少,一兩天內都不會更新,則可以適當的將所述緩存失效 時間適當的調大一點;其中,所述導出配置信息在實際中還可以採用配置組件來實現。所述單個任務的最大線程數、緩存失效時間和每個線程的單次記錄數可以根據需要預先設定,當然還可以採用默認值,例如,所述最大線程數的默認值為80,所述單次記錄 數默認值為10萬個,所述緩存失效時間的默認值為60分鐘;獲取模塊502,用於從資料庫中獲取所述待導出數據的第一記錄數;所述資料庫中保存有待導出數據,根據導出條件可以查詢到相應的待導出數據, 所述資料庫中還包括有導出該待導出數據的第一記錄數;比較模塊503,用於比較所述第一記錄數與上一次相同導出條件下導出時的第二 記錄數;所述比較模塊503獲取到上一次相同的導出條件下導出時的第二記錄數,該第二 記錄數為相同導出條件下與本次導出時間上最接近的一次導出操作時的記錄總數;判斷模塊504,用於當所述第一記錄數與第二記錄數相等時,判斷所述上一次進行 導出操作時的導出時間是否在所述緩存失效時間內;當所述第一記錄數與所述第二記錄數相等時,則繼續判斷上一次進行導出操作時 的導出時間,是否在所述緩存失效時間內,如果在該緩存失效時間內,則表示上一次導出時 的數據與本次需要導出的待導出數據相同,則此時直接從文件系統中獲取到上一次的導出 結果文件,作為本次導出的導出結果文件即可;如果不在所述緩存失效時間內,則表示上一 次導出時的數據與本次的待導出數據並不相同;其中,需要說明的是,在實際應用中,前述四個模塊的功能可以通過緩存組件來實 現;執行模塊505,用於當所述判斷模塊的結果為否時,執行所述根據所述最大線程數 和單次記錄數生成導出任務的步驟。導出模塊506,用於依據所述導出任務對所述待導出數據進行導出。保存模塊507,用於保存本次導出時的導出條件和導出的記錄總數。在本實施例中,還需要由保存模塊607將本次導出的導出條件和導出時的記錄總 數記錄下來,以便於下一次導出時,能夠根據保存的記錄總數來判斷是否需要直接返回已 有的導出結果文件。其中,當第一記錄數與第二記錄數相等時,記錄總數就與兩者均相等; 當所述第一記錄數與第二記錄數不相等時,所述記錄總數與所述第一記錄數相等。與上述本申請一種數據導出的方法實施例2所提供的方法相對應,參見圖6,本申 請還提供了一種數據導出的裝置的優選實施例2,在本實施例中,該裝置具體可以包括接收模塊601,用於接收待導出數據的導出條件和導出配置信息,所述導出配置信 息包括單個任務的最大線程數,和,每個線程的單次記錄數;第一獲取子模塊602,用於從資料庫中獲取所述待導出數據的第一記錄數;計算子模塊603,用於根據所述單次記錄數和所述第一記錄數,計算當前任務的線 程個數;創建線程子模塊604,用於按照所述線程個數創建線程,並按照所述單次記錄數為 每個所述創建的線程分配數據區間;啟動線程子模塊605,用於按照所述數據區間啟動所述創建的每一個線程。第二獲取子模塊606,用於獲取每個線程的數據區間對應的待導出數據;生成子模塊607,用於調用相應的目標格式文件組件,將所述待導出數據生成對應 個數的目標格式的文件。
返回模塊608,用於在同步模式下,直接將所述導出的結果文件返回至客戶端。需要說明的是,本說明書中的各個實施例均採用遞進的方式描述,每個實施例重 點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。 對於裝置類實施例而言,由於其與方法實施例基本相似,所以描述的比較簡單,相關之處參 見方法實施例的部分說明即可。還需要說明的是,在本文中,諸如第一和第二等之類的關係術語僅僅用來將一個 實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間 存在任何這種實際的關係或者順序。術語「包括」、「包含」或者其任何其他變體意在涵蓋非 排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素, 而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固
有的要素。在沒有更多限制的情況下,由語句「包括一個......」限定的要素,並不排除在
包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。以上對本申請所提供的一種數據導出的方法和裝置進行了詳細介紹,本文中應用 了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解 本申請的方法及其核心思想;同時,對於本領域的一般技術人員,依據本申請的思想,在具 體實施方式及應用範圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本申請 的限制。
權利要求
1.一種數據導出的方法,其特徵在於,該方法包括接收待導出數據的導出條件和導出配置信息,所述導出配置信息包括單個任務的最大 線程數,和,每個線程的單次記錄數;根據所述導出條件、最大線程數和單次記錄數生成導出任務; 依據所述導出任務對所述待導出數據進行導出。
2.根據權利要求1所述的方法,其特徵在於,所述導出配置信息還包括緩存失效時間; 則所述方法還包括根據所述導出條件從資料庫中獲取所述待導出數據的第一記錄數; 比較所述第一記錄數與上一次相同導出條件下保存的第二記錄數; 當所述第一記錄數與第二記錄數相等時,判斷所述上一次進行導出操作時的導出時間 是否在所述緩存失效時間內;如果否,則執行所述根據所述導出條件、最大線程數和單次記錄數生成導出任務的步驟。
3.根據權利要求2所述的方法,其特徵在於,所述依據所述導出任務對所述待導出數 據進行導出之後,還包括保存本次導出時的導出條件和記錄總數。
4.根據權利要求1所述的方法,其特徵在於,所述根據所述導出條件、最大線程數和單 次記錄數生成導出任務,具體包括根據所述導出條件從資料庫中獲取所述待導出數據的第一記錄數; 根據所述單次記錄數和所述第一記錄數,計算當前任務的線程個數; 按照所述線程個數創建線程,並按照所述單次記錄數為每個所述創建的線程分配數據 區間;按照所述數據區間啟動所述創建的每一個線程。
5.根據權利要求4所述的方法,其特徵在於,所述依據所述導出任務對所述待導出數 據進行導出,具體包括獲取每個線程的數據區間對應的待導出數據;調用相應的目標格式文件組件,將所述待導出數據生成對應個數的目標格式的文件。
6.根據權利要求4所述的方法,其特徵在於,所述依據所述導出任務和導出條件對所 述待導出數據進行導出之後,還包括在同步模式下,直接將所述導出的結果文件返回至客戶端。
7.一種數據導出的裝置,其特徵在於,該裝置包括接收模塊,用於接收待導出數據的導出條件和導出配置信息,所述導出配置信息包括 單個任務的最大線程數,和,每個線程的單次記錄數;生成模塊,用於根據所述導出條件、最大線程數和單次記錄數生成導出任務; 導出模塊,用於依據所述導出任務對所述待導出數據進行導出。
8.根據權利要求7所述的裝置,其特徵在於,所述裝置還包括 獲取模塊,用於從資料庫中獲取所述待導出數據的第一記錄數;比較模塊,用於比較所述第一記錄數與上一次相同導出條件下導出時的第二記錄數; 判斷模塊,用於當所述第一記錄數與第二記錄數相等時,判斷所述上一次進行導出操作時的導出時間是否在所述緩存失效時間內;執行模塊,用於當所述判斷模塊的結果為否時,執行所述根據所述最大線程數和單次 記錄數生成導出任務的步驟。
9.根據權利要求7所述的裝置,其特徵在於,還包括保存模塊,用於保存本次導出時的導出條件和導出的記錄總數。
10.根據權利要求7所述的裝置,其特徵在於,所述生成模塊具體包括 第一獲取子模塊,用於從資料庫中獲取所述待導出數據的第一記錄數;計算子模塊,用於根據所述單次記錄數和所述第一記錄數,計算當前任務的線程個數;創建線程子模塊,用於按照所述線程個數創建線程,並按照所述單次記錄數為每個所 述創建的線程分配數據區間;啟動線程子模塊,用於按照所述數據區間啟動所述創建的每一個線程。
11.根據權利要求7所述的裝置,其特徵在於,所述導出模塊具體包括 第二獲取子模塊,用於獲取每個線程的數據區間對應的待導出數據;生成子模塊,用於調用相應的目標格式文件組件,將所述待導出數據生成對應個數的 目標格式的文件。
12.根據權利要求7所述的裝置,其特徵在於,還包括返回模塊,用於在同步模式下,直接將所述導出的結果文件返回至客戶端。
全文摘要
本申請提供了數據導出的方法和裝置,所述方法包括接收待導出數據的導出條件和導出配置信息,所述導出配置信息包括單個任務的最大線程數,和,每個線程的單次記錄數;根據所述導出條件、最大線程數和單次記錄數生成導出任務;依據所述導出任務對所述待導出數據進行導出。與現有技術不同的是,在本申請實施例中,所述方法及裝置避免了在大數據量情況下,單線程操作的響應時間過長的問題,提高了大數據量的導出效率。
文檔編號G06F9/38GK101996067SQ20091016648
公開日2011年3月30日 申請日期2009年8月19日 優先權日2009年8月19日
發明者奎躍翔 申請人:阿里巴巴集團控股有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀