一種數據轉換方法及裝置與流程
2023-05-11 02:24:47 4

本發明實施例涉及計算機技術領域,具體涉及一種數據轉換方法及裝置。
背景技術:
在計算機技術領域,常常涉及數據遷移的處理,例如將數據從一個系統遷移到另一個系統。若兩個系統的數據格式不同,往往還需要涉及數據格式的轉換處理。例如,在銀行系統中,為了滿足其他國家的監管要求,需要在當地部署銀行系統。這時,就需要將相應分行的數據從總行的主機平臺遷移到分行的開放平臺中。若總行數據的存儲格式與分行平臺的存儲格式不同,則需要對數據進行轉碼處理。現有技術中,針對每一張需要遷移的數據表,是手工編寫轉碼程序的,這種方式存在工作量大、效率低的缺陷。此外,當需要遷移的數據表較多時,人工編寫代碼容易出現疏漏,由此帶來的複查、調試成本較高。
技術實現要素:
本發明實施例提供了一種數據轉換方法及裝置,可以實現數據的自動轉碼,效率高、成本低、準確率高。
為此,本發明實施例提供如下技術方案:
第一方面,本發明實施例提供了一種數據轉換方法,包括:確定需要進行轉碼處理的數據表的列表;根據所述數據表的列表調用主程序分別生成與各數據表對應的轉碼子程序,所述主程序用於利用所述各數據表的表名獲取所述數據表的數據結構,根據所述數據結構生成與所述數據表對應的轉碼子程序;利用所述轉碼子程序對與其對應的數據表進行轉碼處理。
可選地,所述確定需要進行轉碼處理的數據表的列表包括:獲取各數據表的數據結構,根據所述數據結構包含的數據類型確定需要進行轉碼處理的數據表的列表。
可選地,所述根據所述數據表的列表調用主程序分別生成與各數據表對應的轉碼子程序包括:根據所述數據表的列表,生成與各數據表對應的空文件;調用主程序以生成與所述數據表對應的轉碼子程序;將所述轉碼子程序寫入所述空文件。
可選地,所述利用所述各數據表的表名獲取所述數據表的數據結構,根據所述數據結構生成與所述數據表對應的轉碼子程序包括:根據所述列表中各數據表的表名,訪問系統表以解析所述數據表的數據結構;根據所述數據表的數據結構判斷所述數據表包含的各欄位是否需要轉碼處理;若所述欄位需要進行轉碼處理,生成對應的轉碼處理程序。
可選地,所述方法還包括:當判斷當前數據表包含存儲區欄位時,調用與所述存儲區欄位匹配的轉碼程序進行轉碼處理。
可選地,所述方法還包括:接收對所述轉碼子程序的修改請求,更新所述轉碼子程序。
第二方面,本發明實施例提供了一種數據轉換裝置,包括確定模塊、調用模塊、主程序模塊和轉碼處理模塊,其中:所述確定模塊,用於確定需要進行轉碼處理的數據表的列表;所述調用模塊,用於根據所述數據表的列表調用主程序模塊分別生成與各數據表對應的轉碼子程序;所述主程序模塊用於利用所述各數據表的表名獲取所述數據表的數據結構,根據所述數據結構生成與所述數據表對應的轉碼子程序;所述轉碼處理模塊,用於利用所述轉碼子程序對與其對應的數據表進行轉碼處理。
可選地,所述確定模塊具體用於:獲取各數據表的數據結構,根據所述數據結構包含的數據類型確定需要進行轉碼處理的數據表的列表。
可選地,所述調用模塊具體包括:空文件生成子模塊,用於根據所述數據表的列表,生成與各數據表對應的空文件;主程序調用子模塊,用於調用主程序以生成與所述數據表對應的轉碼子程序;寫入子模塊,用於將所述轉碼子程序寫入所述空文件。
可選地,所述主程序模塊具體用於:根據所述列表中各數據表的表名,訪問系統表以解析所述數據表的數據結構;根據所述數據表的數據結構判斷所述數據表包含的各欄位是否需要轉碼處理;若所述欄位需要進行轉碼處理,生成對應的轉碼處理程序。
可選地,所述調用模塊還用於當判斷當前數據表包含存儲區欄位時,調用與所述存儲區欄位匹配的轉碼程序進行轉碼處理。
可選地,所述裝置還包括更新模塊,用於接收對所述轉碼子程序的修改請求,更新所述轉碼子程序。
本發明實施例提供的數據轉換方法及裝置,可以根據需要進行轉碼處理的數據表的列表,調用主程序分別生成與各數據表對應的轉碼子程序,並利用所述轉碼子程序對與其對應的數據表進行轉碼處理。由於可以利用主程序根據各數據表的數據結構生成與所述數據表對應的轉碼子程序,因此大大提高了數據轉碼的效率,降低了成本,提高了數據處理的準確率。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明中記載的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明一實施例提供的數據轉換方法流程圖;
圖2為本發明另一實施例提供的海量文本數據處理方法流程圖;
圖3為本發明實施例數據轉換裝置示意圖。
具體實施方式
本發明實施例提供了一種數據轉換方法及裝置,可以實現數據的自動轉碼,效率高、成本低、準確率高。
為了使本技術領域的人員更好地理解本發明中的技術方案,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都應當屬於本發明保護的範圍。
下面將結合附圖1至附圖2對本發明示例性實施例示出的數據轉換方法進行介紹。
參見圖1,為本發明一實施例提供的數據轉換方法流程圖。如圖1所示,可以包括:
S101,確定需要進行轉碼處理的數據表的列表。
具體實現時,可以分析資料庫中所有的數據類型,確定需要進行轉碼處理的數據類型。根據各數據表的數據結構,根據所述數據結構包含的數據類型確定需要進行轉碼處理的數據表的列表。舉例說明,對於給定數據表,若根據所述數據表的數據結構確定其包含需要進行轉碼處理的數據類型,則確定所述數據表屬於需要進行轉碼處理,將其加入列表。由此,可以獲得需要進行轉碼處理的數據表的列表清單。其中,轉碼是將數據從一種格式轉換為一種格式的方法。
S102,根據所述數據表的列表調用主程序分別生成與各數據表對應的轉碼子程序。
具體實現時,所述根據所述數據表的列表調用主程序分別生成與各數據表對應的轉碼子程序包括:根據所述數據表的列表,生成與各數據表對應的空文件;調用主程序以生成與所述數據表對應的轉碼子程序;將所述轉碼子程序寫入所述空文件。
具體實現時,可以遍歷所述列表中的各數據表。針對每一張數據表,可以分成兩個過程處理,首先生成一個空文件(MEMBER)。而後,調用主程序將該表對應的轉碼子程序寫入所述空文件。由此依次處理列表中的每一個數據表,這樣,每一個數據表均生成了與其對應的轉碼子程序。
其中,所述主程序可以利用所述各數據表的表名獲取所述數據表的數據結構,根據所述數據結構生成與所述數據表對應的轉碼子程序。具體實現時,所述主程序可以根據所述列表中各數據表的表名,訪問系統表以解析所述數據表的數據結構;根據所述數據表的數據結構判斷所述數據表包含的各欄位是否需要轉碼處理;若所述欄位需要進行轉碼處理,生成對應的轉碼處理程序。舉例說明,主程序可以遍歷列表中的各數據表,根據數據表的表名訪問系統表(SYSCOLUMUS),對其系統表中各數據表的欄位名(NAME)、欄位類型(COLTYPE)、子類型(FOREIGNKEY)等信息,解析出該數據表的數據結構(COPYBOOK,又可以稱之為結構體)。根據數據表的數據結構生成與所述數據表對應的轉碼子程序。具體實現時,可以根據所述數據表的數據結構判斷所述數據表包含的各欄位是否需要轉碼處理;若所述欄位需要進行轉碼處理,生成對應的轉碼處理程序。舉例說明,可以根據各欄位的欄位類型判斷該欄位是否需要進行轉碼處理。例如,對於整型欄位而言,其在不同的碼制之間表示是不一樣的,需要進行轉碼處理。
S103,利用所述轉碼子程序對與其對應的數據表進行轉碼處理。
根據前述處理,針對列表中的每一張數據表即生成了與所述數據表對應的轉碼子程序。當需要進行轉碼處理時,則可以根據所述數據表的列表,利用與所述數據表對應的轉碼子程序對數據表進行轉碼處理。
需要說明的是,在一些實施方式中,對於一些特殊類型的欄位,例如大存儲區(BUFFER)欄位,需要進行些特殊處理。一般地,所述大存儲區(BUFFER)欄位下面又重新定義了幾個不同類型的欄位。若當前處理的數據表存在大存儲區欄位,可以由專人修改該表對應的轉碼子程序,以實現對所述欄位的特殊處理。這時,本發明實施例提供的方法可以包括:接收對所述轉碼子程序的修改請求,更新所述轉碼子程序。也就是說,轉碼子程序可以進行修改、刪除、更新等操作。
在一些實施方式中,可以預先編寫、生成與所述存儲區欄位對應的轉碼程序,將其嵌入已生成的轉碼子程序中即可。當然,也可以在執行轉碼時,當判斷當前數據表包含存儲區欄位時,再調用與所述存儲區欄位匹配的轉碼程序進行轉碼處理,這些實現方式都是可行的。
下面結合一個具體的實例對本發明提供的方法進行介紹。
參見圖2,為本發明一實施例提供的數據轉換方法流程圖。
S201,確定需要進行轉碼處理的數據表的列表。
舉例說明,若將數據從主機平臺遷移到分行平臺時,可以分析主機平臺資料庫中所有的數據類型,哪些需要轉碼,該以什麼格式接收,從而整理出規範,然後整理出主機平臺需要轉碼的數據表的清單,形成表清單。
S202,調用模塊接收所述列表,執行兩個編目過程生成轉碼子程序。
其中,一個編目過程是生成轉碼程序的空文件,一個編目過程是往空文件裡面寫程序,形成轉碼子程序。具體實現時,可以編寫作業,該作業對每張數據表分兩個編目過程處理,編目過程1的功能是生成一個空文件(MEMBER),編目過程2的功能是調用主程序(MAINPROG),將該表對應的轉碼程序寫進編目過程1生成的空文件(MEMBER),這樣一個作業大概可以處理100張表,每張表對應一個文件。
S203,主程序模塊根據調用模塊傳入的表名,讀取系統表,生成每張表對應的轉碼子程序。
具體實現時,可以編寫主程序(MAINPROG),該程序遍歷S201中的表清單,通過表名訪問系統表(SYSCOLUMUS),讀取SYSCOLUMUS表中的NAME(表中的欄位名),COLTYPE(欄位類型),FOREIGNKEY(子類型),解析出該表對應的結構體COPYBOOK,生成該表對應的子程序SUBPRROG,將該子程序寫入S202創建的文件中。該子程序根據該數據表的COPYBOOK逐一判斷該表對應的欄位是否需要轉碼,如果需要轉碼,就進行轉碼處理,例如將EBCDIC碼(簡稱E碼)轉換為ASCII(簡稱A碼)。
S204,轉碼模塊根據是否需要轉碼的清單,完成表中數據的轉碼功能。
在本發明實施例中,可以根據需要轉碼的表清單,編寫主程序,該主程序通過表名讀取系統表,自動生成與每一張表對應的數據轉碼子程序。以BOCS-O系統為例進行說明,該系統有717張資料庫表,從主機平臺遷移到開放平臺的過程中,大部分表都要進行轉碼處理。如果針對每張表都去手工寫一個轉碼程序,這樣無疑是一項技術含量不高,但是卻費時費力的工作。而應用本發明的方法,通過整理出需要轉碼的表清單,編寫一個主程序,自動生成每一張表的轉碼子程序,可以完成大部分的數據轉碼工作,極大的提高了塑膠處理效率,降低了錯誤率,實現數據從主機到開放平臺的準確遷移。
以上對本發明提供的數據轉換方法進行介紹,下面對數據轉換裝置進行介紹。
參見圖3,為本發明實施例提供的數據轉換裝置示意圖。
一種數據轉換裝置300,包括確定模塊、調用模塊、主程序模塊和轉碼處理模塊,其中:
所述確定模塊301用於確定需要進行轉碼處理的數據表的列表。
所述調用模塊302用於根據所述數據表的列表調用主程序模塊分別生成與各數據表對應的轉碼子程序。
所述主程序模塊303用於利用所述各數據表的表名獲取所述數據表的數據結構,根據所述數據結構生成與所述數據表對應的轉碼子程序。
所述轉碼處理模塊304用於利用所述轉碼子程序對與其對應的數據表進行轉碼處理。
在一些實施方式中,所述確定模塊具體用於:獲取各數據表的數據結構,根據所述數據結構包含的數據類型確定需要進行轉碼處理的數據表的列表。
在一些實施方式中,所述調用模塊具體包括:空文件生成子模塊,用於根據所述數據表的列表,生成與各數據表對應的空文件;主程序調用子模塊,用於調用主程序以生成與所述數據表對應的轉碼子程序;寫入子模塊,用於將所述轉碼子程序寫入所述空文件。
在一些實施方式中,所述主程序模塊具體用於:根據所述列表中各數據表的表名,訪問系統表以解析所述數據表的數據結構;根據所述數據表的數據結構判斷所述數據表包含的各欄位是否需要轉碼處理;若所述欄位需要進行轉碼處理,生成對應的轉碼處理程序。
在一些實施方式中,所述調用模塊還用於當判斷當前數據表包含存儲區欄位時,調用與所述存儲區欄位匹配的轉碼程序進行轉碼處理。
在一些實施方式中,所述裝置還包括新模塊,接收對所述轉碼子程序的修改請求,更新所述轉碼子程序。
其中,本發明裝置各單元或模塊的設置可以參照圖1至圖2所示的方法而實現,在此不贅述。
本領域技術人員在考慮說明書及實踐這裡公開的發明後,將容易想到本發明的其它實施方案。本發明旨在涵蓋本發明的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本發明的一般性原理並包括本公開未公開的本技術領域中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本發明的真正範圍和精神由下面的權利要求指出。
應當理解的是,本發明並不局限於上面已經描述並在附圖中示出的精確結構,並且可以在不脫離其範圍進行各種修改和改變。本發明的範圍僅由所附的權利要求來限制。
以上所述僅為本發明的較佳實施例,並不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。
需要說明的是,在本文中,諸如第一和第二等之類的關係術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關係或者順序。而且,術語「包括」、「包含」或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句「包括一個……」限定的要素,並不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。本發明可以在由計算機執行的計算機可執行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執行特定任務或實現特定抽象數據類型的例程、程序、對象、組件、數據結構等等。也可以在分布式計算環境中實踐本發明,在這些分布式計算環境中,由通過通信網絡而被連接的遠程處理設備來執行任務。在分布式計算環境中,程序模塊可以位於包括存儲設備在內的本地和遠程計算機存儲介質中。
本說明書中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於裝置實施例而言,由於其基本相似於方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。以上所述僅是本發明的具體實施方式,應當指出,對於本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護範圍。