誤的相關(guān)信息,并累計(jì)錯(cuò)誤次數(shù),當(dāng)所述錯(cuò)誤次 數(shù)小于或者等于所述配置文件中指定的錯(cuò)誤記錄閾值時(shí),將所述錯(cuò)誤的相關(guān)信息寫(xiě)入日志 文件。
[0188] 本申請(qǐng)雖然以較佳實(shí)施例公開(kāi)如上,但其并不是用來(lái)限定本申請(qǐng),任何本領(lǐng)域技 術(shù)人員在不脫離本申請(qǐng)的精神和范圍內(nèi),都可以做出可能的變動(dòng)和修改,因此本申請(qǐng)的保 護(hù)范圍應(yīng)當(dāng)以本申請(qǐng)權(quán)利要求所界定的范圍為準(zhǔn)。
[0189] 在一個(gè)典型的配置中,計(jì)算設(shè)備包括一個(gè)或多個(gè)處理器(CPU)、輸入/輸出接口、 網(wǎng)絡(luò)接口和內(nèi)存。
[0190] 內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(RAM)和/ 或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(ROM)或閃存(flashRAM)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì) 的示例。
[0191] 1、計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何 方法或技術(shù)來(lái)實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其 他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機(jī)存取存儲(chǔ) 器(SRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、其他類型的隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器 (ROM)、電可擦除可編程只讀存儲(chǔ)器(EEPR0M)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤(pán)只讀 存儲(chǔ)器(CD-ROM)、數(shù)字多功能光盤(pán)(DVD)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁磁盤(pán)存儲(chǔ)或 其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問(wèn)的信息。按照 本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括非暫存電腦可讀媒體(transitorymedia),如調(diào)制 的數(shù)據(jù)信號(hào)和載波。
[0192] 2、本領(lǐng)域技術(shù)人員應(yīng)明白,本申請(qǐng)的實(shí)施例可提供為方法、系統(tǒng)或計(jì)算機(jī)程序產(chǎn) 品。因此,本申請(qǐng)可采用完全硬件實(shí)施例、完全軟件實(shí)施例或結(jié)合軟件和硬件方面的實(shí)施例 的形式。而且,本申請(qǐng)可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用 存儲(chǔ)介質(zhì)(包括但不限于磁盤(pán)存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的 形式。
【主權(quán)項(xiàng)】
1. 一種用于數(shù)據(jù)轉(zhuǎn)換的方法,其特征在于,包括: 從預(yù)先生成的配置文件中讀取采用領(lǐng)域?qū)S谜Z(yǔ)言描述的數(shù)據(jù)轉(zhuǎn)換規(guī)則,所述數(shù)據(jù)轉(zhuǎn)換 規(guī)則,用于指定根據(jù)待轉(zhuǎn)換數(shù)據(jù)生成目標(biāo)數(shù)據(jù)所需執(zhí)行的轉(zhuǎn)換操作; 解析所述數(shù)據(jù)轉(zhuǎn)換規(guī)則,生成與所述數(shù)據(jù)轉(zhuǎn)換規(guī)則對(duì)應(yīng)的數(shù)據(jù)轉(zhuǎn)換算法; 讀取待轉(zhuǎn)換數(shù)據(jù),并根據(jù)所述數(shù)據(jù)轉(zhuǎn)換算法對(duì)所述待轉(zhuǎn)換數(shù)據(jù)進(jìn)行轉(zhuǎn)換。2. 根據(jù)權(quán)利要求1所述的用于數(shù)據(jù)轉(zhuǎn)換的方法,其特征在于,所述生成的與所述數(shù)據(jù) 轉(zhuǎn)換規(guī)則對(duì)應(yīng)的數(shù)據(jù)轉(zhuǎn)換算法,是采用抽象語(yǔ)法樹(shù)存儲(chǔ)的。3. 根據(jù)權(quán)利要求1或2所述的用于數(shù)據(jù)轉(zhuǎn)換的方法,其特征在于,用于描述數(shù)據(jù)轉(zhuǎn)換規(guī) 則的所述領(lǐng)域?qū)S谜Z(yǔ)言的語(yǔ)法規(guī)則包括: 數(shù)據(jù)轉(zhuǎn)換規(guī)則由一個(gè)或者一個(gè)以上數(shù)據(jù)轉(zhuǎn)換語(yǔ)句組成,相鄰語(yǔ)句之間采用特定分隔符 號(hào)分隔;和, 每個(gè)數(shù)據(jù)轉(zhuǎn)換語(yǔ)句由用等號(hào)連接的目的字段名和轉(zhuǎn)換表達(dá)式組成;和, 目的字段名不能包含等號(hào)以及所述特定分隔符號(hào);和, 轉(zhuǎn)換表達(dá)式包括以下形式:常量、內(nèi)置變量、或者用運(yùn)算符連接的常量和/或內(nèi)置變 量;和, 內(nèi)置變量的名稱包含預(yù)先設(shè)定的表示該變量的取值來(lái)自待轉(zhuǎn)換數(shù)據(jù)的字母、以及與該 變量對(duì)應(yīng)的待轉(zhuǎn)換數(shù)據(jù)中的特定字段的下標(biāo)。4. 根據(jù)權(quán)利要求3所述的用于數(shù)據(jù)轉(zhuǎn)換的方法,其特征在于,所述語(yǔ)法規(guī)則中的運(yùn)算 符包括:加法、減法、乘法、除法、或者取模運(yùn)算符中的一種或者多種。5. 根據(jù)權(quán)利要求3所述的用于數(shù)據(jù)轉(zhuǎn)換的方法,其特征在于,所述語(yǔ)法規(guī)則還包括: 支持的數(shù)據(jù)類型包括:長(zhǎng)整形long、雙精度浮點(diǎn)型double、日期類型Date、字符串類型 String,上述類型的常量采用對(duì)應(yīng)的字面量詞法表示; 支持的數(shù)據(jù)類型還包括:大數(shù)字類型Biglnteger和BigDecimal,上述類型的常量采用 顯示的類型轉(zhuǎn)換方式表示。6. 根據(jù)權(quán)利要求5所述的用于數(shù)據(jù)轉(zhuǎn)換的方法,其特征在于,所述語(yǔ)法規(guī)則還包括: 支持內(nèi)置變量采用顯示的類型轉(zhuǎn)換方式表示。7. -種用于數(shù)據(jù)轉(zhuǎn)換的裝置,其特征在于,包括: 規(guī)則讀取單元,用于從預(yù)先生成的配置文件中讀取采用領(lǐng)域?qū)S谜Z(yǔ)言描述的數(shù)據(jù)轉(zhuǎn)換 規(guī)則; 算法生成單元,用于解析所述數(shù)據(jù)轉(zhuǎn)換規(guī)則,生成與所述數(shù)據(jù)轉(zhuǎn)換規(guī)則對(duì)應(yīng)的數(shù)據(jù)轉(zhuǎn) 換算法; 數(shù)據(jù)轉(zhuǎn)換單元,用于讀取待轉(zhuǎn)換數(shù)據(jù),并根據(jù)所述數(shù)據(jù)轉(zhuǎn)換算法對(duì)所述待轉(zhuǎn)換數(shù)據(jù)進(jìn) 行轉(zhuǎn)換。8. 根據(jù)權(quán)利要求7所述的用于數(shù)據(jù)轉(zhuǎn)換的裝置,其特征在于,所述算法生成單元生成 的數(shù)據(jù)轉(zhuǎn)換算法,是采用抽象語(yǔ)法樹(shù)存儲(chǔ)的。9. 一種用于數(shù)據(jù)遷移的方法,其特征在于,包括: 從數(shù)據(jù)源端讀取待遷移數(shù)據(jù); 根據(jù)已生成的數(shù)據(jù)轉(zhuǎn)換算法將所述待遷移數(shù)據(jù)轉(zhuǎn)換為符合數(shù)據(jù)目的端數(shù)據(jù)模型的數(shù) 據(jù),所述數(shù)據(jù)轉(zhuǎn)換算法是根據(jù)預(yù)先生成的配置文件中的、采用領(lǐng)域?qū)S谜Z(yǔ)言描述的數(shù)據(jù)轉(zhuǎn) 換規(guī)則生成的; 將執(zhí)行轉(zhuǎn)換操作后的數(shù)據(jù)寫(xiě)入數(shù)據(jù)目的端。10. 根據(jù)權(quán)利要求9所述的用于數(shù)據(jù)遷移的方法,其特征在于,在將所述待遷移數(shù)據(jù)轉(zhuǎn) 換為符合數(shù)據(jù)目的端數(shù)據(jù)模型的數(shù)據(jù)之前,執(zhí)行下述操作: 從所述預(yù)先生成的配置文件中讀取采用領(lǐng)域?qū)S谜Z(yǔ)言描述的數(shù)據(jù)轉(zhuǎn)換規(guī)則; 解析所述數(shù)據(jù)轉(zhuǎn)換規(guī)則,生成與所述數(shù)據(jù)轉(zhuǎn)換規(guī)則對(duì)應(yīng)的數(shù)據(jù)轉(zhuǎn)換算法。11. 根據(jù)權(quán)利要求10所述的用于數(shù)據(jù)遷移的方法,其特征在于,所述生成的與數(shù)據(jù)轉(zhuǎn) 換規(guī)則對(duì)應(yīng)的數(shù)據(jù)轉(zhuǎn)換算法,是采用抽象語(yǔ)法樹(shù)存儲(chǔ)的。12. 根據(jù)權(quán)利要求10所述的用于數(shù)據(jù)遷移的方法,其特征在于,用于描述數(shù)據(jù)轉(zhuǎn)換規(guī) 則的所述領(lǐng)域?qū)S谜Z(yǔ)言的語(yǔ)法規(guī)則包括: 數(shù)據(jù)轉(zhuǎn)換規(guī)則由一個(gè)或者一個(gè)以上數(shù)據(jù)轉(zhuǎn)換語(yǔ)句組成,相鄰語(yǔ)句之間采用特定分隔符 號(hào)分隔;和, 每個(gè)數(shù)據(jù)轉(zhuǎn)換語(yǔ)句由用等號(hào)連接的目的字段名和轉(zhuǎn)換表達(dá)式組成; 目的字段名不能包含等號(hào)以及所述特定分隔符號(hào);和, 轉(zhuǎn)換表達(dá)式包括以下形式:常量、內(nèi)置變量、或者用運(yùn)算符連接的常量和/或內(nèi)置變 量;和, 內(nèi)置變量的名稱包含預(yù)先設(shè)定的表示該變量的取值來(lái)自待遷移數(shù)據(jù)的字母、以及與該 變量對(duì)應(yīng)的待遷移數(shù)據(jù)中的特定字段的下標(biāo)。13. 根據(jù)權(quán)利要求12所述的用于數(shù)據(jù)遷移的方法,其特征在于,所述語(yǔ)法規(guī)則還包括: 支持的運(yùn)算符包括:加法、減法、乘法、除法、或者取模運(yùn)算符中的一種或者多種;和/ 或, 支持的數(shù)據(jù)類型包括:長(zhǎng)整形long、雙精度浮點(diǎn)型double、日期類型Date、字符串類型String,上述類型的常量采用對(duì)應(yīng)的字面量詞法表示;和/或, 支持的數(shù)據(jù)類型還包括:大數(shù)字類型Biglnteger和BigDecimal,上述類型的常量采用 顯示的類型轉(zhuǎn)換方式表示;和/或, 支持內(nèi)置變量采用顯示的類型轉(zhuǎn)換方式表示。14. 根據(jù)權(quán)利要求9-13任一所述的用于數(shù)據(jù)遷移的方法,其特征在于,包括: 將從數(shù)據(jù)源端讀取的待遷移數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)緩沖區(qū)中; 相應(yīng)的,所述將所述待遷移數(shù)據(jù)轉(zhuǎn)換為符合數(shù)據(jù)目的端數(shù)據(jù)模型的數(shù)據(jù)是指,從所述 數(shù)據(jù)緩沖區(qū)中讀取待遷移數(shù)據(jù),并將其轉(zhuǎn)換為符合數(shù)據(jù)目的端數(shù)據(jù)模型的數(shù)據(jù)。15. 根據(jù)權(quán)利要求14所述的用于數(shù)據(jù)遷移的方法,其特征在于,在從所述數(shù)據(jù)緩沖區(qū) 中讀取待遷移數(shù)據(jù),并將其轉(zhuǎn)換為符合數(shù)據(jù)目的端數(shù)據(jù)模型的數(shù)據(jù)之前,執(zhí)行下述步驟: 按照所述配置文件中指定的并發(fā)數(shù)目,創(chuàng)建相應(yīng)數(shù)目的工作線程; 相應(yīng)的,所述從所述數(shù)據(jù)緩沖區(qū)中讀取待遷移數(shù)據(jù),并將其轉(zhuǎn)換為符合數(shù)據(jù)目的端數(shù) 據(jù)模型的數(shù)據(jù)是指,由已創(chuàng)建的工作線程并發(fā)執(zhí)行上述讀取和轉(zhuǎn)換操作。16. 根據(jù)權(quán)利要求15所述的用于數(shù)據(jù)遷移的方法,其特征在于,包括: 判斷所述執(zhí)行轉(zhuǎn)換操作后的數(shù)據(jù)的規(guī)模是否大于或者等于所述配置文件中指定的批 量導(dǎo)入閾值; 若是,則執(zhí)行所述將執(zhí)行轉(zhuǎn)換操作后的數(shù)據(jù)寫(xiě)入數(shù)據(jù)目的端的步驟; 若否,則緩存所述執(zhí)行轉(zhuǎn)換操作后的數(shù)據(jù)。17. 根據(jù)權(quán)利要求16所述的用于數(shù)據(jù)遷移的方法,其特征在于,包括: 監(jiān)測(cè)在所述將執(zhí)行轉(zhuǎn)換操作后的數(shù)據(jù)寫(xiě)入數(shù)據(jù)目的端的步驟中是否發(fā)生錯(cuò)誤;若發(fā)生 錯(cuò)誤,則執(zhí)行下述步驟: 記錄所述錯(cuò)誤的相關(guān)信息,并累計(jì)錯(cuò)誤次數(shù); 判斷所述錯(cuò)誤次數(shù)是否小于或者等于所述配置文件中指定的錯(cuò)誤記錄閾值;若是,則 將所述錯(cuò)誤的相關(guān)信息寫(xiě)入日志文件。18. -種用于數(shù)據(jù)遷移的裝置,其特征在于,包括: 數(shù)據(jù)讀取單元,用于從數(shù)據(jù)源端讀取待遷移數(shù)據(jù); 數(shù)據(jù)轉(zhuǎn)換單元,用于根據(jù)已生成的數(shù)據(jù)轉(zhuǎn)換算法將所述待遷移數(shù)據(jù)轉(zhuǎn)換為符合數(shù)據(jù)目 的端數(shù)據(jù)模型的數(shù)據(jù),所述數(shù)據(jù)轉(zhuǎn)換算法是根據(jù)預(yù)先生成的配置文件中的、采用領(lǐng)域?qū)S?語(yǔ)言描述的數(shù)據(jù)轉(zhuǎn)換規(guī)則生成的; 數(shù)據(jù)寫(xiě)入單元,用于將執(zhí)行轉(zhuǎn)換操作后的數(shù)據(jù)寫(xiě)入數(shù)據(jù)目的端。19. 根據(jù)權(quán)利要求18所述的用于數(shù)據(jù)遷移的裝置,其特征在于,所述裝置還包括: 規(guī)則讀取單元,用于從所述預(yù)先生成的配置文件中讀取采用領(lǐng)域?qū)S谜Z(yǔ)言描述的數(shù)據(jù) 轉(zhuǎn)換規(guī)則; 算法生成單元,用于解析所述數(shù)據(jù)轉(zhuǎn)換規(guī)則,生成與所述數(shù)據(jù)轉(zhuǎn)換規(guī)則對(duì)應(yīng)的數(shù)據(jù)轉(zhuǎn) 換算法。20. 根據(jù)權(quán)利要求19所述的用于數(shù)據(jù)遷移的裝置,其特征在于,所述算法生成單元生 成的數(shù)據(jù)轉(zhuǎn)換算法,是采用抽象語(yǔ)法樹(shù)存儲(chǔ)的。21. 根據(jù)權(quán)利要求18-20任一所述的用于數(shù)據(jù)遷移的裝置,其特征在于,所述裝置還包 括: 數(shù)據(jù)緩沖單元,用于將從數(shù)據(jù)源端讀取的待遷移數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)緩沖區(qū)中; 相應(yīng)的,所述數(shù)據(jù)轉(zhuǎn)換單元具體用于,從所述數(shù)據(jù)緩沖區(qū)中讀取待遷移數(shù)據(jù),并將其轉(zhuǎn) 換為符合數(shù)據(jù)目的端數(shù)據(jù)模型的數(shù)據(jù)。22. 根據(jù)權(quán)利要求21所述的用于數(shù)據(jù)遷移的裝置,其特征在于,所述裝置還包括: 線程創(chuàng)建單元,用于按照所述配置文件中指定的并發(fā)數(shù)目,創(chuàng)建相應(yīng)數(shù)目的工作線 程; 相應(yīng)的,所述數(shù)據(jù)轉(zhuǎn)換單元執(zhí)行的讀取數(shù)據(jù)和轉(zhuǎn)換數(shù)據(jù)的操作由上述工作線程并發(fā)執(zhí) 行。23. 根據(jù)權(quán)利要求22所述的用于數(shù)據(jù)遷移的裝置,其特征在于,所述裝置還包括: 判斷單元,用于判斷所述執(zhí)行轉(zhuǎn)換操作后的數(shù)據(jù)的規(guī)模是否大于或者等于所述配置文 件中指定的批量導(dǎo)入閾值;若是,則觸發(fā)所述數(shù)據(jù)寫(xiě)入單元?jiǎng)幼?;若否,則緩存所述執(zhí)行轉(zhuǎn) 換操作后的數(shù)據(jù)。24. 根據(jù)權(quán)利要求23所述的用于數(shù)據(jù)遷移的裝置,其特征在于,所述裝置還包括: 錯(cuò)誤監(jiān)測(cè)記錄單元,用于監(jiān)測(cè)在將執(zhí)行轉(zhuǎn)換操作后的數(shù)據(jù)寫(xiě)入數(shù)據(jù)目的端的步驟中 是否發(fā)生錯(cuò)誤;若發(fā)生錯(cuò)誤,記錄所述錯(cuò)誤的相關(guān)信息,并累計(jì)錯(cuò)誤次數(shù),當(dāng)所述錯(cuò)誤次數(shù) 小于或者等于所述配置文件中指定的錯(cuò)誤記錄閾值時(shí),將所述錯(cuò)誤的相關(guān)信息寫(xiě)入日志文 件。
【專利摘要】本申請(qǐng)公開(kāi)了一種用于數(shù)據(jù)轉(zhuǎn)換的方法和裝置、以及一種用于數(shù)據(jù)遷移的方法和裝置。其中所述用于數(shù)據(jù)轉(zhuǎn)換的方法包括:從預(yù)先生成的配置文件中讀取采用領(lǐng)域?qū)S谜Z(yǔ)言描述的數(shù)據(jù)轉(zhuǎn)換規(guī)則,所述數(shù)據(jù)轉(zhuǎn)換規(guī)則,用于指定根據(jù)待轉(zhuǎn)換數(shù)據(jù)生成目標(biāo)數(shù)據(jù)所需執(zhí)行的轉(zhuǎn)換操作;解析所述數(shù)據(jù)轉(zhuǎn)換規(guī)則,生成與所述數(shù)據(jù)轉(zhuǎn)換規(guī)則對(duì)應(yīng)的數(shù)據(jù)轉(zhuǎn)換算法;讀取待轉(zhuǎn)換數(shù)據(jù),并根據(jù)所述數(shù)據(jù)轉(zhuǎn)換算法對(duì)所述待轉(zhuǎn)換數(shù)據(jù)進(jìn)行轉(zhuǎn)換。采用本申請(qǐng)?zhí)峁┑姆椒?,?shí)現(xiàn)了數(shù)據(jù)轉(zhuǎn)換代碼的復(fù)用,有效減少開(kāi)發(fā)人員的工作量;而且由于采用了領(lǐng)域特定語(yǔ)言進(jìn)行數(shù)據(jù)轉(zhuǎn)換規(guī)則的描述,簡(jiǎn)單易懂,學(xué)習(xí)成本低,即使是執(zhí)行數(shù)據(jù)轉(zhuǎn)換操作的普通用戶也可以勝任對(duì)配置文件中的數(shù)據(jù)轉(zhuǎn)換規(guī)則的配置或修改工作。
【IPC分類】G06F17/30
【公開(kāi)號(hào)】CN105335412
【申請(qǐng)?zhí)枴緾N201410375147
【發(fā)明人】史策
【申請(qǐng)人】阿里巴巴集團(tuán)控股有限公司
【公開(kāi)日】2016年2月17日
【申請(qǐng)日】2014年7月31日