System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及大數據處理,尤其涉及分區表數據處理方法、裝置、計算機設備及可讀存儲介質。
技術介紹
1、目前數據庫中每個小時的數據量能夠達到百萬級、甚至千萬級,故而為了便于管理數據庫中的數據,數據表通常按小時分區,這種數據管理模式在查詢數據時需消耗較長時間;可想而知,若將數據表中的數據存儲于文件中,則需消耗大量的時間。現有的數據導出方法對于數據庫中的數據表導出而言需要花費大量的時間,同時在導出數據過程中由于數據過大也可能出現內存溢出的情況,并且導出的文件也可能由于過大而無法打開。
技術實現思路
1、針對數據表中大量數據采用現有的數據導出方法需要花費大量的時間,且內存容易溢出的問題,現提供一種旨在可快速導出數據,避免內存溢出的分區表數據處理方法、裝置、計算機設備及可讀存儲介質。
2、本專利技術提供了一種分區表數據處理方法,包括以下步驟:
3、響應于數據導出請求,獲取待導出的目標分區表名;
4、根據所述數據導出請求生成與所述數據導出請求關聯的鍵值及相應目標文件夾;
5、啟動第一線程池,將與所述數據導出請求關聯的所有目標分區表名對應的目標分區表分別寫入相應的分區文件中,所述分區文件存儲于所述目標文件夾中;
6、將所述目標文件夾中所有的所述分區文件合并為目標文件,再將所述目標文件拆分為固定長度的目標子文件。
7、優選的,所述響應于數據導出請求,獲取待導出的目標分區表名,包括:
8、所述數據導出請求包括導出時間
9、查詢數據庫,獲取與所述導出時間段及所述目標分區表名前綴匹配的目標分區表名。
10、優選的,所述根據所述數據導出請求生成與所述數據導出請求關聯的鍵值及相應目標文件夾,包括:
11、所述數據導出請求還包括當前時間;
12、根據所述數據導出請求生成唯一所述鍵值;
13、根據所述鍵值和所述當前時間,創建與目標分區表名關聯的所述目標文件夾,及與所述目標文件夾對應的存儲路徑;
14、所述目標文件夾的格式為當前時間_鍵值;
15、所述存儲路徑與所述目標分區表名前綴關聯。
16、優選的,所述啟動第一線程池,將與所述數據導出請求關聯的所有目標分區表名對應的目標分區表分別寫入相應的分區文件中,包括:
17、所述第一線程池中的每一第一線程至少對應一張目標分區表;
18、通過所述第一線程將相應的所述目標分區表寫入對應的所述分區文件中。
19、優選的,所述通過所述第一線程將相應的所述目標分區表寫入對應的所述分區文件中,包括:
20、根據所述數據導出請求查詢所述目標分區表中的總記錄條數;
21、判斷所述總記錄條數是否大于或等于條數閾值;
22、若所述總記錄條數小于所述條數閾值,通過所述第一線程將所述目標分區表中的記錄數據寫入對應的所述分區文件中;
23、若所述總記錄條數大于或等于條數閾值,根據所述總記錄條數和所述條數閾值計算記錄頁數,根據所述記錄頁數對所述目標分區表中的數據進行分頁;
24、啟動第二線程池,將所述目標分區表中所有分頁的記錄數據分別寫入相應的分片文件中,所述分片文件存儲于所述目標文件夾中,每一分頁關聯一所述分片文件;
25、將所有所述分片文件合并生成所述分區文件。
26、優選的,所述啟動第二線程池,將所述目標分區表中所有分頁的記錄數據分別寫入相應的分片文件中,包括:
27、所述第二線程池中的每一第二線程至少對應一頁分頁;
28、通過所述第二線程將相應分頁的記錄數據分別寫入關聯的分片文件中。
29、優選的,所述將所有所述分片文件合并生成所述分區文件,包括:
30、采用filechannel類將所有所述分片文件合并生成所述分區文件。
31、優選的,所述將所述目標文件夾中所有的所述分區文件合并為目標文件,再將所述目標文件拆分為固定長度的目標子文件,包括:
32、采用filechannel類將所述目標文件夾中所有的所述分區文件合并為目標文件;
33、采用filechannel類將所述目標文件拆分為固定長度的目標子文件。
34、優選的,還包括:
35、將所述目標子文件壓縮保存于所述目標文件夾中。
36、本專利技術還提供了一種分區表數據處理裝置,包括:
37、獲取單元,用于根據數據導出請求,獲取待導出的目標分區表名;
38、生成單元,用于根據所述數據導出請求生成與所述數據導出請求關聯的鍵值及相應目標文件夾;
39、寫入單元,用于啟動第一線程池,將與所述數據導出請求關聯的所有目標分區表名對應的目標分區表分別寫入相應的分區文件中,所述分區文件存儲于所述目標文件夾中;
40、合并單元,用于將所述目標文件夾中所有的所述分區文件合并為目標文件;
41、拆分單元,用于將所述目標文件拆分為固定長度的目標子文件。
42、本專利技術還提供了一種計算機設備,所述計算機設備,包括存儲器、處理器以及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執行所述計算機程序時實現上述方法的步驟。
43、本專利技術還提供了一種計算機可讀存儲介質,其上存儲有計算機程序,所述計算機程序被處理器執行時實現上述方法的步驟。
44、上述技術方案的有益效果:
45、本技術方案中,本專利技術的分區表數據處理方法能夠根據數據導出請求,獲取待導出的目標分區表名;根據數據導出請求生成與數據導出請求關聯的唯一鍵值及相應的用于存儲導出數據的目標文件夾;采用第一線程池的并行處理方式,將與數據導出請求關聯的所有目標分區表名對應的目標分區表分別寫入相應的分區文件中,進而提高數據的導出效率,縮短數據導出時間,能夠有效的實現內存管理,減少內存溢出的風險,同時提高數據處理性能;通過先將目標文件夾中所有的分區文件合并為目標文件,再將目標文件拆分為固定長度的目標子文件的方式,保證了導出的所有數據文件的一致性,避免數據混亂的風險。
本文檔來自技高網...【技術保護點】
1.一種分區表數據處理方法,其特征在于,包括:
2.根據權利要求1所述的分區表數據處理方法,其特征在于,所述響應于數據導出請求,獲取待導出的目標分區表名,包括:
3.根據權利要求2所述的分區表數據處理方法,其特征在于,所述根據所述數據導出請求生成與所述數據導出請求關聯的鍵值及相應目標文件夾,包括:
4.根據權利要求1所述的分區表數據處理方法,其特征在于,所述啟動第一線程池,將與所述數據導出請求關聯的所有目標分區表名對應的目標分區表分別寫入相應的分區文件中,包括:
5.根據權利要求4所述的分區表數據處理方法,其特征在于,所述通過所述第一線程將相應的所述目標分區表寫入對應的所述分區文件中,包括:
6.根據權利要求5所述的分區表數據處理方法,其特征在于,所述啟動第二線程池,將所述目標分區表中所有分頁的記錄數據分別寫入相應的分片文件中,包括:
7.根據權利要求5所述的分區表數據處理方法,其特征在于,所述將所有所述分片文件合并生成所述分區文件,包括:
8.根據權利要求1所述的分區表數據處理方法,其特征在于,
9.根據權利要求1所述的分區表數據處理方法,其特征在于,還包括:
10.一種分區表數據處理裝置,其特征在于,包括:
11.一種計算機設備,所述計算機設備,包括存儲器、處理器以及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執行所述計算機程序時實現權利要求1至9任一項所述方法的步驟。
12.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于:所述計算機程序被處理器執行時實現權利要求1至9任一項所述方法的步驟。
...【技術特征摘要】
1.一種分區表數據處理方法,其特征在于,包括:
2.根據權利要求1所述的分區表數據處理方法,其特征在于,所述響應于數據導出請求,獲取待導出的目標分區表名,包括:
3.根據權利要求2所述的分區表數據處理方法,其特征在于,所述根據所述數據導出請求生成與所述數據導出請求關聯的鍵值及相應目標文件夾,包括:
4.根據權利要求1所述的分區表數據處理方法,其特征在于,所述啟動第一線程池,將與所述數據導出請求關聯的所有目標分區表名對應的目標分區表分別寫入相應的分區文件中,包括:
5.根據權利要求4所述的分區表數據處理方法,其特征在于,所述通過所述第一線程將相應的所述目標分區表寫入對應的所述分區文件中,包括:
6.根據權利要求5所述的分區表數據處理方法,其特征在于,所述啟動第二線程池,將所述目標分區表中所有分頁的記錄數據分別寫入相應的分...
【專利技術屬性】
技術研發人員:魏瑩,丁軼,
申請(專利權)人:上海寰創通信科技股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。