亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)遷移的方法和裝置的制造方法

文檔序號(hào):9579300閱讀:569來源:國知局
用于數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)遷移的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本申請(qǐng)涉及數(shù)據(jù)處理技術(shù),具體提供一種用于數(shù)據(jù)轉(zhuǎn)換的方法和裝置。本申請(qǐng)同 時(shí)提供一種用于數(shù)據(jù)遷移的方法和裝置。
【背景技術(shù)】
[0002] 隨著互聯(lián)網(wǎng)的發(fā)展,社交數(shù)據(jù)、在線交易記錄、社交媒體等數(shù)據(jù)日益增多,大量企 業(yè)開始擁有海量的客戶信息,不僅需要計(jì)算機(jī)存儲(chǔ)和處理的數(shù)據(jù)數(shù)量成指數(shù)級(jí)增長(zhǎng),而且 數(shù)據(jù)類型也越來越復(fù)雜。這些數(shù)據(jù)通常存儲(chǔ)在各種數(shù)據(jù)源中,有的存儲(chǔ)在傳統(tǒng)的關(guān)系型數(shù) 據(jù)庫中,例如:mySQL、oracle等數(shù)據(jù)庫系統(tǒng);有的存儲(chǔ)在近年來蓬勃發(fā)展的NoSQL數(shù)據(jù)庫 中,例如:HBase、Redis等數(shù)據(jù)庫系統(tǒng);有的則存儲(chǔ)在文件系統(tǒng)中,例如:分布式系統(tǒng)集群 Hadoop的分布式文件系統(tǒng)HDFS(Hadoop Distributed File System,HDFS)中。
[0003] 由于系統(tǒng)備份、升級(jí)、數(shù)據(jù)交換或者數(shù)據(jù)共享等需求,有時(shí)需要在上述各種數(shù)據(jù)源 之間進(jìn)行數(shù)據(jù)遷移,即:從作為源端的數(shù)據(jù)源中導(dǎo)出數(shù)據(jù),并將導(dǎo)出的數(shù)據(jù)導(dǎo)入到作為目的 端的數(shù)據(jù)源中。由于各種數(shù)據(jù)源的數(shù)據(jù)模型不同,例如,關(guān)系型數(shù)據(jù)庫與NoSQL數(shù)據(jù)庫的數(shù) 據(jù)組織方式不同,或者雖然兩個(gè)數(shù)據(jù)源都屬于關(guān)系型數(shù)據(jù)庫,但是數(shù)據(jù)表的結(jié)構(gòu)不同,都會(huì) 導(dǎo)致在上述導(dǎo)出、導(dǎo)入的過程中需要進(jìn)行數(shù)據(jù)轉(zhuǎn)換操作,將從源端讀取的數(shù)據(jù)轉(zhuǎn)換為符合 目的端數(shù)據(jù)模型的數(shù)據(jù)。
[0004] 現(xiàn)有技術(shù)中針對(duì)數(shù)據(jù)導(dǎo)入導(dǎo)出過程中的數(shù)據(jù)轉(zhuǎn)換需求,通常有兩種解決方案。一 種是case by case的,即針對(duì)每一次的數(shù)據(jù)遷移需求,根據(jù)具體的數(shù)據(jù)源端和數(shù)據(jù)目的端 的數(shù)據(jù)模型,編寫代碼實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)出、轉(zhuǎn)換和導(dǎo)入操作;另一種是采用DataX工具進(jìn)行遷 移,即采用DataX提供的從數(shù)據(jù)源端讀取數(shù)據(jù)、并進(jìn)行數(shù)據(jù)轉(zhuǎn)換的reader插件和向數(shù)據(jù)目 的端寫入數(shù)據(jù)的writer插件,實(shí)現(xiàn)不同數(shù)據(jù)源之間的數(shù)據(jù)遷移。
[0005] 在實(shí)際應(yīng)用中,上述兩種解決方案存在如下缺陷:
[0006] 方案一,如果采用case by case的方式在多個(gè)數(shù)據(jù)源之間進(jìn)行數(shù)據(jù)遷移,每增加 一個(gè)數(shù)據(jù)源,就需要依次編寫該數(shù)據(jù)源與其它數(shù)據(jù)源之間的數(shù)據(jù)遷移代碼,例如,新增一個(gè) 數(shù)據(jù)源與已有的3個(gè)數(shù)據(jù)源之間進(jìn)行數(shù)據(jù)遷移,則需要開發(fā)人員分別針對(duì)3個(gè)數(shù)據(jù)源編寫 三套代碼。顯然采用這種方式程序代碼無法復(fù)用,而且當(dāng)數(shù)據(jù)轉(zhuǎn)換規(guī)則發(fā)生變化時(shí),必須 重新修改和編譯代碼,開發(fā)人員需要付出大量重復(fù)勞動(dòng),增加了開發(fā)成本,而且代碼難以維 護(hù)。
[0007] 方案二,采用DataX架構(gòu)提供的插件,在某種程度上可以減少開發(fā)人員的工作量, 但是DataX已有的某些數(shù)據(jù)源端reader,并沒有提供數(shù)據(jù)轉(zhuǎn)換功能,因此開發(fā)人員仍然需 要按照DataX的架構(gòu)自行開發(fā)相關(guān)的代碼,例如,云梯reader不提供數(shù)據(jù)變換能力,開發(fā)人 員需要通過map/reduce任務(wù)產(chǎn)出計(jì)算好的待導(dǎo)入的數(shù)據(jù);此外,要使用DataX提供的插件, 還需要使用者學(xué)習(xí)該插件的配置方法,特別是reader插件通常采用專業(yè)的SQL語句進(jìn)行數(shù) 據(jù)轉(zhuǎn)換規(guī)則的配置,學(xué)習(xí)成本高,因此在數(shù)據(jù)轉(zhuǎn)換規(guī)則變更的情況下,負(fù)責(zé)進(jìn)行業(yè)務(wù)數(shù)據(jù)遷 移的普通用戶通常難以勝任對(duì)配置文件的修改工作,仍然需要開發(fā)人員參與。

