本發(fā)明涉及大數(shù)據(jù)處理領(lǐng)域,尤其涉及一種基于大數(shù)據(jù)的數(shù)據(jù)同步方法及裝置。
背景技術(shù):
隨著大數(shù)據(jù)技術(shù)的不斷發(fā)展,當(dāng)前各類數(shù)據(jù)存儲(chǔ)服務(wù)層出不窮,例如:所述存儲(chǔ)服務(wù)包括:關(guān)系型數(shù)據(jù)庫(kù)mysql、非關(guān)系型數(shù)據(jù)庫(kù)hbase、數(shù)據(jù)倉(cāng)庫(kù)hive、文件存儲(chǔ)hdfs以及具有存儲(chǔ)功能的文件索引服務(wù)elasicsearch等。這些存儲(chǔ)數(shù)據(jù)服務(wù)可能會(huì)應(yīng)用到相同的存儲(chǔ)數(shù)據(jù),因此需要進(jìn)行數(shù)據(jù)存儲(chǔ)服務(wù)間的數(shù)據(jù)服務(wù)。
但是,現(xiàn)有技術(shù)中,不同類型的數(shù)據(jù)存儲(chǔ)服務(wù)之間進(jìn)行數(shù)據(jù)同步時(shí),由于不同類型的數(shù)據(jù)存儲(chǔ)服務(wù)的接口類型不同,因此需要在不同類型的數(shù)據(jù)存儲(chǔ)服務(wù)的接口中不斷切換,因此不僅操作過(guò)程繁瑣、而且實(shí)現(xiàn)的成本較高。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明實(shí)施例提供了一種基于大數(shù)據(jù)的同步方法及裝置,解決了現(xiàn)有技術(shù)中由于不同類型的數(shù)據(jù)存儲(chǔ)服務(wù)的接口類型不同,需要在不同類型的數(shù)據(jù)存儲(chǔ)服務(wù)的接口中不斷切換的問(wèn)題。
本發(fā)明實(shí)施例提供了一種基于大數(shù)據(jù)的同步方法,所述方法可以包括:
當(dāng)接收到將第一目標(biāo)數(shù)據(jù)源與第二目標(biāo)數(shù)據(jù)源進(jìn)行數(shù)據(jù)同步的指令后,將訪問(wèn)所述第一目標(biāo)數(shù)據(jù)源所需的第一訪問(wèn)信息以參數(shù)的形式發(fā)送給datareader;
所述datareader依據(jù)所述第一訪問(wèn)信息對(duì)應(yīng)的參數(shù),從所述第一目標(biāo)數(shù)據(jù)源中讀取待同步的數(shù)據(jù),并將所述待同步數(shù)據(jù)保存為第一數(shù)據(jù)抽象;
依據(jù)預(yù)設(shè)的處理邏輯將所述第一數(shù)據(jù)抽象轉(zhuǎn)換成第二數(shù)據(jù)抽象;其中,所述預(yù)設(shè)的處理邏輯為用戶自定義設(shè)置的;
將訪問(wèn)所述第二目標(biāo)數(shù)據(jù)源所需的第二訪問(wèn)信息以參數(shù)的形式發(fā)送給datawriter;
所述datawriter依據(jù)所述第二訪問(wèn)信息對(duì)應(yīng)的參數(shù),將所述第二數(shù)據(jù)抽象寫(xiě)入所述第二目標(biāo)數(shù)據(jù)源。
優(yōu)選的,所述將訪問(wèn)所述第一目標(biāo)數(shù)據(jù)源所需的第一訪問(wèn)信息以參數(shù)的形式發(fā)送給datareader,包括:
獲取訪問(wèn)所述第一目標(biāo)數(shù)據(jù)源的第一訪問(wèn)信息;
將所述第一訪問(wèn)信息轉(zhuǎn)換成相對(duì)應(yīng)的參數(shù);
將所述第一訪問(wèn)信息相對(duì)應(yīng)的參數(shù)發(fā)送給所述datareader。
優(yōu)選的,所述datareader依據(jù)獲得的所述第一訪問(wèn)信息對(duì)應(yīng)的參數(shù),從所述第一目標(biāo)數(shù)據(jù)源中讀取待同步的數(shù)據(jù),并將所述待同步的數(shù)據(jù)保存為第一數(shù)據(jù)抽象,包括:
對(duì)接收到的第一訪問(wèn)信息對(duì)應(yīng)的參數(shù)進(jìn)行解析,獲得所述第一目標(biāo)數(shù)據(jù)源的類型和連接信息;
依據(jù)所述第一目標(biāo)數(shù)據(jù)源的連接信息連接到所述第一目標(biāo)數(shù)據(jù)源;
基于所述第一目標(biāo)數(shù)據(jù)源的類型獲得所述第一目標(biāo)數(shù)據(jù)源的接口類型,并依據(jù)所述第一目標(biāo)數(shù)據(jù)源的接口類型從所述第一目標(biāo)數(shù)據(jù)源中讀取待同步的數(shù)據(jù)。
優(yōu)選的,所述將訪問(wèn)所述第二目標(biāo)數(shù)據(jù)源所需的第二訪問(wèn)信息以參數(shù)的形式發(fā)送給datawriter,包括:
獲取訪問(wèn)所述第二目標(biāo)數(shù)據(jù)源所需的第二訪問(wèn)信息;
將所述第二訪問(wèn)信息轉(zhuǎn)換成對(duì)應(yīng)的參數(shù);
將所述第二訪問(wèn)信息對(duì)應(yīng)的參數(shù)發(fā)送給所述datawriter。
優(yōu)選的,所述datawriter依據(jù)獲所述第二訪問(wèn)信息對(duì)應(yīng)的參數(shù),將所述第二數(shù)據(jù)抽象寫(xiě)入所述第二目標(biāo)數(shù)據(jù)源,包括:
將所述第二訪問(wèn)信息對(duì)應(yīng)的參數(shù)進(jìn)行解析,獲得所述第二目標(biāo)數(shù)據(jù)源的類型和連接信息;
依據(jù)所述第二目標(biāo)數(shù)據(jù)源的連接信息連接到所述第二目標(biāo)數(shù)據(jù)源;
依據(jù)所述第二目標(biāo)數(shù)據(jù)源的類型,獲取所述第二目標(biāo)數(shù)據(jù)源的接口類型,并依據(jù)所述第二目標(biāo)數(shù)據(jù)源的接口類型,通過(guò)所述datawriter將所述第二數(shù)據(jù)抽象寫(xiě)入到所述第二目標(biāo)數(shù)據(jù)源。
本發(fā)明實(shí)施例還提供了一種基于大數(shù)據(jù)的同步裝置,所述裝置可以包括:
第一發(fā)送單元,用于當(dāng)接收到將第一目標(biāo)數(shù)據(jù)源與第二目標(biāo)數(shù)據(jù)源進(jìn)行數(shù)據(jù)同步的指令后,將訪問(wèn)所述第一目標(biāo)數(shù)據(jù)源所需的第一訪問(wèn)信息以參數(shù)的形式發(fā)送給datareader;
讀取單元,用于所述datareader依據(jù)所述第一訪問(wèn)信息對(duì)應(yīng)的參數(shù),從所述第一目標(biāo)數(shù)據(jù)源中讀取待同步的數(shù)據(jù),并將所述待同步數(shù)據(jù)保存為第一數(shù)據(jù)抽象;
轉(zhuǎn)換單元,用于依據(jù)預(yù)設(shè)的處理邏輯將所述第一數(shù)據(jù)抽象轉(zhuǎn)換成第二數(shù)據(jù)抽象;其中,所述預(yù)設(shè)的處理邏輯為用戶自定義設(shè)置的;
第二發(fā)送單元,用于將訪問(wèn)所述第二目標(biāo)數(shù)據(jù)源所需的第二訪問(wèn)信息以參數(shù)的形式發(fā)送給datawriter;寫(xiě)入單元,用于所述datawriter依據(jù)所述第二訪問(wèn)信息對(duì)應(yīng)的參數(shù),將所述第二數(shù)據(jù)抽象寫(xiě)入所述第二目標(biāo)數(shù)據(jù)源。
可選的,所述第一發(fā)送單元,包括:
第一獲取單元,用于獲取訪問(wèn)所述第一目標(biāo)數(shù)據(jù)源的第一訪問(wèn)信息;
第一轉(zhuǎn)換子單元,用于將所述第一訪問(wèn)信息轉(zhuǎn)換成相對(duì)應(yīng)的參數(shù);
第一發(fā)送子單元,用于將所述第一訪問(wèn)信息相對(duì)應(yīng)的參數(shù)發(fā)送給所述datareader。
可選的,所述讀取單元,包括:
第一解析子單元,用于對(duì)接收到的第一訪問(wèn)信息對(duì)應(yīng)的參數(shù)進(jìn)行解析,獲得所述第一目標(biāo)數(shù)據(jù)源的類型和連接信息;
第一連接子單元,用于依據(jù)所述第一目標(biāo)數(shù)據(jù)源的連接信息連接到所述第一目標(biāo)數(shù)據(jù)源;
讀取子單元,用于基于所述第一目標(biāo)數(shù)據(jù)源的類型獲得所述第一目標(biāo)數(shù)據(jù)源的接口類型,并依據(jù)所述第一目標(biāo)數(shù)據(jù)源的接口類型從所述第一目標(biāo)數(shù)據(jù)源中讀取待同步的數(shù)據(jù)。
可選的,所述第二發(fā)送單元,包括:
第二獲取子單元,用于獲取訪問(wèn)所述第二目標(biāo)數(shù)據(jù)源所需的第二訪問(wèn)信息;
第二轉(zhuǎn)換子單元,用于將所述第二訪問(wèn)信息轉(zhuǎn)換成對(duì)應(yīng)的參數(shù);
第二發(fā)送子單元,用于將所述第二訪問(wèn)信息對(duì)應(yīng)的參數(shù)發(fā)送給所述datawriter。
可選的,所述寫(xiě)入單元,包括:
第二解析子單元,用于將所述第二訪問(wèn)信息對(duì)應(yīng)的參數(shù)進(jìn)行解析,獲得所述第二目標(biāo)數(shù)據(jù)源的類型和連接信息;
第二連接子單元,用于依據(jù)所述第二目標(biāo)數(shù)據(jù)源的連接信息連接到所述第二目標(biāo)數(shù)據(jù)源;
寫(xiě)入子單元,用于依據(jù)所述第二目標(biāo)數(shù)據(jù)源的類型,獲取所述第二目標(biāo)數(shù)據(jù)源的接口類型,并依據(jù)所述第二目標(biāo)數(shù)據(jù)源的接口類型,通過(guò)所述datawriter將所述第二數(shù)據(jù)抽象寫(xiě)入到所述第二目標(biāo)數(shù)據(jù)源。
本實(shí)施例中,當(dāng)接收到將第一目標(biāo)數(shù)據(jù)源與第二目標(biāo)數(shù)據(jù)源進(jìn)行數(shù)據(jù)同步的指令后,將訪問(wèn)所述第一目標(biāo)數(shù)據(jù)源所需的第一訪問(wèn)信息以參數(shù)的形式發(fā)送給datareader,所述datareader依據(jù)所述第一訪問(wèn)信息對(duì)應(yīng)的參數(shù),從所述第一目標(biāo)數(shù)據(jù)源中讀取待同步的數(shù)據(jù),并將所述待同步數(shù)據(jù)保存為第一數(shù)據(jù)抽象;依據(jù)接收到的預(yù)設(shè)的處理邏輯將所述第一數(shù)據(jù)抽象轉(zhuǎn)換成第二數(shù)據(jù)抽象;其中,所述預(yù)設(shè)的處理邏輯為用戶自定義設(shè)置的;將訪問(wèn)所述第二目標(biāo)數(shù)據(jù)源所需的第二訪問(wèn)信息以參數(shù)的形式發(fā)送給datawriter;其中,所述第一數(shù)據(jù)抽象和所述第二數(shù)據(jù)抽象為所述datareader和所述datawriter通用的數(shù)據(jù)抽象;所述datawriter依據(jù)所述第二訪問(wèn)信息對(duì)應(yīng)的參數(shù),將所述第二數(shù)據(jù)抽象寫(xiě)入所述第二目標(biāo)數(shù)據(jù)源。因此,datareader從第一目標(biāo)數(shù)據(jù)源獲取了待同步數(shù)據(jù)后,可以直接由datawriter寫(xiě)入到第二目標(biāo)數(shù)據(jù)源中,該過(guò)程無(wú)需用戶手動(dòng)的在第一目標(biāo)數(shù)據(jù)源和第二目標(biāo)數(shù)據(jù)源的不同接口類型中不斷的切換,不僅操作簡(jiǎn)便而且節(jié)省了成本。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的一種基于大數(shù)據(jù)的離線同步方法的流程示意圖;
圖2為本發(fā)明實(shí)施例提供的一種基于大數(shù)據(jù)的離線同步裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
參考圖1,示出了本發(fā)明實(shí)施例一種基于大數(shù)據(jù)的同步方法,在本實(shí)施例中,所述方法可以包括:
s101:當(dāng)接收到所述第一目標(biāo)數(shù)據(jù)源與第二目標(biāo)數(shù)據(jù)源進(jìn)行數(shù)據(jù)同步的指令后,將訪問(wèn)所述第一目標(biāo)數(shù)據(jù)源所需的第一訪問(wèn)信息以參數(shù)的形式發(fā)送給datareader;
本實(shí)施例中,第一目標(biāo)數(shù)據(jù)源和第二目標(biāo)數(shù)據(jù)源可以是不同類型的數(shù)據(jù)存儲(chǔ)服務(wù),其中,所述第一目標(biāo)數(shù)據(jù)和第二目標(biāo)數(shù)據(jù)分別可以包括:關(guān)系型數(shù)據(jù)庫(kù)mysql、非關(guān)系型數(shù)據(jù)庫(kù)hbase、數(shù)據(jù)倉(cāng)庫(kù)hive、文件存儲(chǔ)hdfs以及具有存儲(chǔ)功能的文件索引服務(wù)elasicsearch等。
本實(shí)施例中,需要說(shuō)明的是,發(fā)起第一目標(biāo)數(shù)據(jù)源與第二目標(biāo)數(shù)據(jù)源進(jìn)行數(shù)據(jù)同步指令的執(zhí)行者可以是用戶。
本實(shí)施例中,當(dāng)接收到將第一目標(biāo)數(shù)據(jù)源與第二目標(biāo)數(shù)據(jù)源進(jìn)行數(shù)據(jù)同步的指令后,datareader就會(huì)獲知從哪個(gè)數(shù)據(jù)源讀取待同步的數(shù)據(jù),但是在獲取所述待同步數(shù)據(jù)之前,datareader需要通過(guò)s101獲知如何訪問(wèn)第一目標(biāo)數(shù)據(jù)源,即獲知訪問(wèn)第一目標(biāo)數(shù)據(jù)源的第一訪問(wèn)信息。
其中,具體的,s101中,將訪問(wèn)所述第一目標(biāo)數(shù)據(jù)源所需的第一訪問(wèn)信息以參數(shù)的形式發(fā)送給datareader,可以包括:
獲取訪問(wèn)所述第一目標(biāo)數(shù)據(jù)源的第一訪問(wèn)信息;
將所述第一訪問(wèn)信息轉(zhuǎn)換成相對(duì)應(yīng)的參數(shù);
將所述第一訪問(wèn)信息相對(duì)應(yīng)的參數(shù)發(fā)送給所述datareader。
本實(shí)施例中,訪問(wèn)所述第一目標(biāo)數(shù)據(jù)源所需的第一訪問(wèn)信息可以包括:第一目標(biāo)數(shù)據(jù)源的類型和第一目標(biāo)數(shù)據(jù)源的連接信息。其中,所述第一目標(biāo)數(shù)據(jù)源的類型可以包括:關(guān)系型數(shù)據(jù)庫(kù)mysql、非關(guān)系型數(shù)據(jù)庫(kù)hbase、數(shù)據(jù)倉(cāng)庫(kù)hive、文件存儲(chǔ)hdfs以及具有存儲(chǔ)功能的文件索引服務(wù)elasicsearch等;所述第一目標(biāo)數(shù)據(jù)源的連接信息可以包括:第一目標(biāo)數(shù)據(jù)源的訪問(wèn)地址、第一目標(biāo)數(shù)據(jù)源的端口信息、第一目標(biāo)數(shù)據(jù)源的用戶名及密碼等。
本實(shí)施例中,所述第一訪問(wèn)信息中不同的信息可以轉(zhuǎn)換成不同的參數(shù),例如:參數(shù)sink表示的是數(shù)據(jù)源類型、mode表示的是數(shù)據(jù)的寫(xiě)入方式、specific表示的是不同類型數(shù)據(jù)源的參數(shù)配置情況,其中,對(duì)于mysql類型的數(shù)據(jù)源的參數(shù)配置情況例如可以參看如下的表1:
表1
本實(shí)施例中,所述第一目標(biāo)數(shù)據(jù)源的訪問(wèn)信息可以有多種來(lái)源,例如,可以是從所述第一目標(biāo)數(shù)據(jù)源中獲得的,也可以是已保存好的,其中對(duì)于已保存好的,還可以有兩種方式:一種是曾經(jīng)從所述第二目標(biāo)數(shù)據(jù)源中獲得的,然后進(jìn)行了保存,以便以后進(jìn)行數(shù)據(jù)同步時(shí)使用,也可以是技術(shù)人員預(yù)先設(shè)置的。
s102:所述datareader依據(jù)獲得的所述第一訪問(wèn)信息對(duì)應(yīng)的參數(shù),從所述第一目標(biāo)數(shù)據(jù)源中讀取待同步的數(shù)據(jù),并將所述待同步的數(shù)據(jù)保存為第一數(shù)據(jù)抽象。
其中,s102具體可以包括:
對(duì)接收到的第一訪問(wèn)信息對(duì)應(yīng)的參數(shù)進(jìn)行解析,獲得所述第一目標(biāo)數(shù)據(jù)源的類型和連接信息;
依據(jù)所述第一目標(biāo)數(shù)據(jù)源的連接信息連接到所述第一目標(biāo)數(shù)據(jù)源;
基于所述第一目標(biāo)數(shù)據(jù)源的類型獲得所述第一目標(biāo)數(shù)據(jù)源的接口類型,并依據(jù)所述第一目標(biāo)數(shù)據(jù)源的接口類型從所述第一目標(biāo)數(shù)據(jù)源的中讀取待同步的數(shù)據(jù)。
本實(shí)施例中,從上文s101中可以得知,所述第一訪問(wèn)信息可以包括第一目標(biāo)數(shù)據(jù)源的類型和連接信息,發(fā)送給datareader的數(shù)據(jù)是轉(zhuǎn)換成參數(shù)的第一訪問(wèn)信息,因此datareader若要知道如何去訪問(wèn)所述第一目標(biāo)數(shù)據(jù)源,需要對(duì)所述第一訪問(wèn)信息對(duì)應(yīng)的參數(shù)進(jìn)行解析,從而得到所述第一目標(biāo)數(shù)據(jù)源的類型和連接信息。
本實(shí)施例中,第一目標(biāo)數(shù)據(jù)源的連接信息可以包括:第一目標(biāo)數(shù)據(jù)源的訪問(wèn)地址、第一目標(biāo)數(shù)據(jù)源的端口信息、第一目標(biāo)數(shù)據(jù)源的用戶名及密碼等。datareader可以依據(jù)獲知的這些連接信息,與所述第一目標(biāo)數(shù)據(jù)源進(jìn)行連接。
本實(shí)施例中,不同的數(shù)據(jù)類型可以具有不同的接口類型,datareader在獲知第一目標(biāo)數(shù)據(jù)源的接口類型時(shí),可以切換到訪問(wèn)該種接口類型兼容的方式訪問(wèn)第一目標(biāo)數(shù)據(jù)源中待同步的數(shù)據(jù)。
s103:依據(jù)預(yù)設(shè)的處理邏輯將所述第一數(shù)據(jù)抽象轉(zhuǎn)換成第二數(shù)據(jù)抽象;其中,所述預(yù)設(shè)的處理邏輯為用戶自定義設(shè)置的。
本實(shí)施例中,當(dāng)用戶需要將第一目標(biāo)數(shù)據(jù)源中的待同步數(shù)據(jù)同步到第二目標(biāo)數(shù)據(jù)源中時(shí),獲取到的第一目標(biāo)數(shù)據(jù)源的數(shù)據(jù)不一定全部都是用戶需要的,即不一定要將獲取到的所有的待同步的數(shù)據(jù)寫(xiě)入到第二目標(biāo)數(shù)據(jù)源中,或者獲取到的待同步的數(shù)據(jù)的格式不一定是用戶需要的,即在將獲取到的待同步的數(shù)據(jù)寫(xiě)入到第二目標(biāo)數(shù)據(jù)源時(shí),不一定就按照獲取到的待同步的數(shù)據(jù)的格式。因此,在將獲取到的所述待同步的數(shù)據(jù)寫(xiě)入到第二目標(biāo)數(shù)據(jù)源之前,可以先將所述待同步的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,具體如何轉(zhuǎn)換,可以依據(jù)用戶的需求,也就是說(shuō)用戶可以自定義的設(shè)置數(shù)據(jù)轉(zhuǎn)換的處理邏輯,然后可以按照用戶設(shè)置的處理邏輯將所述第一數(shù)據(jù)抽象轉(zhuǎn)換成第二數(shù)據(jù)抽象。
舉例說(shuō)明:用戶自定義的處理邏輯可以包括:對(duì)所述第一數(shù)據(jù)抽象進(jìn)行篩選、格式變換、聚合等,其中,對(duì)所述第一數(shù)據(jù)抽象進(jìn)行篩選,例如:第一數(shù)據(jù)抽象中數(shù)據(jù)可以包括:某個(gè)地區(qū)的溫度、降雨情況、空氣指數(shù)、污染物濃度等,但是目標(biāo)用戶只需要用到溫度和降雨情況,因此可以將控制指數(shù)和污染物濃度等數(shù)據(jù)丟棄掉,即得到的第二數(shù)據(jù)抽象中只包括某個(gè)地區(qū)的溫度和降雨情況;對(duì)所述第一數(shù)據(jù)抽象進(jìn)行格式變換,例如:當(dāng)?shù)谝粩?shù)據(jù)抽象中數(shù)據(jù)可以包括:某個(gè)地區(qū)的溫度、降雨情況、空氣指數(shù)、污染物濃度等,但是所述數(shù)據(jù)抽象中溫度是用攝氏度表示的,而用戶需要用開(kāi)爾文的形式表示,因此,可以將第一數(shù)據(jù)抽象中的溫度數(shù)據(jù)進(jìn)行轉(zhuǎn)換;對(duì)所述第一數(shù)據(jù)抽象進(jìn)行聚合,例如:第一數(shù)據(jù)抽象中數(shù)據(jù)可以包括:某個(gè)地區(qū)的溫度、降雨情況、空氣指數(shù)、污染物濃度等,若用戶需要將空氣指數(shù)和污染物濃度進(jìn)行聚合,得到的第二數(shù)據(jù)抽象中,空氣指數(shù)和污染物濃度為經(jīng)過(guò)聚合后的數(shù)據(jù)形式。
本實(shí)施例中,需要說(shuō)明的是,用戶自定義的處理邏輯不是僅僅只進(jìn)行一項(xiàng)操作,例如:用戶可以同時(shí)執(zhí)行篩選、格式變換和聚合中的多個(gè)操作。
s104:將訪問(wèn)所述第二目標(biāo)數(shù)據(jù)源所需的第二訪問(wèn)信息以參數(shù)的形式發(fā)送給datawriter;
本實(shí)施例中,需要說(shuō)明的是,datareader和datawriter之間傳遞的數(shù)據(jù)抽象是通用的,具體的,保存的第一數(shù)據(jù)抽象和轉(zhuǎn)換后的第二數(shù)據(jù)抽象是datareader和datawriter中可以兼容的數(shù)據(jù)抽象。
本實(shí)施例中,s104具體可以包括:
獲取訪問(wèn)所述第二目標(biāo)數(shù)據(jù)源所需的第二訪問(wèn)信息;
將所述第二訪問(wèn)信息轉(zhuǎn)換成對(duì)應(yīng)的參數(shù);
將所述第二訪問(wèn)信息對(duì)應(yīng)的參數(shù)發(fā)送給所述datawriter。
本實(shí)施例中,訪問(wèn)所述第二目標(biāo)數(shù)據(jù)源所需的第二訪問(wèn)信息可以包括:
第二目標(biāo)數(shù)據(jù)源的類型和第二目標(biāo)數(shù)據(jù)源的連接信息。其中,所述第二目標(biāo)數(shù)據(jù)源的類型可以包括:關(guān)系型數(shù)據(jù)庫(kù)mysql、非關(guān)系型數(shù)據(jù)庫(kù)hbase、數(shù)據(jù)倉(cāng)庫(kù)hive、文件存儲(chǔ)hdfs以及具有存儲(chǔ)功能的文件索引服務(wù)elasicsearch等;所述第二目標(biāo)數(shù)據(jù)源的連接信息可以包括:第二目標(biāo)數(shù)據(jù)源的訪問(wèn)地址、第二目標(biāo)數(shù)據(jù)源的端口信息、第二目標(biāo)數(shù)據(jù)源的用戶名及密碼等。
本實(shí)施例中,第二訪問(wèn)信息中不同的數(shù)據(jù)可以用不同的參數(shù)進(jìn)行表示,例如:參數(shù)sink表示的是數(shù)據(jù)源類型、mode表示的是數(shù)據(jù)的寫(xiě)入方式、specific表示的是不同類型數(shù)據(jù)源的參數(shù)配置情況,其中,對(duì)于mysql類型的數(shù)據(jù)源的參數(shù)配置情況例如可以參看如上的表1所示。
本實(shí)施例中,所述第二目標(biāo)數(shù)據(jù)源的訪問(wèn)信息可以有多種來(lái)源,例如,可以是從所述第二目標(biāo)數(shù)據(jù)源中獲得的,也可以是已保存好的,其中對(duì)于已保存好的,還可以有兩種方式:一種是曾經(jīng)從所述第二目標(biāo)數(shù)據(jù)源中獲得的,然后進(jìn)行了保存,以便下一次使用,也可以是技術(shù)人員設(shè)置的。
因此,當(dāng)出現(xiàn)新的目標(biāo)數(shù)據(jù)源時(shí),只需要將所述目標(biāo)數(shù)據(jù)源的信息進(jìn)行保存,進(jìn)行數(shù)據(jù)同步時(shí),可以直接應(yīng)用保存到新的目標(biāo)數(shù)據(jù)源的信息,進(jìn)行數(shù)據(jù)同步。
s105:所述datawriter依據(jù)所述第二訪問(wèn)信息對(duì)應(yīng)的參數(shù),將所述第二數(shù)據(jù)抽象寫(xiě)入所述第二目標(biāo)數(shù)據(jù)源。
本實(shí)施例中,s105具體可以包括:
將所述第二訪問(wèn)信息對(duì)應(yīng)的參數(shù)進(jìn)行解析,獲得所述第二目標(biāo)數(shù)據(jù)源的類型和連接信息;
依據(jù)所述第二目標(biāo)數(shù)據(jù)源的連接信息連接到所述第二目標(biāo)數(shù)據(jù)源;
依據(jù)所述第二目標(biāo)數(shù)據(jù)源的類型,獲取所述第二目標(biāo)數(shù)據(jù)源的接口類型,并依據(jù)所述第二目標(biāo)數(shù)據(jù)源的接口類型,通過(guò)所述datawriter將所述第二數(shù)據(jù)抽象寫(xiě)入到所述第二目標(biāo)數(shù)據(jù)源。
本實(shí)施例中,從上文s104中可以得知,所述第一訪問(wèn)信息可以包括第一目標(biāo)數(shù)據(jù)源的類型和連接信息,發(fā)送給datawriter的數(shù)據(jù)是轉(zhuǎn)換成參數(shù)的第二訪問(wèn)信息,因此datareader若要知道如何訪問(wèn)所述第二目標(biāo)數(shù)據(jù)源,進(jìn)而將所述第二數(shù)據(jù)抽象寫(xiě)入到第二目標(biāo)數(shù)據(jù)源中,需要對(duì)所述第二訪問(wèn)信息對(duì)應(yīng)的參數(shù)進(jìn)行解析,從而得到所述第二目標(biāo)數(shù)據(jù)源的類型和連接信息。
本實(shí)施例中,第二目標(biāo)數(shù)據(jù)源的連接信息可以包括:第二目標(biāo)數(shù)據(jù)源的訪問(wèn)地址、第二目標(biāo)數(shù)據(jù)源的端口信息、第二目標(biāo)數(shù)據(jù)源的用戶名及密碼等。datareader可以依據(jù)獲知的這些連接信息,與所述第二目標(biāo)數(shù)據(jù)源進(jìn)行連接。
本實(shí)施例中,不同的數(shù)據(jù)類型可以具有不同的接口類型,datareader在獲知第二目標(biāo)數(shù)據(jù)源的接口類型時(shí),可以切換到訪問(wèn)該種接口類型兼容的方式將所述第二數(shù)據(jù)抽象寫(xiě)入到所述第二目標(biāo)數(shù)據(jù)源中。
本實(shí)施例中,當(dāng)接收到將第一目標(biāo)數(shù)據(jù)源與第二目標(biāo)數(shù)據(jù)源進(jìn)行數(shù)據(jù)同步的指令后,將訪問(wèn)所述第一目標(biāo)數(shù)據(jù)源所需的第一訪問(wèn)信息以參數(shù)的形式發(fā)送給datareader,所述datareader依據(jù)所述第一訪問(wèn)信息對(duì)應(yīng)的參數(shù),從所述第一目標(biāo)數(shù)據(jù)源中讀取待同步的數(shù)據(jù),并將所述待同步數(shù)據(jù)保存為第一數(shù)據(jù)抽象;依據(jù)接收到的預(yù)設(shè)的處理邏輯將所述第一數(shù)據(jù)抽象轉(zhuǎn)換成第二數(shù)據(jù)抽象;其中,所述預(yù)設(shè)的處理邏輯為用戶自定義設(shè)置的;將訪問(wèn)所述第二目標(biāo)數(shù)據(jù)源所需的第二訪問(wèn)信息以參數(shù)的形式發(fā)送給datawriter;其中,所述第一數(shù)據(jù)抽象和所述第二數(shù)據(jù)抽象為所述datareader和所述datawriter通用的數(shù)據(jù)抽象;所述datawriter依據(jù)所述第二訪問(wèn)信息對(duì)應(yīng)的參數(shù),將所述第二數(shù)據(jù)抽象寫(xiě)入所述第二目標(biāo)數(shù)據(jù)源。這樣,datareader從第一目標(biāo)數(shù)據(jù)源獲取了待同步數(shù)據(jù)后,可以直接由datawriter寫(xiě)入到第二目標(biāo)數(shù)據(jù)源中,該過(guò)程無(wú)需用戶手動(dòng)的在第一目標(biāo)數(shù)據(jù)源和第二目標(biāo)數(shù)據(jù)源的不同接口類型中不斷的切換,不僅操作簡(jiǎn)便而且節(jié)省了成本。
參考圖2,示出了本發(fā)明實(shí)施例提供的一種基于大數(shù)據(jù)的離線同步裝置的結(jié)構(gòu)示意圖,在本實(shí)施例中,所述裝置可以包括:
第一發(fā)送單元201,用于當(dāng)接收到將第一目標(biāo)數(shù)據(jù)源與第二目標(biāo)數(shù)據(jù)源進(jìn)行數(shù)據(jù)同步的指令后,將訪問(wèn)所述第一目標(biāo)數(shù)據(jù)源所需的第一訪問(wèn)信息以參數(shù)的形式發(fā)送給datareader;
讀取單元202,用于所述datareader依據(jù)所述第一訪問(wèn)信息對(duì)應(yīng)的參數(shù),從所述第一目標(biāo)數(shù)據(jù)源中讀取待同步的數(shù)據(jù),并將所述待同步數(shù)據(jù)保存為第一數(shù)據(jù)抽象;
轉(zhuǎn)換單元203,用于依據(jù)預(yù)設(shè)的處理邏輯將所述第一數(shù)據(jù)抽象轉(zhuǎn)換成第二數(shù)據(jù)抽象;其中,所述預(yù)設(shè)的處理邏輯為用戶自定義設(shè)置的;
第二發(fā)送單元204,用于將訪問(wèn)所述第二目標(biāo)數(shù)據(jù)源所需的第二訪問(wèn)信息以參數(shù)的形式發(fā)送給datawriter;
寫(xiě)入單元205,用于所述datawriter依據(jù)所述第二訪問(wèn)信息對(duì)應(yīng)的參數(shù),將所述第二數(shù)據(jù)抽象寫(xiě)入所述第二目標(biāo)數(shù)據(jù)源。
可選的,所述第一發(fā)送單元,包括:
第一獲取單元,用于獲取訪問(wèn)所述第一目標(biāo)數(shù)據(jù)源的第一訪問(wèn)信息;
第一轉(zhuǎn)換子單元,用于將所述第一訪問(wèn)信息轉(zhuǎn)換成相對(duì)應(yīng)的參數(shù);
第一發(fā)送子單元,用于將所述第一訪問(wèn)信息相對(duì)應(yīng)的參數(shù)發(fā)送給所述datareader。
可選的,所述讀取單元,包括:
第一解析子單元,用于對(duì)接收到的第一訪問(wèn)信息對(duì)應(yīng)的參數(shù)進(jìn)行解析,獲得所述第一目標(biāo)數(shù)據(jù)源的類型和連接信息;
第一連接子單元,用于依據(jù)所述第一目標(biāo)數(shù)據(jù)源的連接信息連接到所述第一目標(biāo)數(shù)據(jù)源;
讀取子單元,用于基于所述第一目標(biāo)數(shù)據(jù)源的類型獲得所述第一目標(biāo)數(shù)據(jù)源的接口類型,并依據(jù)所述第一目標(biāo)數(shù)據(jù)源的接口類型從所述第一目標(biāo)數(shù)據(jù)源中讀取待同步的數(shù)據(jù)。
可選的,所述第二發(fā)送單元,包括:
第二獲取子單元,用于獲取訪問(wèn)所述第二目標(biāo)數(shù)據(jù)源所需的第二訪問(wèn)信息;
第二轉(zhuǎn)換子單元,用于將所述第二訪問(wèn)信息轉(zhuǎn)換成對(duì)應(yīng)的參數(shù);
第二發(fā)送子單元,用于將所述第二訪問(wèn)信息對(duì)應(yīng)的參數(shù)發(fā)送給所述datawriter。
可選的,所述寫(xiě)入單元,包括:
第二解析子單元,用于將所述第二訪問(wèn)信息對(duì)應(yīng)的參數(shù)進(jìn)行解析,獲得所述第二目標(biāo)數(shù)據(jù)源的類型和連接信息;
第二連接子單元,用于依據(jù)所述第二目標(biāo)數(shù)據(jù)源的連接信息連接到所述第二目標(biāo)數(shù)據(jù)源;
寫(xiě)入子單元,用于依據(jù)所述第二目標(biāo)數(shù)據(jù)源的類型,獲取所述第二目標(biāo)數(shù)據(jù)源的接口類型,并依據(jù)所述第二目標(biāo)數(shù)據(jù)源的接口類型,通過(guò)所述datawriter將所述第二數(shù)據(jù)抽象寫(xiě)入到所述第二目標(biāo)數(shù)據(jù)源。
本實(shí)施例中,通過(guò)本實(shí)施例提供的裝置,當(dāng)該裝置接收到將第一目標(biāo)數(shù)據(jù)源與第二目標(biāo)數(shù)據(jù)源進(jìn)行數(shù)據(jù)同步的指令后,通過(guò)datareader讀取所述第一目標(biāo)數(shù)據(jù)源中待同步的數(shù)據(jù)并保存為數(shù)據(jù)抽象,通過(guò)該裝置將該數(shù)據(jù)抽象轉(zhuǎn)換后,通過(guò)datawriter將轉(zhuǎn)換后的數(shù)據(jù)抽象寫(xiě)入到第二目標(biāo)數(shù)據(jù)源中,該過(guò)程無(wú)需用戶手動(dòng)的在第一目標(biāo)數(shù)據(jù)源和第二目標(biāo)數(shù)據(jù)源的不同接口類型中不斷的切換,不僅操作簡(jiǎn)便而且節(jié)省了成本。
需要說(shuō)明的是,本說(shuō)明書(shū)中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見(jiàn)即可。
對(duì)所公開(kāi)的實(shí)施例的上述說(shuō)明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來(lái)說(shuō)將是顯而易見(jiàn)的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開(kāi)的原理和新穎特點(diǎn)相一致的最寬的范圍。