本發(fā)明涉及計算機軟件技術(shù)領(lǐng)域,尤其涉及一種自動化數(shù)據(jù)查詢同步存儲系統(tǒng)。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,對于數(shù)據(jù)的存儲、查詢已由單一的數(shù)據(jù)庫操作逐漸發(fā)展到多樣化,其中Elasticserach(開源數(shù)據(jù)存儲工具)在復(fù)雜查詢的速度上用戶體驗明顯優(yōu)于數(shù)據(jù)庫。但由于數(shù)據(jù)庫的穩(wěn)定性、安全性表現(xiàn)突出,又不能完全的拋開數(shù)據(jù)庫獨立的使用ES作為存儲的容器。一種使用數(shù)據(jù)庫充當數(shù)據(jù)容器,ES來實現(xiàn)快速查詢的模型就產(chǎn)生。既能夠確保數(shù)據(jù)的準確性,又能確保復(fù)雜查詢的速度。因此,如何確保數(shù)據(jù)庫和ES的數(shù)據(jù)完全一致成為一個技術(shù)難點。
當前同步模型趨向于控制數(shù)據(jù)的入口,在數(shù)據(jù)入庫時同步更新數(shù)據(jù)庫和開源數(shù)據(jù)存儲工具的內(nèi)容,確保數(shù)據(jù)一致,但兩套邏輯其中任何一方失敗都會導(dǎo)致數(shù)據(jù)的不一致,故需要再以數(shù)據(jù)庫數(shù)據(jù)為原始數(shù)據(jù)進行全量校驗。該模型能夠?qū)崿F(xiàn)快速查詢復(fù)雜邏輯的要求,但是從代碼開發(fā)層面,需要付出大量的開發(fā)成本。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是提供一種自動化數(shù)據(jù)查詢同步存儲系統(tǒng),該自動化數(shù)據(jù)查詢同步存儲系統(tǒng)能自動捕獲數(shù)據(jù)庫中更新數(shù)據(jù)并同步至開源數(shù)據(jù)存儲工具,節(jié)約開發(fā)人員開發(fā)成本,無需進行開源數(shù)據(jù)存儲工具同步、校驗,系統(tǒng)各環(huán)節(jié)都實現(xiàn)可配置化,能夠按配置的靈活的添加、刪除新舊業(yè)務(wù)。
為解決上述技術(shù)問題,本發(fā)明提供了一種自動化數(shù)據(jù)查詢同步存儲系統(tǒng),包括:
數(shù)據(jù)庫;
開源數(shù)據(jù)存儲工具,用于快速對復(fù)雜多樣化的待查詢的數(shù)據(jù)進行存儲;
數(shù)據(jù)緩存工具,用于對查詢過程中數(shù)據(jù)進行緩存;
消息隊列單元,用于對變更信息進行隊列處理;
獲取解析信息單元,獲取數(shù)據(jù)庫變更、生成變更信息,分發(fā)解析數(shù)據(jù)并將數(shù)據(jù)輸出給消息隊列單元;
及信息同步處理單元,用于將消息隊列單元的消息數(shù)據(jù)同步處理后輸入到所述開源數(shù)據(jù)存儲工具;
所述數(shù)據(jù)庫、開源數(shù)據(jù)存儲工具及數(shù)據(jù)緩存工具通過數(shù)據(jù)封裝單元進行數(shù)據(jù)交換,所述數(shù)據(jù)庫通過所述獲取解析信息單元將數(shù)據(jù)傳輸給消息隊列單元,所述消息隊列單元通過所述信息同步處理單元將消息傳輸給所述開源數(shù)據(jù)存儲工具;
所述信息同步處理單元包括開源數(shù)據(jù)同步工具,所述開源數(shù)據(jù)同步工具自動獲取數(shù)據(jù)庫的日志信息,通過指定的數(shù)據(jù)結(jié)構(gòu)完成對日志信息的解析;
所述開源數(shù)據(jù)存儲工具由索引和類型指定數(shù)據(jù)空間,所述數(shù)據(jù)庫中表格結(jié)構(gòu)和開源數(shù)據(jù)存儲工具一一映射從而完成數(shù)據(jù)同步,或者所述數(shù)據(jù)庫中一個表格分別以不同的類型存在于所述開源數(shù)據(jù)存儲工具,針對一份數(shù)據(jù),同時同步數(shù)據(jù)至所述開源數(shù)據(jù)存儲工具中指定的n個類型或類型中的子屬性。
優(yōu)選地,所述獲取解析信息單元包括若干個業(yè)務(wù)服務(wù)端、數(shù)據(jù)集群服務(wù)管理服務(wù)器及若干個訂閱客戶端及數(shù)據(jù)轉(zhuǎn)發(fā)中心子單元,所述數(shù)據(jù)庫根據(jù)各個所述業(yè)務(wù)服務(wù)端將各種數(shù)據(jù)分配到各個數(shù)據(jù)服務(wù)端,各個所述訂閱客戶端通過所述數(shù)據(jù)集群服務(wù)管理服務(wù)器獲取各個所述業(yè)務(wù)服務(wù)端中的對應(yīng)的業(yè)務(wù)數(shù)據(jù),各個所述訂閱客戶端將接收到的數(shù)據(jù)通過所述數(shù)據(jù)轉(zhuǎn)發(fā)中心子單元進行解析后傳給所述消息隊列單元。
優(yōu)選地,所述信息同步處理單元包括業(yè)務(wù)端數(shù)據(jù)同步處理子單元、若干消費客戶端及數(shù)據(jù)同步消費服務(wù)子單元。
優(yōu)選地,通過所述訂閱客戶端訂閱指定的數(shù)據(jù)庫及表,使用所述開源數(shù)據(jù)同步工具獲取數(shù)據(jù)庫的日志信息,并通過指定的數(shù)據(jù)結(jié)構(gòu)完成對日志信息的解析。
優(yōu)選地,所述獲取解析信息單元根據(jù)數(shù)據(jù)庫變更的信息配置的不同業(yè)務(wù)線的信息,并通過所述消息隊列單元將變更的數(shù)據(jù)自動的分發(fā)到各業(yè)務(wù)訂閱的消息隊列,數(shù)據(jù)同步消費服務(wù)子單元將各業(yè)務(wù)的數(shù)據(jù)同步進行物理隔離,再由各個所述對應(yīng)的消費客戶端的消費服務(wù)獨立完成各自的數(shù)據(jù)同步。
優(yōu)選地,所述開源數(shù)據(jù)存儲工具及所述數(shù)據(jù)緩存工具包括集群、索引、類型。
優(yōu)選地,所述數(shù)據(jù)庫包括數(shù)據(jù)庫鏈接基本信息、數(shù)據(jù)庫索引、數(shù)據(jù)表。
優(yōu)選地,所述消息隊列單元指定待消費數(shù)據(jù)源。
優(yōu)選地,所述數(shù)據(jù)同步服務(wù)單元設(shè)定消費模型,并指定消費者按何種模型進行消費。
采用了上述系統(tǒng)之后,獲取解析信息單元獲取數(shù)據(jù)庫變更數(shù)據(jù),判斷是否訂閱自動化同步服務(wù)信息,如果是,則生成變更信息,所述消息隊列單元分發(fā)業(yè)務(wù)信息至信息同步處理單元,所述信息同步處理單元對所述消息隊列單元分發(fā)的業(yè)務(wù)信息進行數(shù)據(jù)同步,如果否,則結(jié)束生成變更信息;所述消息隊列單元輸入口為獲取數(shù)據(jù)庫變更信息,所述消息隊列單元的輸出口為輸出待進行信息同步處理的業(yè)務(wù)信息;獲取數(shù)據(jù)庫變更信息步驟包括捕獲變更數(shù)據(jù)和生成、分發(fā)變更信息到消息隊列單元,所述信息同步處理步驟包括將消息隊列單元中存放的變更信息自動同步至所述開發(fā)源數(shù)據(jù)存儲工具中;所述獲取解析信息單元包括數(shù)據(jù)同步工具,獲取解析信息單元獲取數(shù)據(jù)庫變更數(shù)據(jù)并生成變更信息步驟包括:將數(shù)據(jù)同步工具定義成從服務(wù)器庫,向數(shù)據(jù)庫發(fā)送dump協(xié)議,數(shù)據(jù)庫收到dump協(xié)議后將二進制日志信息發(fā)送給從服務(wù)器庫,所述數(shù)據(jù)同步工具對二進制日志信息進行解析,獲取數(shù)據(jù)庫的數(shù)據(jù)變化,該自動化數(shù)據(jù)查詢同步存儲系統(tǒng)能自動捕獲數(shù)據(jù)庫中更新數(shù)據(jù)并同步至開源數(shù)據(jù)存儲工具,節(jié)約開發(fā)人員開發(fā)成本,無需進行開源數(shù)據(jù)存儲工具同步、校驗,系統(tǒng)各環(huán)節(jié)都實現(xiàn)可配置化,能夠按配置的靈活的添加、刪除新舊業(yè)務(wù)。
附圖說明
圖1是本發(fā)明的自動化數(shù)據(jù)查詢同步存儲系統(tǒng)的整體結(jié)構(gòu)示意圖;
圖2是本發(fā)明自動化數(shù)據(jù)查詢同步存儲系統(tǒng)的信息同步處理步驟的流程圖;
圖3是本發(fā)明自動化數(shù)據(jù)查詢同步存儲系統(tǒng)的獲取解析信息步驟的流程圖;
圖4是本發(fā)明自動化數(shù)據(jù)查詢同步存儲系統(tǒng)的不同類型的業(yè)務(wù)同步模型的結(jié)構(gòu)示意圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅用于解釋本發(fā)明,并不用于限定本發(fā)明。
請參閱圖1,圖1是本發(fā)明的自動化數(shù)據(jù)查詢同步存儲系統(tǒng)的整體結(jié)構(gòu)示意圖。
本發(fā)明提供的一種自動化數(shù)據(jù)查詢同步存儲系統(tǒng),包括:
數(shù)據(jù)庫20;
開源數(shù)據(jù)存儲工具30,用于快速對復(fù)雜多樣化的待查詢的數(shù)據(jù)進行存儲;
數(shù)據(jù)緩存工具50,用于對查詢過程中數(shù)據(jù)進行緩存;
消息隊列單元16,用于對變更信息進行隊列處理;
獲取解析信息單元10,獲取數(shù)據(jù)庫變更、生成變更信息,分發(fā)解析數(shù)據(jù)并將數(shù)據(jù)輸出給消息隊列單元16;
及信息同步處理單元60,用于將消息隊列單元16的消息數(shù)據(jù)同步處理后輸入到所述開源數(shù)據(jù)存儲工具30;
數(shù)據(jù)緩存工具50;
數(shù)據(jù)庫20、開源數(shù)據(jù)存儲工具30及數(shù)據(jù)緩存工具50通過數(shù)據(jù)封裝單元40進行數(shù)據(jù)交換,數(shù)據(jù)庫20通過獲取解析信息單元10將數(shù)據(jù)傳輸給消息隊列單元16,消息隊列單元16通過所述信息同步處理單元60將消息傳輸給開源數(shù)據(jù)存儲工具30;
信息同步處理單元60包括開源數(shù)據(jù)同步工具,開源數(shù)據(jù)同步工具自動獲取數(shù)據(jù)庫的日志信息,通過指定的數(shù)據(jù)結(jié)構(gòu)完成對日志信息的解析;
請參閱圖3,圖3是本發(fā)明自動化數(shù)據(jù)查詢同步存儲系統(tǒng)的獲取解析信息步驟的流程圖;
獲取解析信息單元10包括若干個業(yè)務(wù)服務(wù)端12、數(shù)據(jù)集群服務(wù)管理服務(wù)器13、若干個訂閱客戶端14及數(shù)據(jù)轉(zhuǎn)發(fā)中心子單元15,數(shù)據(jù)庫20根據(jù)各個業(yè)務(wù)服務(wù)端12將各種數(shù)據(jù)分配到各個數(shù)據(jù)服務(wù)端,各個所述訂閱客戶端14通過數(shù)據(jù)集群服務(wù)管理服務(wù)器獲取各個業(yè)務(wù)服務(wù)端12中的對應(yīng)的業(yè)務(wù)數(shù)據(jù),各個訂閱客戶端14將接收到的數(shù)據(jù)通過數(shù)據(jù)轉(zhuǎn)發(fā)中心子單元15進行解析后傳給消息隊列單元16。
信息同步處理單元60包括業(yè)務(wù)端數(shù)據(jù)同步處理子單元61、若干消費客戶端62及數(shù)據(jù)同步消費服務(wù)子單元63。
通過訂閱客戶端14訂閱指定的數(shù)據(jù)庫20及表,使用開源數(shù)據(jù)同步工具30獲取數(shù)據(jù)庫20的日志信息,并通過指定的數(shù)據(jù)結(jié)構(gòu)完成對日志信息的解析。
獲取解析信息單元10根據(jù)數(shù)據(jù)庫20變更的信息配置的不同業(yè)務(wù)線的信息,并通過消息隊列單元16將變更的數(shù)據(jù)自動的分發(fā)到各業(yè)務(wù)訂閱的消息隊列,數(shù)據(jù)同步消費服務(wù)子單元25將各業(yè)務(wù)的數(shù)據(jù)同步進行物理隔離,再由各個對應(yīng)的消費客戶端62的消費服務(wù)獨立完成各自的數(shù)據(jù)同步。
開源數(shù)據(jù)存儲工具30及數(shù)據(jù)緩存工具50包括集群、索引、類型。
數(shù)據(jù)庫20包括數(shù)據(jù)庫鏈接基本信息、數(shù)據(jù)庫索引、數(shù)據(jù)表。
消息隊列單元16指定待消費數(shù)據(jù)源。
信息同步處理單元60設(shè)定消費模型,并指定消費者按何種模型進行消費。
請參閱圖2,圖2是本發(fā)明自動化數(shù)據(jù)查詢同步存儲系統(tǒng)的信息同步處理步驟的流程圖;
數(shù)據(jù)庫變更、生成變更信息即是生產(chǎn),獲取數(shù)據(jù)同步即是消費。
各業(yè)務(wù)線各有一個消費者實例,通過配置,獲取到業(yè)務(wù)注冊隊列,從消息隊列單元中獲取對應(yīng)待消費數(shù)據(jù),開源數(shù)據(jù)存儲工具30由索引和類型指定數(shù)據(jù)空間,本實施例中,開源數(shù)據(jù)存儲工具30的同步包括兩種模型:
模型一:1:1模型,即數(shù)據(jù)庫20中表格結(jié)構(gòu)和開源數(shù)據(jù)存儲工具30的類型一一映射從而完成數(shù)據(jù)同步;
模型二:數(shù)據(jù)庫20中一個表格分別以不同的類型存在于開源數(shù)據(jù)存儲工具30,針對一份數(shù)據(jù),同時同步數(shù)據(jù)至開源數(shù)據(jù)存儲工具30中指定的n個類型或類型中的子屬性。
以上的同步操作,通過消費者自身的配置即可完成,即當添加一個新業(yè)務(wù)需要使用數(shù)據(jù)同步服務(wù),無需做任何代碼上的開發(fā),只需按標準化配置,配置好即可完成數(shù)據(jù)庫20和開源數(shù)據(jù)存儲工具30的數(shù)據(jù)同步。
請參閱圖4,圖4是本發(fā)明自動化數(shù)據(jù)查詢同步存儲系統(tǒng)的不同類型的業(yè)務(wù)同步模型的結(jié)構(gòu)示意圖;
圖4中共有四條相互獨立的業(yè)務(wù)線,其中業(yè)務(wù)A、B、C分別訂閱了數(shù)據(jù)同步服務(wù),業(yè)務(wù)D未訂閱同步服務(wù)。當業(yè)務(wù)D中的數(shù)據(jù)庫發(fā)生變化,由于未訂閱同步服務(wù),更新完數(shù)據(jù)庫后,并未有任何其他操作。業(yè)務(wù)A、B、C分別訂閱了同步分鐘中的不同模型。業(yè)務(wù)A滿足1:1模型。數(shù)據(jù)庫表結(jié)構(gòu)能夠與的類型一一對應(yīng)。業(yè)務(wù)B也滿足1:1模型,但其表結(jié)構(gòu)只是某個開源數(shù)據(jù)存儲工具30的類型的子屬性。業(yè)務(wù)C滿足1:n模型,即同一個表結(jié)構(gòu)在開源數(shù)據(jù)存儲工具30中有若干份數(shù)據(jù)需要同步,其數(shù)據(jù)能夠是一個開源數(shù)據(jù)存儲工具30的類型也可以是開源數(shù)據(jù)存儲工具30任一種類型中的一個子屬性。當訂閱了自動同步服務(wù)的業(yè)務(wù)有相關(guān)表數(shù)據(jù)變化后,同步服務(wù)通過開源數(shù)據(jù)同步工具獲取數(shù)據(jù)庫變更日志,解析成消費端指定的數(shù)據(jù)格式,通過配置的消息隊列名,通過數(shù)據(jù)分發(fā)中心將待消費的數(shù)據(jù)分別的存入對應(yīng)的消息對列單元隊列,獲取解析信息單元需要完成數(shù)據(jù)的捕獲、解析、分發(fā)。
當消費者服務(wù)偵聽到對應(yīng)隊列有待消費數(shù)據(jù),則開始數(shù)據(jù)消費。消費者具備高可配性,能夠靈活的配置開源數(shù)據(jù)存儲工具30、數(shù)據(jù)庫、消息隊列、消費模型。
開源數(shù)據(jù)存儲工具30配置包括集群、索引、類型。
數(shù)據(jù)庫包括數(shù)據(jù)庫鏈接基本信息、數(shù)據(jù)庫、表。
消費隊列指定待消費數(shù)據(jù)源。消費模型指定消費者按何種模型進行消費。從而能夠滿足不同業(yè)務(wù)的不同同步需求。消費者將數(shù)據(jù)庫變更同步至開源數(shù)據(jù)存儲工具30則整個服務(wù)流程就完成了。
整個同步服務(wù)具備高可配性,業(yè)務(wù)D若因業(yè)務(wù)變更需要使用開源數(shù)據(jù)存儲工具30,則只需在生產(chǎn)和消費兩個部分,添加對應(yīng)規(guī)范化配置,則能夠使用數(shù)據(jù)的自動化同步。
采用了上述系統(tǒng)之后,獲取解析信息單元10獲取數(shù)據(jù)庫20變更數(shù)據(jù),判斷是否訂閱自動化同步服務(wù)信息,如果是,則生成變更信息,消息隊列單元16分發(fā)業(yè)務(wù)信息至信息同步處理單元60,信息同步處理單元60對消息隊列單元16分發(fā)的業(yè)務(wù)信息進行數(shù)據(jù)同步,如果否,則結(jié)束生成變更信息;消息隊列單元16輸入口為獲取數(shù)據(jù)庫變更信息,消息隊列單元16的輸出口為輸出待進行信息同步處理的業(yè)務(wù)信息;獲取數(shù)據(jù)庫20變更信息步驟包括捕獲變更數(shù)據(jù)和生成、分發(fā)變更信息到消息隊列單元16,所述信息同步處理步驟包括將消息隊列單元16中存放的變更信息自動同步至開發(fā)源數(shù)據(jù)存儲工具30中;獲取解析信息單元10包括數(shù)據(jù)同步工具,獲取解析信息單元10獲取數(shù)據(jù)庫變更數(shù)據(jù)并生成變更信息步驟包括:將數(shù)據(jù)同步工具定義成從服務(wù)器庫,向數(shù)據(jù)庫20發(fā)送dump協(xié)議,數(shù)據(jù)庫20收到dump協(xié)議后將二進制日志信息發(fā)送給從服務(wù)器庫,所述數(shù)據(jù)同步工具對二進制日志信息進行解析,獲取數(shù)據(jù)庫的數(shù)據(jù)變化,該自動化數(shù)據(jù)查詢同步存儲系統(tǒng)能自動捕獲數(shù)據(jù)庫中更新數(shù)據(jù)并同步至開源數(shù)據(jù)存儲工具,節(jié)約開發(fā)人員開發(fā)成本,無需進行開源數(shù)據(jù)存儲工具同步、校驗,系統(tǒng)各環(huán)節(jié)都實現(xiàn)可配置化,能夠按配置的靈活的添加、刪除新舊業(yè)務(wù)。
同時,應(yīng)當理解的是,以上僅為本發(fā)明的優(yōu)選實施例,不能因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效實現(xiàn)方法,或直接或間接運用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。