【發(fā)明內(nèi)容】

[0008] 本申請(qǐng)?zhí)峁┮环N用于數(shù)據(jù)轉(zhuǎn)換的方法和裝置,以解決現(xiàn)有的數(shù)據(jù)轉(zhuǎn)換代碼無法復(fù) 用、以及數(shù)據(jù)轉(zhuǎn)換規(guī)則配置復(fù)雜的問題。本申請(qǐng)另外提供一種用于數(shù)據(jù)遷移的方法和裝置。
[0009] 本申請(qǐng)?zhí)峁┮环N用于數(shù)據(jù)轉(zhuǎn)換的方法,包括:
[0010] 從預(yù)先生成的配置文件中讀取采用領(lǐng)域?qū)S谜Z言描述的數(shù)據(jù)轉(zhuǎn)換規(guī)則,所述數(shù)據(jù) 轉(zhuǎn)換規(guī)則,用于指定根據(jù)待轉(zhuǎn)換數(shù)據(jù)生成目標(biāo)數(shù)據(jù)所需執(zhí)行的轉(zhuǎn)換操作;
[0011] 解析所述數(shù)據(jù)轉(zhuǎn)換規(guī)則,生成與所述數(shù)據(jù)轉(zhuǎn)換規(guī)則對(duì)應(yīng)的數(shù)據(jù)轉(zhuǎn)換算法;
[0012] 讀取待轉(zhuǎn)換數(shù)據(jù),并根據(jù)所述數(shù)據(jù)轉(zhuǎn)換算法對(duì)所述待轉(zhuǎn)換數(shù)據(jù)進(jìn)行轉(zhuǎn)換。
[0013] 可選的,所述生成的與數(shù)據(jù)轉(zhuǎn)換規(guī)則對(duì)應(yīng)的數(shù)據(jù)轉(zhuǎn)換算法,是采用抽象語法樹存 儲(chǔ)的。
[0014] 可選的,用于描述數(shù)據(jù)轉(zhuǎn)換規(guī)則的所述領(lǐng)域?qū)S谜Z言的語法規(guī)則包括:
[0015] 數(shù)據(jù)轉(zhuǎn)換規(guī)則由一個(gè)或者一個(gè)以上數(shù)據(jù)轉(zhuǎn)換語句組成,相鄰語句之間采用特定分 隔符號(hào)分隔;和,
[0016] 每個(gè)數(shù)據(jù)轉(zhuǎn)換語句由用等號(hào)連接的目的字段名和轉(zhuǎn)換表達(dá)式組成;和,
[0017]目的字段名不能包含等號(hào)以及所述特定分隔符號(hào);和,
[0018] 轉(zhuǎn)換表達(dá)式包括以下形式:常量、內(nèi)置變量、或者用運(yùn)算符連接的常量和/或內(nèi)置 變量;和,
[0019] 內(nèi)置變量的名稱包含預(yù)先設(shè)定的表示該變量的取值來自待轉(zhuǎn)換數(shù)據(jù)的字母、以及 與該變量對(duì)應(yīng)的待轉(zhuǎn)換數(shù)據(jù)中的特定字段的下標(biāo)。
[0020] 可選的,所述語法規(guī)則中的運(yùn)算符包括:加法、減法、乘法、除法、或者取模運(yùn)算符 中的一種或者多種。
[0021 ] 可選的,所述語法規(guī)則還包括:
[0022] 支持的數(shù)據(jù)類型包括:長(zhǎng)整形long、雙精度浮點(diǎn)型double、日期類型Date、字符串 類型String,上述類型的常量采用對(duì)應(yīng)的字面量詞法表示;
[0023] 支持的數(shù)據(jù)類型還包括:大數(shù)字類型Biglnteger和BigDecimal,上述類型的常量 采用顯示的類型轉(zhuǎn)換方式表示。
[0024] 可選的,所述語法規(guī)則還包括:
[0025] 支持內(nèi)置變量采用顯示的類型轉(zhuǎn)換方式表示。
[0026] 相應(yīng)的,本申請(qǐng)還提供一種用于數(shù)據(jù)轉(zhuǎn)換的裝置,包括:
[0027] 規(guī)則讀取單元,用于從預(yù)先生成的配置文件中讀取采用領(lǐng)域?qū)S谜Z言描述的數(shù)據(jù) 轉(zhuǎn)換規(guī)則;
[0028] 算法生成單元,用于解析所述數(shù)據(jù)轉(zhuǎn)換規(guī)則,生成與所述數(shù)據(jù)轉(zhuǎn)換規(guī)則對(duì)應(yīng)的數(shù) 據(jù)轉(zhuǎn)換算法;
[0029] 數(shù)據(jù)轉(zhuǎn)換單元,用于讀取待轉(zhuǎn)換數(shù)據(jù),并根據(jù)所述數(shù)據(jù)轉(zhuǎn)換算法對(duì)所述待轉(zhuǎn)換數(shù) 據(jù)進(jìn)行轉(zhuǎn)換。
[0030] 可選的,所述算法生成單元生成的數(shù)據(jù)轉(zhuǎn)換算法,是采用抽象語法樹存儲(chǔ)的。
[0031] 此外,本申請(qǐng)還提供一種用于數(shù)據(jù)遷移的方法,包括:
[0032] 從數(shù)據(jù)源端讀取待遷移數(shù)據(jù);
[0033] 根據(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言描述的數(shù) 據(jù)轉(zhuǎn)換規(guī)則生成的;
[0034] 將執(zhí)行轉(zhuǎn)換操作后的數(shù)據(jù)寫入數(shù)據(jù)目的端。
[0035] 可選的,在將所述待遷移數(shù)據(jù)轉(zhuǎn)換為符合數(shù)據(jù)目的端數(shù)據(jù)模型的數(shù)據(jù)之前,執(zhí)行 下述操作:
[0036] 從所述預(yù)先生成的配置文件中讀取采用領(lǐng)域?qū)S谜Z言描述的數(shù)據(jù)轉(zhuǎn)換規(guī)則;
[0037] 解析所述數(shù)據(jù)轉(zhuǎn)換規(guī)則,生成與所述數(shù)據(jù)轉(zhuǎn)換規(guī)則對(duì)應(yīng)的數(shù)據(jù)轉(zhuǎn)換算法。
[0038] 可選的,所述生成的與數(shù)據(jù)轉(zhuǎn)換規(guī)則對(duì)應(yīng)的數(shù)據(jù)轉(zhuǎn)換算法,是采用抽象語法樹存 儲(chǔ)的。
[0039] 可選的,用于描述數(shù)據(jù)轉(zhuǎn)換規(guī)則的所述領(lǐng)域?qū)S谜Z言的語法規(guī)則包括:
[0040] 數(shù)據(jù)轉(zhuǎn)換規(guī)則由一個(gè)或者一個(gè)以上數(shù)據(jù)轉(zhuǎn)換語句組成,相鄰語句之間采用特定分 隔符號(hào)分隔;和,
[0041] 每個(gè)數(shù)據(jù)轉(zhuǎn)換語句由用等號(hào)連接的目的字段名和轉(zhuǎn)換表達(dá)式組成;
[0042]目的字段名不能包含等號(hào)以及所述特定分隔符號(hào);和,
[0043] 轉(zhuǎn)換表達(dá)式包括以下形式:常量、內(nèi)置變量、或者用運(yùn)算符連接的常量和/或內(nèi)置 變量;和,
[0044] 內(nèi)置變量的名稱包含預(yù)先設(shè)定的表示該變量的取值來自待遷移數(shù)據(jù)的字母、以及 與該變量對(duì)應(yīng)的待遷移數(shù)據(jù)中的特定字段的下標(biāo)。
[0045] 可選的,所述語法規(guī)則還包括:
[0046] 支持的運(yùn)算符包括:加法、減法、乘法、除法、或者取模運(yùn)算符中的一種或者多種; 和/或,
[0047] 支持的數(shù)據(jù)類型包括:長(zhǎng)整形long、雙精度浮點(diǎn)型double、日期類型Date、字符串 類型String,上述類型的常量采用對(duì)應(yīng)的字面量詞法表示;和/或,
[0048] 支持的數(shù)據(jù)類型還包括:大數(shù)字類型Biglnteger和BigDecimal,上述類型的常量 采用顯示的類型轉(zhuǎn)換方式表示;和/或,
[0049] 支持內(nèi)置變量采用顯示的類型轉(zhuǎn)換方式表示。
[0050] 可選的,所述方法還包括:
[0051] 將從數(shù)據(jù)源端讀取的待遷移數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)緩沖區(qū)中;
[0052] 相應(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ù)。
[0053] 可選的,在從所述數(shù)據(jù)緩沖區(qū)中讀取待遷移數(shù)據(jù),并將其轉(zhuǎn)換為符合數(shù)據(jù)目的端 數(shù)據(jù)模型的數(shù)據(jù)之前,執(zhí)行下述步驟:
[0054] 按照所述配置文件中指定的并發(fā)數(shù)目,創(chuàng)建相應(yīng)數(shù)目的工作線程;
[0055] 相應(yīng)的,所述從所述數(shù)據(jù)緩沖區(qū)中讀取待遷移數(shù)據(jù),并將其轉(zhuǎn)換為符合數(shù)據(jù)目的 端數(shù)據(jù)模型的數(shù)據(jù)是指,由已創(chuàng)建的工作線程并發(fā)執(zhí)行上述讀取和轉(zhuǎn)換操作。
[0056] 可選的,所述方法包括:
[0057] 判斷所述執(zhí)行轉(zhuǎn)換操作后的數(shù)據(jù)的規(guī)模是否大于或者等于所述配置文件中指定 的批量導(dǎo)入閾值;
[0058] 若是,則執(zhí)行所述將執(zhí)行轉(zhuǎn)換操作后的數(shù)據(jù)寫入數(shù)據(jù)目的端的步驟;
[0059] 若否,則緩存所述執(zhí)行轉(zhuǎn)換操作后的數(shù)據(jù)。
[0060] 可選的,所述方法包括:
[0061] 監(jiān)測(cè)在所述將執(zhí)行轉(zhuǎn)換操作后的數(shù)據(jù)寫入數(shù)據(jù)目的端的步驟中是否發(fā)生錯(cuò)誤;若 發(fā)生錯(cuò)誤,則執(zhí)行下述步驟:
[0062] 記錄所述錯(cuò)誤的相關(guān)信息,并累計(jì)錯(cuò)誤次數(shù);
[0063] 判斷所述錯(cuò)誤次數(shù)是否小于或者等于所述配置文件中指定的錯(cuò)誤記錄閾值;若 是,則將所述錯(cuò)誤的相關(guān)信息寫入日志文件。
[0064] 相應(yīng)的,本申請(qǐng)還提供一種用于數(shù)據(jù)遷移的裝置,包括:
[0065] 數(shù)據(jù)讀取單元,用于從數(shù)據(jù)源端讀取待遷移數(shù)據(jù);
[0066] 數(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)域 專用語言描述的數(shù)據(jù)轉(zhuǎn)換規(guī)則生成的;
[0067] 數(shù)據(jù)寫入單元,用于將執(zhí)行轉(zhuǎn)換操作后的數(shù)據(jù)寫入數(shù)據(jù)目的端。
[0068] 可選的,所述裝置還包括:
[0069] 規(guī)則讀取單元,用于從所述預(yù)先生成的配置文件中讀取采用領(lǐng)域?qū)S谜Z言描述的 數(shù)據(jù)轉(zhuǎn)換規(guī)則;
[0070] 算法生成單元,用于解析所述數(shù)據(jù)轉(zhuǎn)換規(guī)則,生成與所述數(shù)據(jù)轉(zhuǎn)換規(guī)則對(duì)應(yīng)的數(shù) 據(jù)轉(zhuǎn)換算法。
[0071] 可選的,所述算法生成單元生成的數(shù)據(jù)轉(zhuǎn)換算法,是采用抽象語法樹存儲(chǔ)的。
[0072] 可選的,所述裝置還包括:
[0073] 數(shù)據(jù)緩沖單元,用于將從數(shù)據(jù)源端讀取的待遷移數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)緩沖區(qū)中;
[0074] 相應(yīng)的,所述數(shù)據(jù)
當(dāng)前第1頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1