• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    將文件拆分后并行加載數據入庫的方法技術

    技術編號:8656015 閱讀:275 留言:0更新日期:2013-05-01 23:42
    本發明專利技術公開了一種將文件拆分后并行加載數據入庫的方法,使用SQL?Loader將數據加載入庫,包括以下步驟:讀取控制文件和數據文件,生成日志文件、壞文件和廢棄文件;配置SQL?Loader的參數;根據配置參數,判斷需要加載的文件的記錄數是否大于參數配置的記錄限額值;根據參數配置的子文件記錄數值將需要加載的文件順序拆分為n個子文件;啟動數據裝載工具SQL?Loader的m個子進程對子文件進行并行加載,每個子進程對多個子文件進行串行加載。本發明專利技術的將文件拆分后并行加載數據入庫的方法,在SQL?Loader工具基礎上,更進一步優化海量數據加載入庫的性能。

    【技術實現步驟摘要】

    本專利技術涉及金融行業領域中面對大數據量的數據加載入庫的性能解決方案,尤其涉及一種。
    技術介紹
    隨著信息技術的迅猛發展,銀行業務領域越來越需要解決大數據量的數據加載入庫所帶來的性能優化問題。這些業務實時產生的數據量非常大,如果在應用程序中采用SQL語句插入方式裝載數據,將會耗費大量的時間,且不能保證數據的實時性和系統的穩定性。因此,在開發具有海量數據的業務系統時,常常采用數據裝載工具來進行海量數據的裝載。SQL Loader是Oracle提供的將文件中的數據裝載到數據庫中的有效工具。對于SQL Loader數據裝載方案的改進是業界廣泛關注的問題,其直接影響到海量數據加載入庫的性能最優化。現有技術中,雖然SQL Loader的技術應用方興未艾,但是限于海量數據本身的數據量大、信息量大、實時產生等特性,單純的SQL Loader加載數據不可避免的效率偏低。因此,無論是從數據加載過程,還是從數據源的處理,都需要加以改進,才能突破瓶頸。
    技術實現思路
    本專利技術所要解決的技術問題是,在SQL Loader工具基礎上,更進一步優化海量數據加載入庫的性能。為了解決上述技術問題,本專利技術提供了一種,使用Oracle提供的數據裝載工具SQL Loader將大數據量的文件中的數據加載入庫,包括以下步驟:S1:讀取控制文件和數據文件,生成日志文件、壞文件和廢棄文件;S2:配置數據裝載工具SQL Loader的參數;S3:根據配置參數,判斷需要加載的文件的記錄數是否大于參數配置的記錄限額值,如果是,則執行步驟S4 ;如果否,則執行步驟S6 ;S4:根據參數配置的子文件記錄數值將需要加載的文件順序拆分為η個子文件;S5:啟動數據裝載工具SQL Loader的m個子進程對子文件進行并行加載,每個子進程對多個子文件進行串行加載;S6:對文件進行普通加載。作為優選,步驟S4具體為:判斷所述參數配置的子文件記錄數值是否大于300000,如果是,則將文件順序拆分為η個子文件,其中第一個到第η-l個子文件中的記錄數為所述參數配置的子文件記錄數值;如果否,則將文件順序拆分為η個子文件,其中第一個到第η-l個子文件中的記錄數為300000。作為優選,步驟S3中,所述參數配置的記錄限額值為500萬。作為優選,步驟S4中的拆分是用操作系統命令實現的。作為優選,步驟S4中的所述η值為999。作為優選,步驟S5中的所述m值不大于10。作為優選,步驟S5中的所述m值為10,每個子進程最多對100個子文件進行串行加載。與現有技術相比,本專利技術的的有益效果在于:先將文件拆分,啟動數據裝載工具SQL Loader中多進程對子文件并行加載,尤其利用了操作系統處理文件的高效率,弱化了 SQL Loader加載文件的低效率,大大提高了數據加載入庫的性能。附圖說明圖1為本專利技術的實施例的的流程圖;圖2為采用圖1所示的方法加載數據的過程示意圖;圖3為圖1所示的方法的步驟S5中各個子進程與所處理的子文件的對應關系示意圖。具體實施例方式下面結合附圖和具體實施例對本專利技術的實施例的作進一步詳細描述,但不作為對本專利技術的限定。在對本專利技術說明之前,先對SQL `Loader及相關技術應用做一下說明。SQL Loader是Oracle (例如OrancleS)提供的一個在操作系統命令下使用的數據裝載工具,能夠將數據從外部數據文件裝載到Oracle數據庫表中。SQL Loader至少需要涉及到2個核心文件:控制文件和數據文件。控制文件是能夠被SQL Loader識別、用特定語言編寫的文本文件,由控制文件通知SQL Loader將數據放在何處,并描述需要裝載入Oracle數據庫中的各類數據。數據文件是轉換過程中的數據源,存放有要進行轉換的數據。SQL Loader的工作機制為:從控制文件中讀取指令,然后根據指令讀取數據,最后將數據存入Oracle數據庫表中。整個裝載過程為:sqlldr命令一讀取控制文件一讀取數據文件一根據規則裝載數據到數據庫。圖1為本專利技術的實施例的的流程圖;圖2為采用圖1所示的方法加載數據的過程示意圖;圖3為圖1所示的方法的步驟S5中各個子進程與所處理的子文件的對應關系示意圖。如圖1至圖3所示,本專利技術的實施例的,使用Oracle提供的數據裝載工具SQL Loader將大數據量的文件中的數據加載入庫,包括以下步驟:S1:讀取控制文件和數據文件,生成日志文件、壞文件和廢棄文件。日志文件、壞文件和廢棄文件記錄了 SQL Loader相關的過程信息。任何妨礙日志文件(log文件)創建的情形都將終止數據加載。壞文件(bad文件)記錄了被SQL Loader拒絕的記錄,寫入壞文件的記錄達到閾值時,將終止數據加載。如果控制文件中含有條件并且記錄不能滿足全部條件的時候,這些記錄將被寫入廢棄文件(discard文件)。S2:配置數據裝載工具SQL Loader的參數。SQL Loader的參數包括direct參數、parallel 參數、error 參數、rows 參數、readsize 參數和 bindsize 參數。其中,direct 參數用于設定SQL Loader使用直接路徑加載,可以選擇性地設定為true !parallel參數用于設定SQL Loader使用并行加載,在本實施例中可以選擇性地設定為true ;rows參數是數據庫每次提交的行數,bindsize參數是數組的大小。每次讀取的記錄數必須小于rows值,并且大小不得超過bindsize值。S3:根據配置參數,判斷需要加載的文件的記錄數是否大于參數配置的記錄限額值,如果是,則執行步驟S4 ;如果否,則執行步驟S6,即對文件進行普通加載。顯然,當文件記錄數小于參數配置的記錄限額值時,說明文件中數據大小不會對加載性能產生過多的影響,不需要進行拆分;當文件記錄數大于參數配置的記錄限額值,則需要按照本專利技術的方法進行拆分,以達到優化性能的效果。作為一種改進,參數配置的記錄限額值可以優選為500萬,這是基于系統資源優化以及文件加載性能綜合得出的一個優選值。S4:根據參數配置的子文件記錄數值將需要加載的文件順序拆分為η個子文件。參數配置的子文件記錄數值是每個子文件中所包含的記錄的條數。在本實施例中具體為:判斷參數配置的子文件記錄數值是否大于300000,如果是,則將文件順序拆分為η個子文件,其中第一個到第η-l個子文件中的記錄數為參數配置的子文件記錄數值;如果否,則將文件順序拆分為η個子文件,其中第一個到第η-l個子文件中的記錄數為300000。本專利技術的實施例的是根據參數配置的子文件記錄數值來確定子文件中的記錄數。也就是說,以參數配置的子文件記錄數值或者300000行數順序地拆分文件。第一個到第η-l個子文件中的記錄數相同,第η個子文件可以與前η-l個子文件中的記錄數不同。作為一種改進,本專利技術的實施例的用操作系統命令對文件進行拆分,從而利用了操作系統處理文件的高效率,弱化了 SQLLoader加載文件的低效率。針對不同的操作系統,例如Linux操作系統等,其拆分文件的命令相應不同,所調用的程序也相應不同。作為更進一步的改進,本實施例中可以將一個文件拆分成999個子文件,即,η值為999。拆分前的文件記錄數越多,參數配置的子文件記錄數本文檔來自技高網...

    【技術保護點】
    一種將文件拆分后并行加載數據入庫的方法,使用Oracle提供的數據裝載工具SQL?Loader將大數據量的文件中的數據加載入庫,其特征在于,包括以下步驟:S1:讀取控制文件和數據文件,生成日志文件、壞文件和廢棄文件;S2:配置數據裝載工具SQL?Loader的參數;S3:根據配置參數,判斷需要加載的文件的記錄數是否大于參數配置的記錄限額值,如果是,則執行步驟S4;如果否,則執行步驟S6;S4:根據參數配置的子文件記錄數值將需要加載的文件順序拆分為n個子文件;S5:啟動數據裝載工具SQL?Loader的m個子進程對子文件進行并行加載,每個子進程對多個子文件進行串行加載;S6:對文件進行普通加載。

    【技術特征摘要】
    1.一種將文件拆分后并行加載數據入庫的方法,使用Oracle提供的數據裝載工具SQLLoader將大數據量的文件中的數據加載入庫,其特征在于,包括以下步驟: 51:讀取控制文件和數據文件,生成日志文件、壞文件和廢棄文件; 52:配置數據裝載工具SQL Loader的參數; 53:根據配置參數,判斷需要加載的文件的記錄數是否大于參數配置的記錄限額值,如果是,則執行步驟S4 ;如果否,則執行步驟S6 ; 54:根據參數配置的子文件記錄數值將需要加載的文件順序拆分為η個子文件; 55:啟動數據裝載工具SQL Loader的m個子進程對子文件進行并行加載,每個子進程對多個子文件進行串行加載; 56:對文件進行普通加載。2.根據權利要求1所述的將文件拆分后并行加載數據入庫的方法,其特征在于,步驟S4具體為:判斷所述參數配置的子文件記錄數值是否大于300000,如果是...

    【專利技術屬性】
    技術研發人員:王黨團徐勝平
    申請(專利權)人:中國銀行股份有限公司
    類型:發明
    國別省市:

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 老司机亚洲精品影院无码| av无码久久久久不卡免费网站| 无码国产精品一区二区免费式影视 | 无码少妇一区二区| 久久AV无码精品人妻糸列| 亚洲AV无码无限在线观看不卡| AV无码精品一区二区三区宅噜噜| AV无码久久久久不卡蜜桃| 国产午夜无码精品免费看动漫| 无码精品尤物一区二区三区| 自慰无码一区二区三区| 亚洲AV无码一区二区三区鸳鸯影院 | 久久久久无码精品国产| 高清无码一区二区在线观看吞精| 无码137片内射在线影院| 无码日韩精品一区二区人妻| 亚洲欧洲av综合色无码| 亚洲啪啪AV无码片| 久久亚洲国产成人精品无码区| 成人免费无码视频在线网站| 蜜桃AV无码免费看永久| 国产精品无码无片在线观看| 台湾无码AV一区二区三区| 久久亚洲精品无码gv| 高清无码v视频日本www| 精品国精品无码自拍自在线| 无码人妻精品中文字幕免费| 亚洲AV无码乱码国产麻豆穿越 | 久久亚洲AV无码精品色午夜麻豆| 国产日韩AV免费无码一区二区三区 | 69成人免费视频无码专区| 免费无码肉片在线观看| 人妻无码久久精品人妻| 亚洲中文字幕久久无码| 亚洲AV永久无码天堂影院| 亚洲精品久久无码| 国产成人无码精品久久久露脸| 无码人妻丰满熟妇区毛片18| 免费无遮挡无码永久在线观看视频 | 无码少妇一区二区性色AV| 亚洲AV永久无码精品|