本發明專利技術實施例提供了一種適配多種數據源的數據抽取方法和裝置,其中的方法包括:根據目標數據源類型確定對應的數據抽取規則;根據所述數據抽取規則生成數據抽取指令;對所述目標數據源進行適配處理;執行所述數據抽取指令從所述目標數據源中獲取目標數據。當抽取需求發生變化時,本發明專利技術實施例只需對配置文件中的抽取規則進行調整即可,而無需修改任何程序代碼,不但有效降低了維護成本,而且大大提高了系統的穩定性。
【技術實現步驟摘要】
一種適配多種數據源的數據抽取方法和裝置
本專利技術涉及信息處理
,具體涉及一種適配多種數據源的數據抽取方法和裝置。
技術介紹
目前,企業通過采用信息化解決方案已使得企業的生產效率和管理水平得到了極大地提高。但是,由于不同信息系統之間的數據源類型的差異,例如不同的關系型數據庫Oracle、MySQL、DB2、SQLServer等造成了信息交換和共享變得非常困難。為了實現不同信息系統之間的數據交換,現有技術多采用硬編碼的方式將對不同類型數據源的數據抽取過程固化在程序中。但是采用硬編碼的方式靈活性很差,數據源的任何變化都需要對硬編碼部分重新修改,不但處理成本高,而且大大降低了系統的穩定性。
技術實現思路
為了解決現有技術中數據抽取過程中采用硬編碼成本高、穩定性差的問題,本專利技術實施例期望提供一種適配多種數據源的數據抽取方法和裝置。本專利技術實施例提供了一種適配多種數據源的數據抽取方法,包括:根據目標數據源類型確定對應的數據抽取規則;根據所述數據抽取規則生成數據抽取指令;對所述目標數據源進行適配處理;執行所述數據抽取指令從所述目標數據源中獲取目標數據。優選地,所述根據目標數據源類型確定對應的數據抽取規則的步驟之前,還包括:預先在配置文件中設置數據抽取規則;其中,所述數據抽取規則包括:關系型數據庫抽取規則、非關系型數據庫抽取規則、數據文件抽取規則。優選地,所述關系型數據庫抽取規則通過以下方式實現:SELECT*FROMaWHEREbBETWEENcANDd;其中,a為數據庫名稱;b、c、d為數據抽取條件參數。優選地,所述執行所述數據抽取指令從所述目標數據源中獲取目標數據之前,還包括:當所述數據抽取規則中設置有數據前置處理標識時,對所述目標數據源執行數據前置處理。優選地,所述執行所述數據抽取指令從所述目標數據源中獲取目標數據之后,還包括:當所述數據抽取規則中設置有數據后置處理標識時,對所述獲取的目標數據執行數據后置處理。本專利技術實施例提供了一種適配多種數據源的數據抽取方法裝置,包括:抽取規則確定模塊,用于根據目標數據源類型確定對應的數據抽取規則;抽取指令生成模塊,用于根據所述數據抽取規則生成數據抽取指令;數據源適配模塊,用于對所述目標數據源進行適配處理;指令執行模塊,用于執行所述數據抽取指令從所述目標數據源中獲取目標數據。優選地,所述裝置,還包括:抽取規則設置模塊,用于預先在配置文件中設置數據抽取規則;其中,所述數據抽取規則包括:關系型數據庫抽取規則、非關系型數據庫抽取規則、數據文件抽取規則。優選地,所述關系型數據庫抽取規則通過以下方式實現:SELECT*FROMaWHEREbBETWEENcANDd;其中,a為數據庫名稱;b、c、d為數據抽取條件參數。優選地,所述裝置,還包括:數據前置處理模塊,用于當所述抽取規則確定模塊所確定的數據抽取規則中設置有數據前置處理標識時,對所述目標數據源執行數據前置處理。優選地,所述裝置還包括:數據后置處理模塊,用于當所述抽取規則確定模塊所確定數據抽取規則中設置有數據后置處理標識時,對所述獲取的目標數據執行數據后置處理。。與現有技術相比,本專利技術實施例至少包括以下優點:本專利技術實施例所提供的一種適配多種數據源的數據抽取方法和裝置,通過目標數據源確定數據抽取規則,然后依據該數據抽取規則生成數據抽取指令,最后通過執行該數據抽取指令從目標數據源中獲取目標數據。可以看出,本專利技術實施例所生成的數據抽取指令是根據預先定義在配置文件中的數據抽取規則所生成,而不必像現有技術在程序中通過硬編碼的方式實現,由于所述配置文件獨立于系統程序代碼,因此,即使對抽取內容有了不同的要求,只需對配置文件中的抽取規則進行調整即可,而無需修改任何程序代碼,不但有效降低了維護成本,而且大大提高了系統的穩定性。附圖說明圖1為本專利技術實施例提供的一種適配多種數據源的數據抽取方法流程圖;圖2本專利技術實施例提供的另一種適配多種數據源的數據抽取方法流程圖;圖3為本專利技術實施例提供的一種適配多種數據源的數據抽取裝置的基本結構圖。具體實施方式實施例一參照圖1,示出了本專利技術的一種適配多種數據源的數據抽取方法實施例一的步驟流程圖,具體可以包括:步驟101,根據目標數據源類型確定對應的數據抽取規則;具體的,本專利技術實施例所適配的目標數據源可以是關系型數據庫、非關系型數據庫NoSQL和數據文件。其中,關系型數據庫可以是Oracle,MySQL,DB2,SQLServer等任意類型的關系型數據庫;數據文件可以是TXT、XML、Excel、CSV等,本專利技術對關系型數據庫的類型、非關系數據庫的類型以及數據文件的類型不作限制。其中,數據抽取規則描述了如何從對應的目標數據源中抽取數據,具體實現時,根據目標數據源的類型確定對應的數據抽取規則,具體可以包括:關系型數據庫抽取規則、非關系數據庫抽取規則和數據文件抽取規則等。另外,本領域技術人員還可根據實際需要按照數據源的類型設置對應的數據抽取規則。以關系型數據庫抽取規則為例,可通過定義SQL語句來描述該規則,例如:SELECT*FROMaWHEREbBETWEENcANDd;其中,a為數據庫名稱;b、c、d為數據抽取條件參數,該參數可在具體執行過程中通過JavaSetParameter方法輸入。具體的,對于非關系型數據庫抽取規則可通過指定抽取類的方法在執行過程中動態執行,例如:com.cattsoft.idea.dataFilter;其中,dataFilter即為預先定義的數據抽取類。其中,數據文件抽取規則可根據實際應用中數據文件具體格式和內容確定,例如Excel文件中的單元格位置,XML文件中節點名稱等。需要說明的是,以上只是對本專利技術實施例中關系型數據庫抽取規則、非關系型數據庫抽取規則的舉例說明,在具體實現時,可根據實際需要采用不同的SQL語句、數據抽取類或其它方式設置不同的數據抽取規則。步驟102,根據所述數據抽取規則生成數據抽取指令;具體的,根據應用確定數據抽取參數,然后按照步驟101確定的數據抽取規則生成數據抽取指令,例如:selectID,NamefrompersonwhereIDbetween100And999;其中,person為參數a確定的數據表名稱,ID、100和999即為上述抽取規則示例中對應的參數b、c和d,該規則表示從數據表person中抽取ID介于100和999之間的記錄。另外,如果目標數據源是非關系數據庫NoSQL或數據文件,則根據預先定義的NoSQL抽取規則、數據文件抽取規則生成對應的數據抽取指令。步驟103,對所述目標數據源進行適配處理;其中,對目標數據源進行適配處理具體可以包括:根據目標數據源的不同類型確定對應的數據訪問驅動。例如,采用JDBC、JavaIO、第三方開源工具、數據庫本身提供的數據工具包實現與底層數據源的對接。當目標數據源是txt、xml之類的數據文件時,則通過基于文件輸入輸出接口IO的抽象類方法實現對目標數據源的適配訪問。步驟104,執行所述數據抽取指令從所述目標數據源中獲取目標數據。具體的,以目標數據源是關系型數據庫為例,即執行所述生成的SQL指令,從對應的數據庫中獲取目標數據。另外,執行所述數據處理指令還可以是存儲過程。綜上,本專利技術實施例根據目標數據源確本文檔來自技高網...

