本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種框架結(jié)構(gòu)的數(shù)據(jù)同步系統(tǒng)。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,大數(shù)據(jù)處理已成為當下一種熱門技術(shù),其中大數(shù)據(jù)(big data),具體是指無法在一定時間范圍內(nèi)用常規(guī)軟件工具進行捕捉、管理和處理的數(shù)據(jù)集合,是需要新處理模式才能具有更強的決策力、洞察發(fā)現(xiàn)力和流程優(yōu)化能力來適應(yīng)海量、高增長率和多樣化的信息資產(chǎn)。由于數(shù)據(jù)庫對大數(shù)據(jù)的處理日趨頻繁,使得數(shù)據(jù)庫被用戶正常訪問例如查詢以及下載操作受到影響,基于上述問題可通過將數(shù)據(jù)庫中的數(shù)據(jù)搬遷至搜索引擎服務(wù)器的存儲系統(tǒng)中則可以很好的解決上述的問題,在數(shù)據(jù)搬遷處理中通常采用的Python編程語言實現(xiàn),因為python語言操作便捷,以命令的方式執(zhí)行代碼,正因為如此對于執(zhí)行同步操作的使用者需要具備一定的Python編程語言的能力,因此使得系統(tǒng)的維護成本上升。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)中同步數(shù)據(jù)至搜索引擎服務(wù)器中存在的上述問題,現(xiàn)提供一種旨在不要熟悉Python語言,通過模塊快可實現(xiàn)將數(shù)據(jù)進行處理同步至第二數(shù)據(jù)庫中的框架結(jié)構(gòu)的數(shù)據(jù)同步系統(tǒng)及方法。
具體技術(shù)方案如下:
一種框架結(jié)構(gòu)的數(shù)據(jù)同步系統(tǒng),其中,包括:
第一儲存單元,用以保存需要同步的數(shù)據(jù);
同步單元,與所述第一儲存單元連接;
第二儲存單元,與所述同步單元連接;
所述同步單元包括:
一數(shù)據(jù)接口,用以接收一外部輸入的同步指令;
一指令轉(zhuǎn)換模塊,與所述數(shù)據(jù)接口連接,用以將所述同步指令轉(zhuǎn)換為關(guān)聯(lián)于一第一語言的操作指令;
一數(shù)據(jù)處理模塊,與所述指令轉(zhuǎn)換模塊連接,用以于所述第一儲存單元中執(zhí)行所述操作指令,并獲取對應(yīng)的操作結(jié)果; 以及
所述數(shù)據(jù)處理模塊將所述操作結(jié)果同步至所述第二儲存單元。
優(yōu)選的,所述第一語言為Python語言。
優(yōu)選的,提供一操作界面,所述操作界面與所述數(shù)據(jù)接口連接,用以將所述操作界面編輯形成所述同步指令并輸出至所述數(shù)據(jù)接口。
優(yōu)選的,所述第一儲存單元為一第一數(shù)據(jù)庫。
優(yōu)選的,所述指令轉(zhuǎn)換模塊包括一第一數(shù)據(jù)庫接口,所述第一數(shù)據(jù)庫接口用以供所述指令轉(zhuǎn)換模塊連接所述第一數(shù)據(jù)庫。
優(yōu)選的,所述第二儲存單元為一第二數(shù)據(jù)庫。
優(yōu)選的,所述指令轉(zhuǎn)換模塊包括一第二數(shù)據(jù)庫接口,所述第二數(shù)據(jù)庫接口用以供所述指令轉(zhuǎn)換模塊連接所述第二數(shù)據(jù)庫。
優(yōu)選的,所述數(shù)據(jù)處理模塊包括一第一執(zhí)行模塊,所述第一執(zhí)行模塊用以于所述第一儲存單元中執(zhí)行所述操作指令。
優(yōu)選的,所述數(shù)據(jù)處理模塊包括一結(jié)果獲取模塊,所述結(jié)果獲取模塊用以于所述第一儲存單元執(zhí)行所述操作指令后獲取所述操作結(jié)果。
優(yōu)選的,所述數(shù)據(jù)處理模塊包括一第二執(zhí)行模塊,所述第二執(zhí)行模塊用以將所述操作結(jié)果同步至所述第二儲存單元。
優(yōu)選的,所述第二儲存單元為基于Lucene的搜索服務(wù)器的數(shù)據(jù)庫。
優(yōu)選的,所述數(shù)據(jù)處理模塊將所述操作結(jié)果同步至所述第二儲存單元之前先將所述操作結(jié)果轉(zhuǎn)換為配合所述第二儲存單元的格式。
優(yōu)選的,所述格式為基于Lucene的搜索服務(wù)器的數(shù)據(jù)庫的文件格式。
優(yōu)選的,所述同步單元包括日志管理模塊,所述日志管理模塊與所述數(shù)據(jù)處理模塊連接,用以將處理所述數(shù)據(jù)的記錄形成日志。
一種框架結(jié)構(gòu)的數(shù)據(jù)同步方法,其特征在于,提供一第一儲存單元,用以保存需要同步的數(shù)據(jù);
提供一第二儲存單元;
提供一同步單元,分別與所述第一儲存單元以及所述第二儲存單元連接;
包括以下步驟:
步驟S1、所述同步單元接收一同步指令;
步驟S2、所述同步單元根據(jù)將同步指令轉(zhuǎn)換為關(guān)聯(lián)于第一語言的操作指令;
步驟S3、所述同步單元于所述第一儲存單元中執(zhí)行所述操作指令,以獲取對應(yīng)的操作結(jié)果;
步驟S4、所述同步單元將所述操作結(jié)果同步至第二儲存單元。
上述技術(shù)方案具有如下優(yōu)點或有益效果: 使用者可通過同步單元將外部輸入的同步指令轉(zhuǎn)換為關(guān)聯(lián)于第一語言的操作指令,進而于第一儲存單元中執(zhí)行操作指令獲取對應(yīng)操的操作結(jié)果,最終將操作結(jié)果同步至第二儲存單元中,操作過程簡單方便,且整個同步數(shù)據(jù)同步過程中使用者無需掌握Python編程語言,通過同步單元即可實現(xiàn)同步操作。
附圖說明
參考所附附圖,以更加充分的描述本發(fā)明的實施例。然而,所附附圖僅用于說明和闡述,并不構(gòu)成對本發(fā)明范圍的限制。
圖1為本發(fā)明一種框架結(jié)構(gòu)的數(shù)據(jù)同步系統(tǒng)的結(jié)構(gòu)示意圖;
圖2為本發(fā)明一種框架結(jié)構(gòu)的數(shù)據(jù)同步系統(tǒng)實施例中,關(guān)于指令轉(zhuǎn)換模塊的結(jié)構(gòu)示意圖;
圖3為本發(fā)明一種框架結(jié)構(gòu)的數(shù)據(jù)同步系統(tǒng)實施例中,關(guān)于數(shù)據(jù)處理模塊的結(jié)構(gòu)示意圖;
圖4為本發(fā)明一種框架結(jié)構(gòu)的數(shù)據(jù)同步系統(tǒng)方法實施例的流程圖。
上述說明書中各附圖標記表示:
(1)、同步單元;(2)、第一儲存單元;(3)、第二儲存單元;(11)數(shù)據(jù)接口;(12)、指令轉(zhuǎn)換模塊;(13)、數(shù)據(jù)處理模塊;(14)、日志管理模塊;(121)、第一數(shù)據(jù)庫接口;(122)、第二數(shù)據(jù)庫接口;(131)、第一執(zhí)行模塊;(132)、結(jié)果獲取模塊;(133)、第二執(zhí)行模塊。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
需要說明的是,在不沖突的情況下,本發(fā)明中的實施例及實施例中的特征可以相互組合。
下面結(jié)合附圖和具體實施例對本發(fā)明作進一步說明,但不作為本發(fā)明的限定。
本發(fā)明包括一種框架結(jié)構(gòu)的數(shù)據(jù)同步系統(tǒng)
如圖1所示,一種框架結(jié)構(gòu)的數(shù)據(jù)同步系統(tǒng)的實施例,其中,包括::
第一儲存單元2,用以保存需要同步的數(shù)據(jù);
同步單元1,與第一儲存單元2連接;
第二儲存單元3,與同步單元1連接;
同步單元1包括:
一數(shù)據(jù)接口11,用以接收一外部輸入的同步指令;
一指令轉(zhuǎn)換模塊12,與數(shù)據(jù)接口11連接,用以將同步指令轉(zhuǎn)換為關(guān)聯(lián)于一第一語言的操作指令;
一數(shù)據(jù)處理模塊13,與指令轉(zhuǎn)換模塊12連接,用以于第一儲存單元2中執(zhí)行操作指令,并獲取對應(yīng)的操作結(jié)果; 以及
數(shù)據(jù)處理模塊13將操作結(jié)果同步至第二儲存單元3。
上述技術(shù)方案中,為了方便使用者將第一儲存單元2中的數(shù)據(jù)同步至第二儲存單元3,可通過數(shù)據(jù)接口11接收外部輸入的同步指令,其中同步指令用以表示需要執(zhí)行數(shù)據(jù)同步的指令,在同步單元1接收到外部的同步指令后,可通過指令轉(zhuǎn)換模塊12將同步指令轉(zhuǎn)換為關(guān)聯(lián)于第一語言的操作指令,應(yīng)當指出的是,同步單元1可同時接收多個不同的同步指令,進而通過指令轉(zhuǎn)換單元對接收的多個同步指令分別轉(zhuǎn)換為關(guān)聯(lián)于第一語言的操作指令;
在操作指令形成后,通過數(shù)據(jù)處理模塊13與第一儲存儲存單元2中執(zhí)行操作指令,并形成對應(yīng)的操作結(jié)果,并通過數(shù)據(jù)處理模塊13將對應(yīng)操作指令的操作結(jié)果同步至第二儲存單元3。
在一種較優(yōu)的實施方式中,第一語言為Python語言,Python具有豐富和強大的庫,它常被昵稱為膠水語言,能夠把用其他語言制作的各種模塊(尤其是C/C++)很輕松地聯(lián)結(jié)在一起。常見的一種應(yīng)用情形是,使用Python快速生成程序的原型(有時甚至是程序的最終界面),然后對其中有特別要求的部分,用更合適的語言改寫。
在一種較優(yōu)的實施方式中,提供一操作界面,操作界面與數(shù)據(jù)接口11連接,用以將操作界面編輯形成同步指令并輸出至數(shù)據(jù)接口11。
上述技術(shù)方案中,外部輸入的同步指令可通過上述提供的操作界面編輯輸入,其中同步指令的輸入可通過使用者錄入或者操作界面中會設(shè)置有供使用者選擇的同步指令。
在一種較優(yōu)的實施方式中,第一儲存2單元為一第一數(shù)據(jù)庫。
在一種較優(yōu)的實施方式中,如圖2所示,指令轉(zhuǎn)換模塊12包括一第一數(shù)據(jù)庫接口121,第一數(shù)據(jù)庫接口121用以供指令轉(zhuǎn)換模塊12連接第一數(shù)據(jù)庫。
在一種較優(yōu)的實施方式中,第二儲存單元3為一第二數(shù)據(jù)庫。
在一種較優(yōu)的實施方式中,指令轉(zhuǎn)換模塊12包括一第二數(shù)據(jù)庫接口122,第二數(shù)據(jù)庫接口122用以供指令轉(zhuǎn)換模塊12連接第二數(shù)據(jù)庫。
上述技術(shù)方案中,上述的數(shù)據(jù)的同步操作即將第一儲存單元2的第一數(shù)據(jù)庫中需要同步的數(shù)據(jù)通過同步單元1同步至第二儲存單元3中的第二數(shù)據(jù)庫中,其中需要同步的數(shù)據(jù)可通過使用者于操作界面輸入同步指令,同步指令可具體包括對第一數(shù)據(jù)庫進行查詢、刪除以及添加的操作,同步單元1根據(jù)外部的同步指令,將同步指令轉(zhuǎn)換為基于第一語言即上述的python語言的操作指令,并且在轉(zhuǎn)換指令的過程中,指令轉(zhuǎn)換模塊12分別與第一數(shù)據(jù)庫以及第二數(shù)據(jù)庫進行連接,同步單元1與第一數(shù)據(jù)庫以及第二數(shù)據(jù)庫建立連接后,數(shù)據(jù)處理模塊13根據(jù)操作指令于第一數(shù)據(jù)庫中執(zhí)行操作指令,并獲取與操作指令對應(yīng)的操作結(jié)果,在于第一數(shù)據(jù)庫中獲取與操作結(jié)果對應(yīng)的操作結(jié)果后,數(shù)據(jù)處理模塊13將操作結(jié)果同步至第二數(shù)據(jù)庫,若當前的同步結(jié)果同步完成,則數(shù)據(jù)處理模塊13釋放與第一數(shù)據(jù)庫以及第二數(shù)據(jù)庫的連接。
在一種較優(yōu)的實施方式中,如圖3所示,數(shù)據(jù)處理模塊13包括一第一執(zhí)行模塊131,第一執(zhí)行模塊131用以于第一儲存單元2中執(zhí)行操作指令。
在一種較優(yōu)的實施方式中,數(shù)據(jù)處理模塊13包括一結(jié)果獲取模塊132,結(jié)果獲取模塊132用以于第一儲存單元2執(zhí)行操作指令后獲取操作結(jié)果。
在一種較優(yōu)的實施方式中,數(shù)據(jù)處理模塊13包括一第二執(zhí)行模塊133,第二執(zhí)行模塊133用以將操作結(jié)果同步至第二儲存單元3。
上述技術(shù)方案中,具體的獲取與操作指令對應(yīng)的操作結(jié)果可為,通過指令轉(zhuǎn)換模塊12將同步指令轉(zhuǎn)換為關(guān)聯(lián)于第一語言的操作指令后,由第一執(zhí)行模塊131與第一儲存單元2中的第一數(shù)據(jù)庫中形成操作指令,操作指令執(zhí)行成功后,通過結(jié)果獲取單元132于第一儲存單元2中獲取對應(yīng)于操作指令的操作結(jié)果,于獲取到操作結(jié)果后,通過第二執(zhí)行模塊133可將操作結(jié)果同步至第二儲存單元3的第二數(shù)據(jù)庫中。
在一種較優(yōu)的實施方式中,第二儲存單元3為基于Lucene的搜索服務(wù)器的數(shù)據(jù)庫。
上述的Lucene的搜索服務(wù)器它提供了一個分布式多用戶能力的全文搜索引擎,基于RESTful web接口,Elasticsearch是用Java開發(fā)的,并作為Apache許可條款下的開放源碼發(fā)布,是當前流行的企業(yè)級搜索引擎。
在一種較優(yōu)的實施方式中,數(shù)據(jù)處理模塊13將操作結(jié)果同步至第二儲存單元3之前先將操作結(jié)果轉(zhuǎn)換為配合第二儲存單元3的格式。
在一種較優(yōu)的實施方式中,格式為基于Lucene的搜索服務(wù)器的數(shù)據(jù)庫的文件格式。
在一種較優(yōu)的實施方式中,同步單元1包括日志管理模塊14,日志管理模塊14與數(shù)據(jù)處理模塊13連接,用以將處理數(shù)據(jù)的記錄形成日志。
上述技術(shù)方案中,日志管理模塊14可通過數(shù)據(jù)處理模塊13對數(shù)據(jù)的處理的記錄形成日志,進而可將日志輸出方便使用者查看數(shù)據(jù)的同步狀況。
本發(fā)明的技術(shù)方案中還包括一種框架結(jié)構(gòu)的數(shù)據(jù)同步方法。
一種框架結(jié)構(gòu)的數(shù)據(jù)同步方法的實施例,其中,提供一第一儲存單元2,用以保存需要同步的數(shù)據(jù);
提供一第二儲存單元3;
提供一同步單元1,分別與第一儲存單元2以及第二儲存單元3連接;
如圖4所示,包括以下步驟:
步驟S1、同步單元1接收一同步指令;
步驟S2、同步單元1根據(jù)將同步指令轉(zhuǎn)換為關(guān)聯(lián)于第一語言的操作指令;
步驟S3、同步單元1于第一儲存單元2中執(zhí)行操作指令,以獲取對應(yīng)的操作結(jié)果;
步驟S4、同步單元1將操作結(jié)果同步至第二儲存單元3。
在具體實施例中,在使用者在對數(shù)據(jù)進行同步操作時,使用者可通過操作界面輸入同步操作指令,例如操作指令包括于第一儲存單元2中獲取,起始日期以及數(shù)據(jù)初始值20160412110000到終止日期以及數(shù)據(jù)終止值20160428120000,同步單元1接收到同步指令后,通過指令轉(zhuǎn)換模塊12將同步指令轉(zhuǎn)換為關(guān)聯(lián)于第一語言優(yōu)選為python語言的操作指令,其中查詢指令包括于第一數(shù)據(jù)庫中的查詢指令;
begin_value:20160412110000;
end_valu:20160428120000;
獲取到操作指令后,通過于第一儲存單元2中執(zhí)行上述的操作指令以獲取操作結(jié)果,其中結(jié)果為起始日期20160412到終止日期20160428,期間數(shù)據(jù)從110000到120000之間的所有數(shù)據(jù),進而通過獲取模塊于第一儲存模塊中獲取操作結(jié)果后,將操作結(jié)果同步至第二儲存單元3,上述操作過程中同步單元1可接受多個同步指令,并將多個同步指令進行轉(zhuǎn)換,形成對應(yīng)同步指令的操作指令,隨后可根據(jù)接收的同步指令的先后順序啟動相應(yīng)的處理進程,以分別對操作指令進行操作,進而可實現(xiàn)對第一儲存單元2中需要同步的數(shù)據(jù)進行快速的同步操作。
其中,第二儲存單元3中的數(shù)據(jù)庫為基于Lucene的搜索服務(wù)器的數(shù)據(jù)庫,Lucene的搜索服務(wù)器它提供了一個分布式多用戶能力的全文搜索引擎,基于RESTful web接口,Elasticsearch是用Java開發(fā)的,并作為Apache許可條款下的開放源碼發(fā)布,是當前流行的企業(yè)級搜索引擎。
在同步數(shù)據(jù)的處理過程中,由于第二儲存單元3的文件格式與第一儲存單元2的文件格式并不相同,因此由第一儲存單元2中返回的操作結(jié)果,并不能直接保存至第二儲存單元3,因此需要將上述的操作結(jié)果轉(zhuǎn)換為配合第二儲存單元3的格式,即基于Lucene的搜索服務(wù)器的數(shù)據(jù)庫的文件格式后,再進行同步操作。
上述同步操作不僅操作簡單,而且不需要使用者掌握Python編程語言的核心代碼即可實現(xiàn)上述的數(shù)據(jù)的同步操作。
以上所述僅為本發(fā)明較佳的實施例,并非因此限制本發(fā)明的實施方式及保護范圍,對于本領(lǐng)域技術(shù)人員而言,應(yīng)當能夠意識到凡運用本發(fā)明說明書及圖示內(nèi)容所作出的等同替換和顯而易見的變化所得到的方案,均應(yīng)當包含在本發(fā)明的保護范圍內(nèi)。