一種數(shù)據(jù)映射方法及裝置的制造方法
【專利摘要】本發(fā)明公開了一種數(shù)據(jù)映射方法,包括:獲取用于實現(xiàn)當(dāng)前映射的每層子查詢中的數(shù)據(jù)映射規(guī)則;根據(jù)所述每層子查詢中的數(shù)據(jù)映射規(guī)則,獲取用于實現(xiàn)所述當(dāng)前映射的子查詢執(zhí)行碼;獲取所述當(dāng)前映射的映射源數(shù)據(jù)項與映射目標(biāo)數(shù)據(jù)項之間的對應(yīng)關(guān)系;基于所述對應(yīng)關(guān)系,通過執(zhí)行所述子查詢執(zhí)行碼實現(xiàn)所述當(dāng)前映射。本發(fā)明還提供了一種數(shù)據(jù)映射裝置。
【專利說明】
_種數(shù)據(jù)映射方法及裝置
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)映射方法及裝置。
【背景技術(shù)】
[0002] 目前根據(jù)業(yè)界數(shù)據(jù)映射開發(fā)的整體情況,對于涉及分析類系統(tǒng)的項目,主要通過 數(shù)據(jù)映射標(biāo)準(zhǔn)文檔進(jìn)行產(chǎn)品數(shù)據(jù)映射規(guī)則的管理,并依據(jù)該文檔進(jìn)行數(shù)據(jù)映射程序的開 發(fā),而且數(shù)據(jù)映射程序的開發(fā)方式,仍整體以手工編碼(Hand-Coded)為主。目前產(chǎn)品映射開 發(fā)、管理的方式主要存在如下問題:
[0003] 1、映射規(guī)則通過EXCEL文檔進(jìn)行管理,由于EXCEL文檔僅作為程序開發(fā)的參考,往 往出現(xiàn)映射文檔的映射規(guī)則同最新映射程序邏輯存在差異的情況。
[0004] 2、映射程序的開發(fā)往往由多名開發(fā)人員負(fù)責(zé)開發(fā),映射程序的代碼風(fēng)格無法有效 的統(tǒng)一,代碼質(zhì)量、可讀性參差不齊,需要項目組花大量的時間進(jìn)行映射程序代碼復(fù)查工 作。
[0005] 3、各產(chǎn)品間數(shù)據(jù)映射涉及到的數(shù)據(jù)集存在較多的交集,但是由于產(chǎn)品各自進(jìn)行數(shù) 據(jù)映射規(guī)則的整理及映射程序的設(shè)計,存在重復(fù)的工作量,許多已存在的數(shù)據(jù)映射規(guī)則及 程序無法得到有效的復(fù)用。
[0006] 4、數(shù)據(jù)映射的程序為手邊編碼完成的PLSQL程序,這種手工編碼方式在應(yīng)對數(shù)據(jù) 映射規(guī)則變化以及數(shù)據(jù)映射規(guī)則錯誤的情況靈活性較差,均需要通過直接調(diào)整數(shù)據(jù)映射程 序進(jìn)行修復(fù)。
[0007] 可見,以上手工編碼映射程序的方式將花費大量的人力在映射程序的編寫及修復(fù) 上,且映射程序的復(fù)用性較差。
【發(fā)明內(nèi)容】
[0008] 有鑒于此,本發(fā)明實施例的主要目的在于提供一種數(shù)據(jù)映射方法及裝置,使實現(xiàn) 節(jié)省編寫映射程序所花費的人力且提高映射程序復(fù)用性的目的。
[0009] 為實現(xiàn)上述目的,本發(fā)明實施例提供了一種數(shù)據(jù)映射方法,包括:
[0010] 獲取用于實現(xiàn)當(dāng)前映射的每層子查詢中的數(shù)據(jù)映射規(guī)則;
[0011] 根據(jù)所述每層子查詢中的數(shù)據(jù)映射規(guī)則,獲取用于實現(xiàn)所述當(dāng)前映射的子查詢執(zhí) 行碼;
[0012] 獲取所述當(dāng)前映射的映射源數(shù)據(jù)項與映射目標(biāo)數(shù)據(jù)項之間的對應(yīng)關(guān)系;
[0013] 基于所述對應(yīng)關(guān)系,通過執(zhí)行所述子查詢執(zhí)行碼實現(xiàn)所述當(dāng)前映射。
[0014] 本發(fā)明實施例還提供了一種數(shù)據(jù)映射裝置,包括:
[0015] 映射規(guī)則獲取單元,用于獲取用于實現(xiàn)當(dāng)前映射的每層子查詢中的數(shù)據(jù)映射規(guī) 則;
[0016] 執(zhí)行碼獲取單元,用于根據(jù)所述每層子查詢中的數(shù)據(jù)映射規(guī)則,獲取用于實現(xiàn)所 述當(dāng)前映射的子查詢執(zhí)行碼;
[0017] 對應(yīng)關(guān)系取單元,用于獲取所述當(dāng)前映射的映射源數(shù)據(jù)項與映射目標(biāo)數(shù)據(jù)項之間 的對應(yīng)關(guān)系;
[0018] 第一映射實現(xiàn)單元,用于基于所述對應(yīng)關(guān)系,通過執(zhí)行所述子查詢執(zhí)行碼實現(xiàn)所 述當(dāng)前映射。
[0019] 本發(fā)明實施例提供的數(shù)據(jù)映射方法及裝置,通過預(yù)先配置的數(shù)據(jù)映射規(guī)則,基于 這些數(shù)據(jù)映射規(guī)則可自動生成映射執(zhí)行碼,因此只需要關(guān)心對數(shù)據(jù)映射規(guī)則的調(diào)整,這樣 可節(jié)省編寫映射程序所花費的人力,當(dāng)各產(chǎn)品間數(shù)據(jù)映射涉及到的數(shù)據(jù)集存在較多的交集 時,各產(chǎn)品可使用同一映射執(zhí)行碼,保證了映射程序的復(fù)用性。
【附圖說明】
[0020] 為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明 的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù) 這些附圖獲得其他的附圖。
[0021] 圖1為本發(fā)明實施例對數(shù)據(jù)映射規(guī)則模型分解以及映射規(guī)則編譯解析示意圖;
[0022] 圖2為本發(fā)明實施例數(shù)據(jù)映射方法的流程示意圖;
[0023] 圖3為本發(fā)明實施例數(shù)據(jù)映射方法的具體實現(xiàn)示意圖;
[0024] 圖4為本發(fā)明實施例數(shù)據(jù)映射信息的維護、檢驗、解析、部署、執(zhí)行示意圖;
[0025] 圖5為本發(fā)明實施例數(shù)據(jù)映射規(guī)則的維護和校驗流程示意圖;
[0026] 圖6為本發(fā)明實施例數(shù)據(jù)映射裝置的組成示意圖。
【具體實施方式】
[0027] 為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例 中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是 本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員 在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0028] 數(shù)據(jù)映射常指的是基于給定的兩個數(shù)據(jù)模型,在模型之間建立起數(shù)據(jù)元素的對應(yīng) 關(guān)系的過程。對于多數(shù)后線數(shù)據(jù)集市類系統(tǒng)、指標(biāo)分析類系統(tǒng),數(shù)據(jù)映射是數(shù)據(jù)集成任務(wù)的 第一步。
[0029] 為了實現(xiàn)數(shù)據(jù)映射,首先需要建立一個數(shù)據(jù)映射規(guī)則模型,以便基于該數(shù)據(jù)映射 規(guī)則模型實現(xiàn)數(shù)據(jù)映射。下面首先對數(shù)據(jù)映射規(guī)則模型涉及的內(nèi)容進(jìn)行具體介紹:
[0030] 對于數(shù)據(jù)映射規(guī)則模型而言,首先可以簡單劃分為映射源(Data Mapping Source Ent i ty)和映射目標(biāo)(Data Mapping Source Ent i ty),數(shù)據(jù)映射規(guī)則模型中最小粒度 的數(shù)據(jù)模型在本方案中暫定為數(shù)據(jù)表(Table),比如可以存在N個數(shù)據(jù)表,完成數(shù)據(jù)映射可 能需要一個或多個子查詢(SubQuery),所以,映射源包括至少一個表、或者包括至少一個表 和至少一個子查詢,簡單的映射源可以為一張數(shù)據(jù)表,而復(fù)雜的映射源可以是一個復(fù)雜度 不同的子查詢,比如是包括多張表以及嵌套多層子查詢的一個復(fù)雜子查詢。
[0031]因此,建立數(shù)據(jù)映射規(guī)則模型是為子查詢建立模型、為映射源與映射目標(biāo)之間的 映射關(guān)系建立模型。數(shù)據(jù)映射規(guī)則模型主要包含如下信息:
[0032] (I)、映射基本信息
[0035] ①、映射ID
[0036]映射的唯一標(biāo)識。
[0037] ②、子查詢ID
[0038] 子查詢的唯一標(biāo)識。不同映射間所涉及的子查詢不要出現(xiàn)復(fù)用的情況,以減少映 射與映射之間的耦合度,因此不同映射ID下會存在相同名稱的子查詢ID。
[0039] ③、子查詢配置項類型及配置項
[0040] 采用數(shù)據(jù)冗余的方式進(jìn)行子查詢配置類型及其對應(yīng)配置項的存儲,目的在于減少 傳統(tǒng)三范式多表關(guān)聯(lián)的情況,降低參數(shù)配置的復(fù)雜度,因此接下來將統(tǒng)一對查詢配置類型 及其對應(yīng)的配置項的模型配置關(guān)系進(jìn)行介紹。
[0041 ]配置項類型主要包括:ITEM、ENT、JOIN、FILTER、AGG、ORDER、UNION、HINT、SQL。
[0042] i、ITEM(子查詢數(shù)據(jù)項),即子查詢查詢結(jié)果中的各個數(shù)據(jù)項。
[0043] ITEM涉及的配置項及其說明:
[0048] iii、JOIN(關(guān)聯(lián)查詢),該關(guān)聯(lián)查詢類型包括JOIN-I、J0IN-L、J0IN-R、JOIN-F四個 字類型,定義如下:
[0049] JOIN-I:內(nèi)關(guān)聯(lián),內(nèi)連接(INNER JOIN)操作;
[0050] J0IN-L:左關(guān)聯(lián),左連接(LEFT JOIN)操作;
[00511 J0IN-R:右關(guān)聯(lián),右連接(RIGHT JOIN)操作;
[0052] J0IN-F:全關(guān)聯(lián),全連接(FULL JOIN)操作。
[0053] JOIN涉及的配置項及其說明:
[0055] iv、FILTER(過濾項)。
[0056] FILTER涉及的配置項及其說明:
[0058] V、AGG(分組匯總項)。
[0059] AGG涉及的配置項及其說明:
[0062] vi、0RDER(排序項)。
[0063] ORDER涉及的配置項及其說明:
[0065] vii、UNI0N(合并項)。
[0066] UNION涉及的配置項及其說明:
[0068] viii、HINT(提示項)。
[0069] HINT涉及的配置項及其說明:
[0074] ①、映射ID
[0075]映射的唯一標(biāo)識。
[0076] ②、映射目標(biāo)實體
[0077] 標(biāo)識映射目標(biāo),由于映射目標(biāo)通常為數(shù)據(jù)表,因此此處體現(xiàn)的是映射目標(biāo)表的表 名。
[0078]③、映射源
[0079] 由于映射源本身也可認(rèn)定一個復(fù)雜度不同的子查詢,因此該項體現(xiàn)的是最終作為 映射源的子查詢的ID。
[0080] ④、是否為匹配鍵
[0081 ]該項主要體現(xiàn)了在 MERGE_INSERT_ONLY、MERGE_UPDATE_ONLY、MERGE_UPDATE_ INSER映射模式下,數(shù)據(jù)映射源同數(shù)據(jù)映射目標(biāo)用于匹配的數(shù)據(jù)項,對于INSERT模式對【是 否為匹配鍵】不關(guān)注,MERGE語句是SQL語句的一種。
[0082] MERGE_INSERT_ONLY:MERGE操作中,僅插入匹配鍵與目標(biāo)表無法匹配上的數(shù)據(jù); MERGE_UPDATE_ONLY: MERGE操作中,僅更新匹配鍵與目標(biāo)表匹配的數(shù)據(jù);MERGE_UPDATE_ INSERT:MERGE操作中,更新匹配鍵與目標(biāo)表匹配的數(shù)據(jù),同時插入匹配鍵與目標(biāo)表無法匹 配上的數(shù)據(jù);INSERT:直接執(zhí)行INSERT操作。
[0083] ⑤、映射目標(biāo)實體數(shù)據(jù)項、映射源實體數(shù)據(jù)項。
[0084] 該兩項體現(xiàn)的即為映射源同映射目標(biāo)數(shù)據(jù)項之間的對應(yīng)關(guān)系。
[0085] (3)、映射子查詢基本信息 L 〇〇87 J ⑴、映射ID
[0088]映射的唯一標(biāo)識
[0089] ②、子查詢ID
[0090] 子查詢的唯一標(biāo)識。不同映射間的子查詢不要出現(xiàn)復(fù)用的情況,以減少映射與映 射之間的耦合度,因此不同映射ID下會存在相同名稱的子查詢ID。
[0091] ③、描述 [0092] 子查詢描述信息 [0093]④、子查詢解析后SQL
[0094] 用于記錄解析程序解析映射配置業(yè)務(wù)規(guī)則后生成的SQL。
[0095] (4)、映射子查詢配置信息
[0098] ①、映射ID
[0099] 映射的唯一標(biāo)識。
[0100] ②、子查詢ID
[0101] 子查詢的唯一標(biāo)識。不同映射間所涉及的子查詢不要出現(xiàn)復(fù)用的情況,以減少映 射與映射之間的耦合度,因此不同映射ID下會存在相同名稱的子查詢ID。
[0102] ③、子查詢配置項類型及配置項
[0103] 采用數(shù)據(jù)冗余的方式進(jìn)行子查詢配置類型及其對應(yīng)配置項的存儲,目的在于減少 傳統(tǒng)三范式多表關(guān)聯(lián)的情況,降低參數(shù)配置的復(fù)雜度,因此接下來將統(tǒng)一對查詢。配置類型 及其對應(yīng)的配置項的模型配置關(guān)系進(jìn)行介紹。
[0104] 配置項類型主要包括:ITEM、ENT、JOIN、FILTER、AGG、ORDER、UNION、HINT、SQL。
[0105] i、ITEM(子查詢數(shù)據(jù)項),即子查詢結(jié)果中的各個數(shù)據(jù)項。
[0106] ITEM涉及的配置項及其說明:
[0108] ii、ENT(子查詢主實體)。
[0109] 涉及配置項及其說明:
[0111] iii、JOIN(關(guān)聯(lián)查詢),該關(guān)聯(lián)查詢類型包括JOIN-I、J0IN-L、J0IN-R、JOIN-F四個 字類型,定義如下:
[0112] JOIN-I:內(nèi)關(guān)聯(lián),內(nèi)連接(INNER JOIN)操作;
[0113] J0IN-L:左關(guān)聯(lián),左連接(LEFT JOIN)操作;
[0114] J0IN-R:右關(guān)聯(lián),右連接(RIGHT JOIN)操作;
[0115] J0IN-F:全關(guān)聯(lián),全連接(FULL JOIN)操作。
[0116] JOIN涉及的配置項及其說明:
[0118] iv、FILTER(過濾項)。
[0119] FILTER涉及的配置項及其說明:
[0121] V、AGG(分組匯總項)。
[0122] AGG涉及的配置項及其說明:
[0124] vi、0RDER(排序項)。
[0125] ORDER涉及的配置項及其說明: LUIZ/J
[0128] UNION涉及的配置項及其說明:
[0130] viii、HINT(提示項)。
[0131] HINT涉及的配置項及其說明:
[0136] ①、變量ID
[0137] 映射相關(guān)變量的唯一標(biāo)識。
[0138] ②、變量屬性
[0139] 變量分為公共變量和私有變量。
[0140] PUB表示公共變量,PRI表示私有變量。
[0141] ③、變量賦值表達(dá)式
[0142] 定義變量的賦值表達(dá)式,可以是一個簡單的字符、數(shù)值,也可以是復(fù)雜的計算表達(dá) 式。
[0143] ④、關(guān)聯(lián)映射ID
[0144] 對于私有變量,必須在該項上維護變量所關(guān)聯(lián)的映射ID信息,公共變量不涉及映 射ID信息。
[0145] 基于上述數(shù)據(jù)映射規(guī)則模型,通過遞歸式地對數(shù)據(jù)映射規(guī)則模型進(jìn)行逐層解析, 自動化的形成各個數(shù)據(jù)模型之間數(shù)據(jù)元素的對應(yīng)關(guān)系或者處理關(guān)系,最終轉(zhuǎn)換為Oracle數(shù) 據(jù)可識別的可執(zhí)行程序。具體地,參見圖1所示的對數(shù)據(jù)映射規(guī)則模型分解以及映射規(guī)則編 譯解析示意圖,首先按照"表=>子查詢= > 映射源實體= >映射目標(biāo)實體"的順序進(jìn)行遞 歸解析,即,根據(jù)數(shù)據(jù)映射規(guī)則模型中的數(shù)據(jù)表與數(shù)據(jù)表之間的關(guān)聯(lián)關(guān)系,建立各個子查詢 的映射規(guī)則,并定義這些數(shù)據(jù)表與這些子查詢組成的映射源實體,還要定義映射目標(biāo)實體 (即數(shù)據(jù)表)。然后,基于解析結(jié)果按照Oracle數(shù)據(jù)庫的SQL語法規(guī)則,生成可執(zhí)行的SQL映射 程序,同時為保障SQL映射程序的性能得到保障,在編譯、解析SQL映射程序的過程中,同時 會解決數(shù)據(jù)映射規(guī)則模型中的HINT提示信息,能夠有效地控制可執(zhí)行程序的執(zhí)行計劃,保 障程序性能的穩(wěn)定。
[0146] 基于上述數(shù)據(jù)映射規(guī)則模型以及生成的SQL映射程序,便可根據(jù)用戶的數(shù)據(jù)映射 要求實現(xiàn)數(shù)據(jù)映射,參見圖2,為本發(fā)明實施例提供的數(shù)據(jù)映射方法的流程示意圖,該方法 包括以下步驟:
[0147] 步驟201:獲取用于實現(xiàn)當(dāng)前映射的每層子查詢中的數(shù)據(jù)映射規(guī)則。
[0148] 在本發(fā)明實施例中,對于每一映射(即數(shù)據(jù)表與數(shù)據(jù)表之間的數(shù)據(jù)元素的對應(yīng)關(guān) 系),可能會涉及到一個或多個子查詢,且子查詢之間可能是具有層級關(guān)系的,具有層級關(guān) 系的子查詢之間需要按照層級順序執(zhí)行查詢操作。比如,對于當(dāng)前映射(所述當(dāng)前映射可以 是數(shù)據(jù)映射規(guī)則模型中定義的所有映射ID中的任意映射ID對應(yīng)的映射操作),需要通過M(M 2 1)個子查詢中的數(shù)據(jù)映射規(guī)則來實現(xiàn),這些子查詢按照層級劃分為第1層、……第M層,其 中,每一層級中可能有一個或多個子查詢,第1層中的每個子查詢均是最上層子查詢即是最 先執(zhí)行的子查詢操作,假設(shè)第1層中的子查詢A是第2層的子查詢B的執(zhí)行條件時,那么子查 詢B就是子查詢A的下層子查詢,假設(shè)第2層中的子查詢B是第3層的子查詢C的執(zhí)行條件時, 那么子查詢C就是子查詢B的下層子查詢,依次類推。而為了獲取每一層級中的各個子查詢 的數(shù)據(jù)映射規(guī)則,首先需要獲知所述當(dāng)前映射所涉及的所有子查詢,再從這些子查詢中找 出所有最上層子查詢,然后再根據(jù)最上層子查詢找到與之關(guān)聯(lián)的下層子查詢,再根據(jù)該下 層子查詢進(jìn)一步找到更下一層的子查詢,直到找到最下層子查詢?yōu)橹?,確定這些子查詢之 間的層級關(guān)系的過程即為獲取各層級子查詢的數(shù)據(jù)映射規(guī)則的過程。
[0149] 基于上述內(nèi)容,按照下述方式實現(xiàn)步驟201:
[0150] 步驟301:獲取用于實現(xiàn)所述當(dāng)前映射的各個子查詢;
[0151]步驟302:從所述各個子查詢中提取所有最上層子查詢;
[0152] 步驟303:獲取所述最上層子查詢中的數(shù)據(jù)映射規(guī)則,并根據(jù)所述最上層子查詢中 的數(shù)據(jù)映射規(guī)則,逐層解析所述最上層子查詢下面的每層下層子查詢中的數(shù)據(jù)映射規(guī)則。
[0153] 在本發(fā)明實施例中,上述數(shù)據(jù)映射規(guī)則模型中涉及的信息即為映射規(guī)則信息,而 為了現(xiàn)實數(shù)據(jù)映射,需要預(yù)先存儲映射規(guī)則信息,所述映射規(guī)則信息包括映射基本信息、映 射數(shù)據(jù)項信息、映射子查詢基本信息、映射子查詢配置信息、以及映射變量信息。其中,所述 映射基本信息包括所有映射涉及的所有子查詢相關(guān)信息;所述映射數(shù)據(jù)項信息包括每一映 射的映射源數(shù)據(jù)項與映射目標(biāo)數(shù)據(jù)項之間的對應(yīng)關(guān)系;所述映射子查詢基本信息包括用于 實現(xiàn)每一映射的子查詢執(zhí)行碼;所述映射子查詢配置信息包括每一映射下的各層子查詢的 數(shù)據(jù)映射規(guī)則信息;所述映射變量信息包括每一映射所涉及的變量信息(各個信息的具體 介紹請參見上述對數(shù)據(jù)映射規(guī)則模型的介紹)。
[0154] 參見圖3所示的數(shù)據(jù)映射方法的具體實現(xiàn)示意圖。具體是對數(shù)據(jù)映射規(guī)則模型的 解析、部署、執(zhí)行流程:
[0155] ①、解析
[0156] 數(shù)據(jù)映射公共機制中,通過遞歸的方式逐層解析映射源(子查詢)中各個本層、下 層子查詢中的數(shù)據(jù)映射規(guī)則,并將數(shù)據(jù)映射規(guī)則逐層轉(zhuǎn)換為可執(zhí)行的子查詢SQL執(zhí)行碼,并 結(jié)合映射數(shù)據(jù)項信息,生成執(zhí)行的映射執(zhí)行碼。
[0157] ②、部署
[0158] 生成子查詢SQL執(zhí)行碼、映射SQL執(zhí)行碼后,將子查詢SQL執(zhí)行碼回寫到映射子查詢 基本信息中的SQL_STATEMENT項、將映射SQL執(zhí)行碼回寫到映射基本信息、完成部署動作。
[0159] ③、執(zhí)行
[0160] 公共調(diào)用模塊從映射基本信息中找到各個映射的執(zhí)行碼,并通過動態(tài)SQL的方式 運行執(zhí)碼。
[0161] 基于上述內(nèi)容,下面介紹步驟301至步驟303的具體實現(xiàn)方式:
[0162] 對于步驟301,由于所述映射基本信息中涵蓋了各個預(yù)設(shè)映射操作所涉及的各個 子查詢操作的相關(guān)信息,所以,在實現(xiàn)步驟301時,具體可從所述映射基本信息中提取用于 實現(xiàn)所述當(dāng)前映射的各個子查詢信息;
[0163] 對于步驟302,由于所述映射子查詢配置信息中涵蓋了關(guān)于每一預(yù)設(shè)映射操作下 的屬于每一層級中的每一子查詢的數(shù)據(jù)映射規(guī)則信息,其包含了層級方面的信息,所以,在 實現(xiàn)步驟302時,具體可根據(jù)所述映射子查詢配置信息,從所述各個子查詢信息中提取所有 最上層子查詢信息;
[0164] 對于步驟303,由于所述映射子查詢配置信息中涵蓋了關(guān)于每一預(yù)設(shè)映射操作下 的屬于每一層級中的每一子查詢的數(shù)據(jù)映射規(guī)則信息,其包含了每一子查詢中的數(shù)據(jù)映射 規(guī)則信息,所以,在實現(xiàn)步驟303時,具體可從所述映射子查詢配置信息中獲取所述最上層 子查詢中的數(shù)據(jù)映射規(guī)則信息,并根據(jù)所述最上層子查詢中的數(shù)據(jù)映射規(guī)則信息,逐層解 析所述最上層子查詢下面的每層下層子查詢,并從所述映射子查詢配置信息中獲取所述下 層子查詢中的數(shù)據(jù)映射規(guī)則信息。
[0165] 步驟202:根據(jù)所述每層子查詢中的數(shù)據(jù)映射規(guī)則,獲取用于實現(xiàn)所述當(dāng)前映射的 子查詢執(zhí)行碼。
[0166] 在本發(fā)明實施例中,由于通過對上述數(shù)據(jù)映射規(guī)則模型進(jìn)行遞歸解析,已經(jīng)預(yù)先 生成并保持了每一子查詢的SQL程序,因此,對于步驟202,具體可基于保存的SQL程序,根據(jù) 所述每層子查詢中的數(shù)據(jù)映射規(guī)則,生成用于實現(xiàn)所述當(dāng)前映射的子查詢SQL執(zhí)行碼,并將 生成的SQL執(zhí)行碼回寫入所述映射子查詢基本信息的SQL_STATEMENT項中,所以,如果SQL_ STATEMENT項中存儲有用于實現(xiàn)所述當(dāng)前映射的子查詢SQL執(zhí)行碼,則可直接從SQL_ STATEMENT中調(diào)用該子查詢SQL執(zhí)行碼,因此,對于步驟202,還可以從所述映射子查詢基本 信息中提取預(yù)選存儲的用于實現(xiàn)所述當(dāng)前映射的子查詢執(zhí)行碼。
[0167] 步驟203:獲取所述當(dāng)前映射的映射源數(shù)據(jù)項與映射目標(biāo)數(shù)據(jù)項之間的對應(yīng)關(guān)系。
[0168] 對于步驟203,由于所述映射數(shù)據(jù)項信息中包括了每一預(yù)設(shè)映射操作的映射源數(shù) 據(jù)項與映射目標(biāo)數(shù)據(jù)項之間的對應(yīng)關(guān)系,其中包含了當(dāng)前映射的映射源實體(至少一個源 數(shù)據(jù)表)與映射目標(biāo)實體(至少一個目標(biāo)數(shù)據(jù)表)之間的數(shù)據(jù)元素之間的對應(yīng)關(guān)系,所以,在 實現(xiàn)步驟302時,具體可從所述映射數(shù)據(jù)項信息中提取所述當(dāng)前映射的映射源數(shù)據(jù)項與映 射目標(biāo)數(shù)據(jù)項之間的對應(yīng)關(guān)系。
[0169] 步驟204:基于所述對應(yīng)關(guān)系,通過執(zhí)行所述子查詢執(zhí)行碼實現(xiàn)所述當(dāng)前映射。
[0170] 由于所述映射變量信息包括每一映射操作所涉及的變量信息,其中公共變量是所 有映射操作涉及的變量,私有變量某一特定映射操作涉及的變量,將所述當(dāng)前映射涉及的 所有變量信息、以及當(dāng)前映射的映射源數(shù)據(jù)項與映射目標(biāo)數(shù)據(jù)項之間的對應(yīng)關(guān)系作為所述 子查詢執(zhí)行碼的輸入?yún)?shù)后,便得到一套用于實現(xiàn)當(dāng)前映射的映射執(zhí)行碼。所以,對于步驟 204,具體可將所述對應(yīng)關(guān)系、所述映射變量信息中與所述當(dāng)前映射相關(guān)的變量信息輸入到 所述子查詢執(zhí)行碼的對應(yīng)位置,以得到映射執(zhí)行碼,通過執(zhí)行所述映射執(zhí)行碼實現(xiàn)所述當(dāng) 前映射。
[0171] 進(jìn)一步地,本發(fā)明實施例還可以將所述映射執(zhí)行碼存儲在所述映射基本信息的 SQL項中,其目的是在實現(xiàn)所述當(dāng)前映射時,可直接從所述映射基本信息的SQL項調(diào)用用于 實現(xiàn)所述當(dāng)前映射的映射執(zhí)行碼,因此,在執(zhí)行步驟201之前,本發(fā)明實施例還包括:
[0172] 判斷所述映射基本信息中是否存儲有用于實現(xiàn)所述當(dāng)前映射的映射執(zhí)行碼;若 是,則從所述映射基本信息中調(diào)取所述映射執(zhí)行碼,并通過執(zhí)行所述子查詢執(zhí)行碼實現(xiàn)所 述當(dāng)前映射;若否,則執(zhí)行步驟201。
[0173] 為了實現(xiàn)參數(shù)化配置規(guī)則、統(tǒng)一公共模塊調(diào)用執(zhí)行的新模式,必須有一套完整、統(tǒng) 一的公共模塊對數(shù)據(jù)映射規(guī)則模型進(jìn)行維護、檢驗、解析、部署、執(zhí)行。參見圖4所示的數(shù)據(jù) 映射信息的維護、檢驗、解析、部署、執(zhí)行示意圖,該公共模塊主要分為兩個部分,第一個部 分為面向開發(fā)人員的前端WEB應(yīng)用客戶端界面,開發(fā)人員通過WEB客戶端進(jìn)行數(shù)據(jù)映射規(guī)則 模型的維護和校驗,第二個部分為統(tǒng)一的數(shù)據(jù)映射組件,數(shù)據(jù)映射組件實現(xiàn)的功能包括映 射的解析、部署、執(zhí)行三大塊功能,即,首先解析數(shù)據(jù)映射規(guī)則模型,然后根據(jù)解析出的映射 規(guī)則生成并部署數(shù)據(jù)映射執(zhí)行碼,最后執(zhí)行部署后的數(shù)據(jù)映射程序,從而實現(xiàn)數(shù)據(jù)映射(第 二部分的具體實現(xiàn)方式請參見前述內(nèi)容)。這里對數(shù)據(jù)映射規(guī)則模型的維護和校驗流程進(jìn) 行介紹:
[0174] 參見圖5所示的數(shù)據(jù)映射規(guī)則的維護和校驗流程示意圖。在本發(fā)明實施例中,開發(fā) 人員通過訪問WEB終端并通過訪問界面對數(shù)據(jù)映射規(guī)則模型進(jìn)行維護和校驗,具體地,開發(fā) 人員通過WEB終端維護數(shù)據(jù)映射規(guī)則模型的數(shù)據(jù)映射規(guī)則信息,并將這些信息提交至一個 校驗?zāi)K,校驗?zāi)K對這些數(shù)據(jù)映射規(guī)則進(jìn)行校驗,當(dāng)校驗結(jié)果出現(xiàn)異常時,校驗?zāi)K便向 WEB終端返回異常信息,以便開發(fā)人員根據(jù)異常信息對出現(xiàn)異常的數(shù)據(jù)映射規(guī)則進(jìn)行重新 維護,之后再重新對這些重新維護后的數(shù)據(jù)映射規(guī)則進(jìn)行重新校驗,當(dāng)校驗結(jié)果正常時,校 驗?zāi)K會將校驗通過的數(shù)據(jù)映射規(guī)則模型存入數(shù)據(jù)映射規(guī)則庫中。其中,所述校驗?zāi)K和 所述數(shù)據(jù)映射規(guī)則庫可以位于同一個或不同的服務(wù)器上。
[0175] 綜上。本發(fā)明實施例在存儲映射規(guī)則信息即將數(shù)據(jù)映射規(guī)則模型存入數(shù)據(jù)映射規(guī) 則庫中之前,還包括:
[0176] 利用用戶輸入的對所述映射規(guī)則信息進(jìn)行校驗的校驗信息;在校驗通過后,存儲 通過校驗的規(guī)則信息;在校驗異常時,顯示異常的規(guī)則信息。
[0177] 其中,所述校驗信息涉及的校驗內(nèi)容包括以下一種或多種:
[0178] 校驗必須唯一存在的信息是否唯一存在;
[0179] 校驗必須有效的信息是否有效;
[0180] fe驗必須存在的彳目息是否缺失。
[0181 ]對數(shù)據(jù)映射規(guī)則模型的校驗處理規(guī)則如下:
[0182] ① 、桉眧下耒所沄々卜理揶_對盹射某太佶M講桿拎3合
[0196] 在本發(fā)明實施例中,數(shù)據(jù)映射規(guī)則模型的設(shè)計是基于大量后線分析類系統(tǒng)開發(fā)以 及Oracle數(shù)據(jù)開發(fā)經(jīng)驗總結(jié)所得,能涵蓋非常多數(shù)據(jù)映射及轉(zhuǎn)換的場景,同時遞歸式的規(guī) 則模型解析,從原理上保證了可以適用于各種復(fù)雜的數(shù)據(jù)映射場景,能自動化的生成應(yīng)用 于Oracle數(shù)據(jù)庫的可執(zhí)行程序,該機制實現(xiàn)了數(shù)據(jù)映射開發(fā)由手工到半自動化的突破。
[0197] 下面分四個方便具體介紹本發(fā)明實施例的有益效果:
[0198] 1、有效整合各產(chǎn)品映射數(shù)據(jù),逐步建立組織級數(shù)據(jù)映射規(guī)則池
[0199] 通過建立數(shù)據(jù)映射輔助開發(fā)管理公共機制,可以有效整合各個產(chǎn)品的映射數(shù)據(jù), 通過提取解析數(shù)據(jù)映射規(guī)則,可以獲得各產(chǎn)品對上游數(shù)據(jù)接口字段粒度級別的使用情況, 即可對數(shù)據(jù)表中字段和/或子查詢中字段的靈活調(diào)整,這個是目前使用EXCEL文檔管理數(shù)據(jù) 映射機制中無法做到的。
[0200] 同時針對重復(fù)數(shù)據(jù)集映射程序的開發(fā)、設(shè)計,可以通過有效整合后的數(shù)據(jù)映射規(guī) 則池進(jìn)行復(fù)用,避免同類相似映射程序反復(fù)重新設(shè)計開發(fā)的情況。
[0201 ] 2、實現(xiàn)映射規(guī)則的可視化參數(shù)化配置
[0202] 改變現(xiàn)有的一旦出現(xiàn)映射業(yè)務(wù)規(guī)則的變化,需要下發(fā)應(yīng)用程序版本進(jìn)行映射程序 調(diào)整的情況,本發(fā)明形成參數(shù)化配置規(guī)則、統(tǒng)一公共模塊調(diào)用執(zhí)行的新模式,來代替過去傳 統(tǒng)的一個映射一支程序粗放型的開發(fā)設(shè)計模式。該機制的實現(xiàn),將使得產(chǎn)品能夠更靈活、更 快捷地應(yīng)對產(chǎn)品數(shù)據(jù)映射業(yè)務(wù)規(guī)則的變化。
[0203] 可視化的數(shù)據(jù)映射開發(fā),可以使開發(fā)人員更專注于映射本身的業(yè)務(wù)規(guī)則,通過界 面進(jìn)行映射程序的開發(fā)。
[0204] 3、提升系統(tǒng)間關(guān)聯(lián)關(guān)系分析能力
[0205] 基于維護完善的數(shù)據(jù)映射規(guī)則模型,不但可以有效提高整體數(shù)據(jù)映射設(shè)計開發(fā)的 效率和質(zhì)量,同時可以基于規(guī)則庫中的子查詢配置項信息、映射數(shù)據(jù)項信息、映射基本信 息,提煉出系統(tǒng)中對于源數(shù)據(jù)(0DS層)字段粒度級別的使用情況,進(jìn)一步輔助開發(fā)人員更準(zhǔn) 確的定位接口變更對系統(tǒng)各個功能模塊、數(shù)據(jù)模型帶來的影響。
[0206] 目前組織級可分析、提煉的粒度往往停留于表級和產(chǎn)品級,上游系統(tǒng)接口變更影 響分析目前僅定位到上游XX產(chǎn)品XX表在哪些系統(tǒng)中使用,基于該公共機制,且數(shù)據(jù)映射規(guī) 則庫中信息維護準(zhǔn)確的情況下,可將定位的粒度細(xì)化到上游XX產(chǎn)品變更接口中某個字段在 哪些產(chǎn)品中得到使用(即以字段為單位,當(dāng)確定了上游系統(tǒng)中的字段變化影響了哪些下游 系統(tǒng),便可直接調(diào)整受影響的下游系統(tǒng)中的用于接收該變化字段相關(guān)數(shù)據(jù)的接口配置),可 以進(jìn)一步組織級提升系統(tǒng)間關(guān)聯(lián)關(guān)系分析的能力。
[0207] 4、完善了數(shù)據(jù)映射開發(fā)及代碼復(fù)查方法
[0208] 基于本方案中的公共機制,數(shù)據(jù)映射的開發(fā)方法將會從傳統(tǒng)的手工編碼(Hand Coded)轉(zhuǎn)換為可視化操作(Graphical Manual),這樣的轉(zhuǎn)變鼓勵開發(fā)人員將更多的注意力 投入到映射規(guī)則的正確性,同時這樣的機制降低了數(shù)據(jù)映射開發(fā)的技術(shù)要求,偏BA方向(即 不熟悉編碼)的需求分析人員也可參與數(shù)據(jù)映射的開發(fā)。
[0209] 公共機制同時統(tǒng)一了代碼風(fēng)格和規(guī)范,并在生成SQL執(zhí)行碼時,共性地考慮基本的 SQL性能問題。在初級開發(fā)人員通過可視化操作完成映射規(guī)則配置后,由需求分析人員復(fù)查 映射規(guī)則正確性,由中、高級開發(fā)人員針對SQL執(zhí)行碼做進(jìn)一步的程序性能復(fù)查,使數(shù)據(jù)映 射代碼復(fù)查的分工更有針對性。
[0210] 本發(fā)明實施例提供的數(shù)據(jù)映射方法,通過預(yù)先配置的數(shù)據(jù)映射規(guī)則,基于這些數(shù) 據(jù)映射規(guī)則可自動生成映射執(zhí)行碼,因此只需要關(guān)心對數(shù)據(jù)映射規(guī)則的調(diào)整,這樣可節(jié)省 編寫映射程序所花費的人力,當(dāng)各產(chǎn)品間數(shù)據(jù)映射涉及到的數(shù)據(jù)集存在較多的交集時,各 產(chǎn)品可使用同一映射執(zhí)行碼,保證了映射程序的復(fù)用性。
[0211] 參見圖6,為本發(fā)明實施例提供的數(shù)據(jù)映射裝置的組成示意圖,包括:
[0212] 映射規(guī)則獲取單元601,用于獲取用于實現(xiàn)當(dāng)前映射的每層子查詢中的數(shù)據(jù)映射 規(guī)則;
[0213] 執(zhí)行碼獲取單元602,用于根據(jù)所述每層子查詢中的數(shù)據(jù)映射規(guī)則,獲取用于實現(xiàn) 所述當(dāng)前映射的子查詢執(zhí)行碼;
[0214] 對應(yīng)關(guān)系取單元603,用于獲取所述當(dāng)前映射的映射源數(shù)據(jù)項與映射目標(biāo)數(shù)據(jù)項 之間的對應(yīng)關(guān)系;
[0215] 第一映射實現(xiàn)單元604,用于基于所述對應(yīng)關(guān)系,通過執(zhí)行所述子查詢執(zhí)行碼實現(xiàn) 所述當(dāng)前映射。
[0216] 在本發(fā)明實施例中,所述映射規(guī)則獲取單元,包括:
[0217] 各個子查詢獲取模塊,用于獲取用于實現(xiàn)所述當(dāng)前映射的各個子查詢;
[0218] 上層子查詢提取模塊,用于從所述各個子查詢中提取所有最上層子查詢;
[0219] 映射規(guī)則獲取模塊,用于獲取所述最上層子查詢中的數(shù)據(jù)映射規(guī)則,并根據(jù)所述 最上層子查詢中的數(shù)據(jù)映射規(guī)則,逐層解析所述最上層子查詢下面的每層下層子查詢中的 數(shù)據(jù)映射規(guī)則。
[0220] 在本發(fā)明實施例中,所述裝置還包括:
[0221 ]規(guī)則信息存儲單元,用于存儲映射規(guī)則信息,所述映射規(guī)則信息包括映射基本信 息、映射數(shù)據(jù)項信息、映射子查詢基本信息、映射子查詢配置信息、以及映射變量信息;
[0222] 其中,所述映射基本信息包括所有映射涉及的所有子查詢相關(guān)信息;所述映射數(shù) 據(jù)項信息包括每一映射的映射源數(shù)據(jù)項與映射目標(biāo)數(shù)據(jù)項之間的對應(yīng)關(guān)系;所述映射子查 詢基本信息包括用于實現(xiàn)每一映射的子查詢執(zhí)行碼;所述映射子查詢配置信息包括每一映 射下的各層子查詢的數(shù)據(jù)映射規(guī)則信息;所述映射變量信息包括每一映射所涉及的變量信 息;
[0223] 所述各個子查詢獲取模塊,具體用于從所述映射基本信息中提取用于實現(xiàn)所述當(dāng) 前映射的各個子查詢信息;
[0224] 所述上層子查詢提取模塊,具體用于根據(jù)所述映射子查詢配置信息,從所述各個 子查詢信息中提取所有最上層子查詢信息;
[0225] 所述映射規(guī)則獲取模塊,具體用于從所述映射子查詢配置信息中獲取所述最上層 子查詢中的數(shù)據(jù)映射規(guī)則信息,并根據(jù)所述最上層子查詢中的數(shù)據(jù)映射規(guī)則信息,逐層解 析所述最上層子查詢下面的每層下層子查詢,并從所述映射子查詢配置信息中獲取所述下 層子查詢中的數(shù)據(jù)映射規(guī)則信息;
[0226] 所述執(zhí)行碼獲取單元,具體用于根據(jù)所述每層子查詢中的數(shù)據(jù)映射規(guī)則,生成用 于實現(xiàn)所述當(dāng)前映射的子查詢執(zhí)行碼,并將生成的執(zhí)行碼回寫入所述映射子查詢基本信息 中,或者,從所述映射子查詢基本信息中提取預(yù)選存儲的用于實現(xiàn)所述當(dāng)前映射的子查詢 執(zhí)行碼;
[0227] 所述對應(yīng)關(guān)系取單元,具體用于從所述映射數(shù)據(jù)項信息中提取所述當(dāng)前映射的映 射源數(shù)據(jù)項與映射目標(biāo)數(shù)據(jù)項之間的對應(yīng)關(guān)系;
[0228] 所述第一映射實現(xiàn)單元,具體用于將所述對應(yīng)關(guān)系、所述映射變量信息中與所述 當(dāng)前映射相關(guān)的變量信息輸入到所述子查詢執(zhí)行碼的對應(yīng)位置,以得到映射執(zhí)行碼,通過 執(zhí)行所述映射執(zhí)行碼實現(xiàn)所述當(dāng)前映射。
[0229] 在本發(fā)明實施例中,所述裝置還包括:
[0230] 映射程序存儲單元,用于將所述映射執(zhí)行碼存儲在所述映射基本信息中;
[0231] 執(zhí)行碼判斷單元,用于在所述映射規(guī)則獲取單元獲取用于實現(xiàn)當(dāng)前映射的每層子 查詢中的數(shù)據(jù)映射規(guī)則之前,判斷所述映射基本信息中是否存儲有用于實現(xiàn)所述當(dāng)前映射 的映射執(zhí)行碼;
[0232] 第二映射實現(xiàn)單元,用于若所述映射基本信息中存儲有用于實現(xiàn)所述當(dāng)前映射的 映射執(zhí)行碼,則從所述映射基本信息中調(diào)取所述映射執(zhí)行碼,并通過執(zhí)行所述子查詢執(zhí)行 碼實現(xiàn)所述當(dāng)前映射;
[0233] 映射功能轉(zhuǎn)換單元,用于若所述映射基本信息中不存儲有用于實現(xiàn)所述當(dāng)前映射 的映射執(zhí)行碼,則利用所述映射規(guī)則獲取單元實現(xiàn)所述獲取用于實現(xiàn)當(dāng)前映射的每層子查 詢中的數(shù)據(jù)映射規(guī)則的功能。
[0234] 在本發(fā)明實施例中,所述裝置還包括:
[0235] 信息校驗單元,用于在所述規(guī)則信息存儲單元存儲映射規(guī)則信息之前,利用用戶 輸入的對所述映射規(guī)則信息進(jìn)行校驗的校驗信息;
[0236] 存儲執(zhí)行單元,用于在校驗通過后,利用所述規(guī)則信息存儲單元存儲通過校驗的 規(guī)則信息;
[0237] 異常顯示單元,用于在校驗異常時,顯示異常的規(guī)則信息。
[0238] 在本發(fā)明實施例中,所述校驗信息涉及的校驗內(nèi)容包括以下一種或多種:
[0239] 校驗必須唯一存在的信息是否唯一存在;
[0240]校驗必須有效的信息是否有效;
[0241] fe驗必須存在的彳目息是否缺失。
[0242] 通過以上的實施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實施 例方法中的全部或部分步驟可借助軟件加必需的通用硬件平臺的方式來實現(xiàn)?;谶@樣的 理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式 體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干 指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者諸如媒體網(wǎng)關(guān)等網(wǎng)絡(luò)通信 設(shè)備,等等)執(zhí)行本發(fā)明各個實施例或者實施例的某些部分所述的方法。
[0243] 需要說明的是,對于實施例公開的裝置而言,由于其與實施例公開的方法相對應(yīng), 所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
[0244]還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個 實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間 存在任何這種實際的關(guān)系或者順序。而且,術(shù)語"包括"、"包含"或者其任何其他變體意在涵 蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要 素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備 所固有的要素。在沒有更多限制的情況下,由語句"包括一個……"限定的要素,并不排除在 包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0245]對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。 對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的 一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明 將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一 致的最寬的范圍。
【主權(quán)項】
1. 一種數(shù)據(jù)映射方法,其特征在于,包括: 獲取用于實現(xiàn)當(dāng)前映射的每層子查詢中的數(shù)據(jù)映射規(guī)則; 根據(jù)所述每層子查詢中的數(shù)據(jù)映射規(guī)則,獲取用于實現(xiàn)所述當(dāng)前映射的子查詢執(zhí)行 碼; 獲取所述當(dāng)前映射的映射源數(shù)據(jù)項與映射目標(biāo)數(shù)據(jù)項之間的對應(yīng)關(guān)系; 基于所述對應(yīng)關(guān)系,通過執(zhí)行所述子查詢執(zhí)行碼實現(xiàn)所述當(dāng)前映射。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取用于實現(xiàn)當(dāng)前映射的每層子查詢 中的數(shù)據(jù)映射規(guī)則,包括: 獲取用于實現(xiàn)所述當(dāng)前映射的各個子查詢; 從所述各個子查詢中提取所有最上層子查詢; 獲取所述最上層子查詢中的數(shù)據(jù)映射規(guī)則,并根據(jù)所述最上層子查詢中的數(shù)據(jù)映射規(guī) 貝1J,逐層解析所述最上層子查詢下面的每層下層子查詢中的數(shù)據(jù)映射規(guī)則。3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括: 存儲映射規(guī)則信息,所述映射規(guī)則信息包括映射基本信息、映射數(shù)據(jù)項信息、映射子查 詢基本信息、映射子查詢配置信息、以及映射變量信息; 其中,所述映射基本信息包括所有映射涉及的所有子查詢相關(guān)信息;所述映射數(shù)據(jù)項 信息包括每一映射的映射源數(shù)據(jù)項與映射目標(biāo)數(shù)據(jù)項之間的對應(yīng)關(guān)系;所述映射子查詢基 本信息包括用于實現(xiàn)每一映射的子查詢執(zhí)行碼;所述映射子查詢配置信息包括每一映射下 的各層子查詢的數(shù)據(jù)映射規(guī)則信息;所述映射變量信息包括每一映射所涉及的變量信息; 所述獲取用于實現(xiàn)所述當(dāng)前映射的各個子查詢,包括: 從所述映射基本信息中提取用于實現(xiàn)所述當(dāng)前映射的各個子查詢信息; 所述從所述各個子查詢中提取所有最上層子查詢,包括: 根據(jù)所述映射子查詢配置信息,從所述各個子查詢信息中提取所有最上層子查詢信 息; 所述獲取所述最上層子查詢中的數(shù)據(jù)映射規(guī)則,并根據(jù)所述最上層子查詢中的數(shù)據(jù)映 射規(guī)則,逐層解析所述最上層子查詢下面的每層下層子查詢中的數(shù)據(jù)映射規(guī)則,包括: 從所述映射子查詢配置信息中獲取所述最上層子查詢中的數(shù)據(jù)映射規(guī)則信息,并根據(jù) 所述最上層子查詢中的數(shù)據(jù)映射規(guī)則信息,逐層解析所述最上層子查詢下面的每層下層子 查詢,并從所述映射子查詢配置信息中獲取所述下層子查詢中的數(shù)據(jù)映射規(guī)則信息; 所述獲取用于實現(xiàn)所述當(dāng)前映射的子查詢執(zhí)行碼,包括: 根據(jù)所述每層子查詢中的數(shù)據(jù)映射規(guī)則,生成用于實現(xiàn)所述當(dāng)前映射的子查詢執(zhí)行 碼,并將生成的執(zhí)行碼回寫入所述映射子查詢基本信息中,或者,從所述映射子查詢基本信 息中提取預(yù)選存儲的用于實現(xiàn)所述當(dāng)前映射的子查詢執(zhí)行碼; 所述獲取所述當(dāng)前映射的映射源數(shù)據(jù)項與映射目標(biāo)數(shù)據(jù)項之間的對應(yīng)關(guān)系,包括: 從所述映射數(shù)據(jù)項信息中提取所述當(dāng)前映射的映射源數(shù)據(jù)項與映射目標(biāo)數(shù)據(jù)項之間 的對應(yīng)關(guān)系; 所述基于所述對應(yīng)關(guān)系,通過執(zhí)行所述子查詢執(zhí)行碼實現(xiàn)所述當(dāng)前映射,包括: 將所述對應(yīng)關(guān)系、所述映射變量信息中與所述當(dāng)前映射相關(guān)的變量信息輸入到所述子 查詢執(zhí)行碼的對應(yīng)位置,以得到映射執(zhí)行碼,通過執(zhí)行所述映射執(zhí)行碼實現(xiàn)所述當(dāng)前映射。4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述方法還包括: 將所述映射執(zhí)行碼存儲在所述映射基本信息中; 貝1J,所述獲取用于實現(xiàn)當(dāng)前映射的每層子查詢中的數(shù)據(jù)映射規(guī)則之前,還包括: 判斷所述映射基本信息中是否存儲有用于實現(xiàn)所述當(dāng)前映射的映射執(zhí)行碼; 若是,則從所述映射基本信息中調(diào)取所述映射執(zhí)行碼,并通過執(zhí)行所述子查詢執(zhí)行碼 實現(xiàn)所述當(dāng)前映射; 若否,則執(zhí)行所述獲取用于實現(xiàn)當(dāng)前映射的每層子查詢中的數(shù)據(jù)映射規(guī)則的步驟。5. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述存儲映射規(guī)則信息之前,還包括: 利用用戶輸入的對所述映射規(guī)則信息進(jìn)行校驗的校驗信息; 在校驗通過后,存儲通過校驗的規(guī)則信息; 在fe驗異常時,顯不異常的規(guī)則?目息。6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述校驗信息涉及的校驗內(nèi)容包括以下一 種或多種: 校驗必須唯一存在的信息是否唯一存在; 校驗必須有效的信息是否有效; fe驗必須存在的彳目息是否缺失。7. -種數(shù)據(jù)映射裝置,其特征在于,包括: 映射規(guī)則獲取單元,用于獲取用于實現(xiàn)當(dāng)前映射的每層子查詢中的數(shù)據(jù)映射規(guī)則; 執(zhí)行碼獲取單元,用于根據(jù)所述每層子查詢中的數(shù)據(jù)映射規(guī)則,獲取用于實現(xiàn)所述當(dāng) 前映射的子查詢執(zhí)行碼; 對應(yīng)關(guān)系取單元,用于獲取所述當(dāng)前映射的映射源數(shù)據(jù)項與映射目標(biāo)數(shù)據(jù)項之間的對 應(yīng)關(guān)系; 第一映射實現(xiàn)單元,用于基于所述對應(yīng)關(guān)系,通過執(zhí)行所述子查詢執(zhí)行碼實現(xiàn)所述當(dāng) 前映射。8. 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述映射規(guī)則獲取單元,包括: 各個子查詢獲取模塊,用于獲取用于實現(xiàn)所述當(dāng)前映射的各個子查詢; 上層子查詢提取模塊,用于從所述各個子查詢中提取所有最上層子查詢; 映射規(guī)則獲取模塊,用于獲取所述最上層子查詢中的數(shù)據(jù)映射規(guī)則,并根據(jù)所述最上 層子查詢中的數(shù)據(jù)映射規(guī)則,逐層解析所述最上層子查詢下面的每層下層子查詢中的數(shù)據(jù) 映射規(guī)則。9. 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述裝置還包括: 規(guī)則信息存儲單元,用于存儲映射規(guī)則信息,所述映射規(guī)則信息包括映射基本信息、映 射數(shù)據(jù)項信息、映射子查詢基本信息、映射子查詢配置信息、以及映射變量信息; 其中,所述映射基本信息包括所有映射涉及的所有子查詢相關(guān)信息;所述映射數(shù)據(jù)項 信息包括每一映射的映射源數(shù)據(jù)項與映射目標(biāo)數(shù)據(jù)項之間的對應(yīng)關(guān)系;所述映射子查詢基 本信息包括用于實現(xiàn)每一映射的子查詢執(zhí)行碼;所述映射子查詢配置信息包括每一映射下 的各層子查詢的數(shù)據(jù)映射規(guī)則信息;所述映射變量信息包括每一映射所涉及的變量信息; 所述各個子查詢獲取模塊,具體用于從所述映射基本信息中提取用于實現(xiàn)所述當(dāng)前映 射的各個子查詢信息; 所述上層子查詢提取模塊,具體用于根據(jù)所述映射子查詢配置信息,從所述各個子查 詢信息中提取所有最上層子查詢信息; 所述映射規(guī)則獲取模塊,具體用于從所述映射子查詢配置信息中獲取所述最上層子查 詢中的數(shù)據(jù)映射規(guī)則信息,并根據(jù)所述最上層子查詢中的數(shù)據(jù)映射規(guī)則信息,逐層解析所 述最上層子查詢下面的每層下層子查詢,并從所述映射子查詢配置信息中獲取所述下層子 查詢中的數(shù)據(jù)映射規(guī)則信息; 所述執(zhí)行碼獲取單元,具體用于根據(jù)所述每層子查詢中的數(shù)據(jù)映射規(guī)則,生成用于實 現(xiàn)所述當(dāng)前映射的子查詢執(zhí)行碼,并將生成的執(zhí)行碼回寫入所述映射子查詢基本信息中, 或者,從所述映射子查詢基本信息中提取預(yù)選存儲的用于實現(xiàn)所述當(dāng)前映射的子查詢執(zhí)行 碼; 所述對應(yīng)關(guān)系取單元,具體用于從所述映射數(shù)據(jù)項信息中提取所述當(dāng)前映射的映射源 數(shù)據(jù)項與映射目標(biāo)數(shù)據(jù)項之間的對應(yīng)關(guān)系; 所述第一映射實現(xiàn)單元,具體用于將所述對應(yīng)關(guān)系、所述映射變量信息中與所述當(dāng)前 映射相關(guān)的變量信息輸入到所述子查詢執(zhí)行碼的對應(yīng)位置,以得到映射執(zhí)行碼,通過執(zhí)行 所述映射執(zhí)行碼實現(xiàn)所述當(dāng)前映射。10. 根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括: 映射程序存儲單元,用于將所述映射執(zhí)行碼存儲在所述映射基本信息中; 執(zhí)行碼判斷單元,用于在所述映射規(guī)則獲取單元獲取用于實現(xiàn)當(dāng)前映射的每層子查詢 中的數(shù)據(jù)映射規(guī)則之前,判斷所述映射基本信息中是否存儲有用于實現(xiàn)所述當(dāng)前映射的映 射執(zhí)行碼; 第二映射實現(xiàn)單元,用于若所述映射基本信息中存儲有用于實現(xiàn)所述當(dāng)前映射的映射 執(zhí)行碼,則從所述映射基本信息中調(diào)取所述映射執(zhí)行碼,并通過執(zhí)行所述子查詢執(zhí)行碼實 現(xiàn)所述當(dāng)前映射; 映射功能轉(zhuǎn)換單元,用于若所述映射基本信息中不存儲有用于實現(xiàn)所述當(dāng)前映射的映 射執(zhí)行碼,則利用所述映射規(guī)則獲取單元實現(xiàn)所述獲取用于實現(xiàn)當(dāng)前映射的每層子查詢中 的數(shù)據(jù)映射規(guī)則的功能。11. 根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括: 信息校驗單元,用于在所述規(guī)則信息存儲單元存儲映射規(guī)則信息之前,利用用戶輸入 的對所述映射規(guī)則信息進(jìn)行校驗的校驗信息; 存儲執(zhí)行單元,用于在校驗通過后,利用所述規(guī)則信息存儲單元存儲通過校驗的規(guī)則 信息; 異常顯示單元,用于在校驗異常時,顯示異常的規(guī)則信息。12. 根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述校驗信息涉及的校驗內(nèi)容包括以下 一種或多種: 校驗必須唯一存在的信息是否唯一存在; 校驗必須有效的信息是否有效; fe驗必須存在的彳目息是否缺失。
【文檔編號】G06F9/44GK105843605SQ201610153764
【公開日】2016年8月10日
【申請日】2016年3月17日
【發(fā)明人】張文杰, 程唯超, 王華丹
【申請人】中國銀行股份有限公司