【技術保護點】
一種適配多種數據源的數據抽取方法,其特征在于,所述方法包括:根據目標數據源類型確定對應的數據抽取規則;根據所述數據抽取規則生成數據抽取指令;對所述目標數據源進行適配處理;執行所述數據抽取指令從所述目標數據源中獲取目標數據。
【技術特征摘要】
1.一種適配多種數據源的數據抽取方法,其特征在于,所述方法包括:根據目標數據源類型確定對應的數據抽取規則;根據所述數據抽取規則生成數據抽取指令;對所述目標數據源進行適配處理;執行所述數據抽取指令從所述目標數據源中獲取目標數據。2.根據權利要求1所述的方法,其特征在于,所述根據目標數據源類型確定對應的數據抽取規則的步驟之前,還包括:預先在配置文件中設置數據抽取規則;其中,所述數據抽取規則包括:關系型數據庫抽取規則、非關系型數據庫抽取規則、數據文件抽取規則。3.根據權利要求2所述的方法,其特征在于,所述關系型數據庫抽取規則通過以下方式實現:SELECT*FROMaWHEREbBETWEENcANDd;其中,a為數據庫名稱;b、c、d為數據抽取條件參數。4.根據權利要求1所述的方法,其特征在于,所述執行所述數據抽取指令從所述目標數據源中獲取目標數據之前,還包括:當所述數據抽取規則中設置有數據前置處理標識時,對所述目標數據源執行數據前置處理。5.根據權利要求4所述的方法,其特征在于,所述執行所述數據抽取指令從所述目標數據源中獲取目標數據之后,還包括:當所述數據抽取規則中設置有數據后置處理標識時,對所述獲取的目標數據執行數據后置處理。6.一種適配多種數據源的...
【專利技術屬性】
技術研發人員:栗增光,陳彬,程之明,
申請(專利權)人:大唐軟件技術股份有限公司,
類型:發明
國別省市:北京,11
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。