一種用于分布異構(gòu)數(shù)據(jù)資源整合的云數(shù)據(jù)庫系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及計(jì)算機(jī)應(yīng)用【技術(shù)領(lǐng)域】,尤其是一種用于分布異構(gòu)數(shù)據(jù)資源整合的云數(shù)據(jù)庫系統(tǒng)。本發(fā)明系統(tǒng)由元數(shù)據(jù)服務(wù)節(jié)點(diǎn)、服務(wù)節(jié)點(diǎn)、前置機(jī)節(jié)點(diǎn)、以及生產(chǎn)機(jī)節(jié)點(diǎn)構(gòu)成,元數(shù)據(jù)服務(wù)節(jié)點(diǎn)提供系統(tǒng)服務(wù),實(shí)現(xiàn)對整個(gè)云數(shù)據(jù)庫系統(tǒng)全局的管理;服務(wù)節(jié)點(diǎn)主要提供數(shù)據(jù)服務(wù);前置機(jī)節(jié)點(diǎn)上的各種異構(gòu)分布的數(shù)據(jù)庫或者文件系統(tǒng)作為云數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)源,通過云數(shù)據(jù)庫系統(tǒng)提供的接入機(jī)制將這些數(shù)據(jù)源接入到云數(shù)據(jù)庫系統(tǒng)的內(nèi)部;生產(chǎn)系統(tǒng)實(shí)時(shí)的將數(shù)據(jù)寫入到生產(chǎn)機(jī)節(jié)點(diǎn)上的數(shù)據(jù)庫系統(tǒng)中,然后由云數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)同步模塊將數(shù)據(jù)周期性的復(fù)制到前置機(jī)上。本發(fā)明解決了分布異構(gòu)信息資源的整合,可以應(yīng)用于分布式異構(gòu)數(shù)據(jù)庫中。
【專利說明】一種用于分布異構(gòu)數(shù)據(jù)資源整合的云數(shù)據(jù)庫系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)應(yīng)用【技術(shù)領(lǐng)域】,尤其是一種用于分布異構(gòu)數(shù)據(jù)資源整合的云數(shù)據(jù)庫系統(tǒng)。
【背景技術(shù)】
[0002]公共信息資源包括政務(wù)部門依法采集的信息資源、政務(wù)部門在履行職能過程中產(chǎn)生的信息資源、政務(wù)部門投資建設(shè)的信息資源、政務(wù)部門依法授權(quán)管理的信息資源。從公共信息資源的這些內(nèi)容特點(diǎn)上來看,目前采集、加工、存儲(chǔ)、管理、使用公共信息資源的主體是各級政務(wù)部門,例如工商、稅務(wù)、規(guī)劃、國土、房產(chǎn)、交通等。因此,在物理上,公共信息資源是分散存儲(chǔ)在各部門的相關(guān)信息資源的統(tǒng)稱。
[0003]一方面,海量信息資源無序而雜亂地分布在政務(wù)資源網(wǎng)絡(luò)中,缺乏統(tǒng)一的管理;另一方面,資源擁有部門之間缺乏有效的共享機(jī)制與協(xié)同技術(shù),導(dǎo)致信息需求者難以發(fā)現(xiàn)既存資源。事實(shí)證明,部門化、分散化的資源服務(wù)組織模式已不能滿足社會(huì)信息化對信息服務(wù)業(yè)的發(fā)展要求。
[0004]公共信息資源共享和開發(fā)利用過程中存在著兩個(gè)方面的信息不對稱,嚴(yán)重影響到信息資源共享平臺(tái)的建設(shè)。第一,使用者對各部門擁有什么樣的信息資源包括信息資源的數(shù)量、質(zhì)量、內(nèi)容、分布情況不了解,妨礙了對信息的獲?。坏诙?,擁有數(shù)據(jù)的部門對使用者的需求不了解,信息資源開發(fā)不足、服務(wù)手段陳舊。尤其是基于互聯(lián)網(wǎng)的信息資源共享和服務(wù)模式的應(yīng)用更是一個(gè)薄弱環(huán)節(jié),資源擁有部門之間缺乏有效的共享機(jī)制與協(xié)同技術(shù),難以直接將信息資源發(fā)送到使用者。同時(shí),各政府部門的公共信息資源缺乏完善統(tǒng)一的采集標(biāo)準(zhǔn),各部門自行建立的數(shù)據(jù)庫不規(guī)范,數(shù)據(jù)類型、格式與存儲(chǔ)方式差異嚴(yán)重,這樣就導(dǎo)致部門間信息資源不一致、不完整。
[0005]此外,公共信息資源多方采集、重復(fù)采集現(xiàn)象普遍,各部門數(shù)據(jù)不能同步更新,造成部門間信息資源不一致。這些標(biāo)準(zhǔn)各異的政務(wù)信息數(shù)據(jù)庫加大了信息資源共享平臺(tái)建設(shè)的難度。
[0006]造成這種技術(shù)問題的根本原因在于缺少一套統(tǒng)一的分布異構(gòu)信息資源的整合技術(shù)。
【發(fā)明內(nèi)容】
[0007]本發(fā)明解決的技術(shù)問題在于提供一種云數(shù)據(jù)庫系統(tǒng),通過虛擬表以及虛擬數(shù)據(jù)庫對底層分布異構(gòu)的信息資源實(shí)現(xiàn)虛擬化,并抽象出統(tǒng)一的數(shù)據(jù)訪問接口,形成統(tǒng)一的數(shù)據(jù)標(biāo)準(zhǔn),打通了各個(gè)部門之間的信息孤島。
[0008]本發(fā)明解決上述技術(shù)問題的技術(shù)方案是:
[0009]所述系統(tǒng)由元數(shù)據(jù)服務(wù)節(jié)點(diǎn)、服務(wù)節(jié)點(diǎn)、前置機(jī)節(jié)點(diǎn)、以及生產(chǎn)機(jī)節(jié)點(diǎn)構(gòu)成,
[0010]所述的元數(shù)據(jù)服務(wù)節(jié)點(diǎn)提供系統(tǒng)服務(wù),實(shí)現(xiàn)對整個(gè)云數(shù)據(jù)庫系統(tǒng)全局的管理,包括租戶管理服務(wù)、系統(tǒng)監(jiān)控服務(wù)、數(shù)據(jù)目錄服務(wù)、系統(tǒng)日志服務(wù)、系統(tǒng)管理界面;[0011]所述的服務(wù)節(jié)點(diǎn)主要提供數(shù)據(jù)服務(wù),支持讀取虛擬表中的數(shù)據(jù),修改、刪除虛擬表中的數(shù)據(jù)、以及往虛擬表中寫入數(shù)據(jù);
[0012]所述的前置機(jī)節(jié)點(diǎn)上的各種異構(gòu)分布的數(shù)據(jù)庫或者文件系統(tǒng)作為云數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)源,通過云數(shù)據(jù)庫系統(tǒng)提供的接入機(jī)制將這些數(shù)據(jù)源接入到云數(shù)據(jù)庫系統(tǒng)的內(nèi)部;
[0013]所述的生產(chǎn)機(jī)節(jié)點(diǎn)上面也部署了多種異構(gòu)分布的數(shù)據(jù)庫、或者文件系統(tǒng);數(shù)據(jù)來自生產(chǎn)系統(tǒng);生產(chǎn)系統(tǒng)實(shí)時(shí)的將數(shù)據(jù)寫入到生產(chǎn)機(jī)節(jié)點(diǎn)上的數(shù)據(jù)庫系統(tǒng)中,然后由云數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)同步模塊將數(shù)據(jù)周期性的復(fù)制到前置機(jī)上。
[0014]所述的元數(shù)據(jù)服務(wù)節(jié)點(diǎn)的
[0015]租戶管理服務(wù)主要提供對云數(shù)據(jù)庫系統(tǒng)中虛擬數(shù)據(jù)庫管理員的管理服務(wù),包括虛擬數(shù)據(jù)庫管理員的注冊、審批、登錄;用戶通過云數(shù)據(jù)庫系統(tǒng)的注冊功能成為云數(shù)據(jù)庫系統(tǒng)的虛擬數(shù)據(jù)庫管理員后可以自主的創(chuàng)建虛擬數(shù)據(jù)庫;
[0016]系統(tǒng)監(jiān)控服務(wù)負(fù)責(zé)對云數(shù)據(jù)庫系統(tǒng)中所有的數(shù)據(jù)節(jié)點(diǎn)進(jìn)行監(jiān)控,主要包括:
[0017]A、實(shí)時(shí)收集每個(gè)數(shù)據(jù)節(jié)點(diǎn)的性能參數(shù),包括節(jié)點(diǎn)當(dāng)前的CPU利用率、內(nèi)存總量、內(nèi)存的剩余量、磁盤的總?cè)萘?、磁盤的剩余空間;
[0018]B、支持將性能參數(shù)以波形圖或者餅圖的方式在界面上直觀的顯示出來;
[0019]C、將收集到的性能參數(shù)寫入數(shù)據(jù)庫,支持以指定時(shí)間段的方式對節(jié)點(diǎn)的歷史性能參數(shù)進(jìn)行查詢;
[0020]數(shù)據(jù)目錄服務(wù)支持以樹形目錄的形式列出云數(shù)據(jù)庫系統(tǒng)中所有的虛擬數(shù)據(jù)庫管理員、虛擬數(shù)據(jù)庫、以及每個(gè)虛擬數(shù)據(jù)庫中的虛擬表、共享的虛擬表、用戶、角色;
[0021]系統(tǒng)日志服務(wù)的主要是詳細(xì)的記錄用戶在云數(shù)據(jù)庫系統(tǒng)中執(zhí)行的各種操作,并支持對這些日志的查詢;一條日志信息包括用戶類型、所屬角色、IP地址、操作時(shí)間、操作記錄、所使用的瀏覽器版本,瀏覽器名稱;
[0022]系統(tǒng)管理界面提供了一個(gè)可視化的操作界面,通過該界面,用戶可以執(zhí)行:
[0023]A、數(shù)據(jù)庫的日常管理操作,如租戶的管理、虛擬數(shù)據(jù)庫的管理、虛擬表的管理、用戶的管理、角色的管理等;
[0024]B、數(shù)據(jù)的訪問操作,讀取虛擬表(視圖)中的數(shù)據(jù),修改、刪除虛擬表中的數(shù)據(jù)、以及往虛擬表中寫入數(shù)據(jù)。
[0025]系統(tǒng)中允許存在多個(gè)服務(wù)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)地位相同,提供相同的服務(wù);節(jié)點(diǎn)的規(guī)模允許隨系統(tǒng)負(fù)載變化按需彈性伸縮;當(dāng)系統(tǒng)負(fù)載規(guī)模增加時(shí),可以動(dòng)態(tài)地往系統(tǒng)中增加新的數(shù)據(jù)節(jié)點(diǎn),系統(tǒng)會(huì)將數(shù)據(jù)請求自動(dòng)分流到新增的數(shù)據(jù)節(jié)點(diǎn)上,整個(gè)過程中云數(shù)據(jù)庫系統(tǒng)正常提供服務(wù),不需要重啟系統(tǒng);
[0026]一個(gè)數(shù)據(jù)節(jié)點(diǎn)可以為一個(gè)或者多個(gè)虛擬數(shù)據(jù)庫提供數(shù)據(jù)服務(wù),即:
[0027]A、針對一個(gè)虛擬數(shù)據(jù)庫中的所有的虛擬表的訪問請求必定會(huì)路由到同一個(gè)服務(wù)節(jié)點(diǎn)去執(zhí)行完成;
[0028]B、針對多個(gè)虛擬數(shù)據(jù)庫中的虛擬表的訪問請求可能也會(huì)路由到同一個(gè)服務(wù)節(jié)點(diǎn)去執(zhí)行完成。
[0029]系統(tǒng)采用“中心管理,對等處理”的架構(gòu);所有的元數(shù)據(jù)都存儲(chǔ)在元數(shù)據(jù)服務(wù)節(jié)點(diǎn)的元數(shù)據(jù)庫中,整個(gè)系統(tǒng)邏輯上由一個(gè)元數(shù)據(jù)服務(wù)節(jié)點(diǎn)來進(jìn)行統(tǒng)一管理和調(diào)度;服務(wù)節(jié)點(diǎn)提供數(shù)據(jù)的訪問操作,包括對數(shù)據(jù)的讀取、查詢、修改、刪除四類操作。每個(gè)服務(wù)節(jié)點(diǎn)都是對等的,數(shù)據(jù)請求發(fā)送到任何一個(gè)節(jié)點(diǎn)上都是可以執(zhí)行的。
[0030]所述的服務(wù)節(jié)點(diǎn)以兩種方式提供數(shù)據(jù)服務(wù),一種是REST的形式,一種是本地API的形式;兩種類型的數(shù)據(jù)服務(wù)功能相同,但是基于的通訊協(xié)議不同;其中,REST服務(wù)接口是基于HTTP協(xié)議來實(shí)現(xiàn)的,而本地API是基于Web Server協(xié)議來完成。
[0031]本發(fā)明的云數(shù)據(jù)庫系統(tǒng)能夠接入物理位置上分布的多種異構(gòu)數(shù)據(jù)源,包括異構(gòu)數(shù)據(jù)庫系統(tǒng)以及文件系統(tǒng),實(shí)現(xiàn)數(shù)據(jù)資源的整合,提供統(tǒng)一的數(shù)據(jù)視圖,屏蔽底層數(shù)據(jù)訪問的物理細(xì)節(jié)。異構(gòu)數(shù)據(jù)庫系統(tǒng)包括MySQL、Oracle、DB2、SQL Server,文件系統(tǒng)包括Excel文件和KV文件兩類文件。多個(gè)用戶通過虛擬數(shù)據(jù)庫共同使用同一個(gè)物理數(shù)據(jù)庫,在使用時(shí)感覺不到其他用戶的存在,就好像在獨(dú)自使用該物理數(shù)據(jù)庫。用戶可以基于一個(gè)物理數(shù)據(jù)庫創(chuàng)建虛擬數(shù)據(jù)庫,多個(gè)用戶可以基于同一個(gè)物理數(shù)據(jù)庫創(chuàng)建多個(gè)虛擬數(shù)據(jù)庫,從而實(shí)現(xiàn)多租戶,同時(shí),系統(tǒng)支持在創(chuàng)建虛擬數(shù)據(jù)庫時(shí),可以基于多個(gè)物理數(shù)據(jù)庫。此外,本發(fā)明系統(tǒng)獨(dú)立于生產(chǎn)系統(tǒng),不直接操作生產(chǎn)系統(tǒng),不會(huì)影響到現(xiàn)有生產(chǎn)系統(tǒng)的運(yùn)行及維護(hù)。
【專利附圖】
【附圖說明】
[0032]下面結(jié)合附圖對本發(fā)明進(jìn)一步說明:
[0033]圖1是本發(fā)明云數(shù)據(jù)庫系統(tǒng)邏輯架構(gòu)圖;
[0034]圖2是本發(fā)明云數(shù)據(jù)庫系統(tǒng)物理架構(gòu)圖;
[0035]圖3是本發(fā)明云數(shù)據(jù)庫系統(tǒng)服務(wù)交互流程圖。
【具體實(shí)施方式】
[0036]本發(fā)明系統(tǒng)中節(jié)點(diǎn)區(qū)分為四種類型,包括:元數(shù)據(jù)服務(wù)節(jié)點(diǎn)、服務(wù)節(jié)點(diǎn)、前置機(jī)節(jié)點(diǎn)、生產(chǎn)機(jī)節(jié)點(diǎn)。
[0037]元數(shù)據(jù)服務(wù)節(jié)點(diǎn)
[0038]系統(tǒng)中邏輯上只有一個(gè)元數(shù)據(jù)服務(wù)節(jié)點(diǎn),物理部署上可以有多個(gè)元數(shù)據(jù)服務(wù)節(jié)點(diǎn),相互作為備份,以提高系統(tǒng)的可用性。元數(shù)據(jù)服務(wù)節(jié)點(diǎn)提供系統(tǒng)服務(wù),實(shí)現(xiàn)對整個(gè)云數(shù)據(jù)庫系統(tǒng)全局的管理,包括租戶管理服務(wù)、系統(tǒng)監(jiān)控服務(wù)、數(shù)據(jù)目錄服務(wù)、系統(tǒng)日志服務(wù)、系統(tǒng)管理界面。
[0039]租戶管理服務(wù)主要提供對云數(shù)據(jù)庫系統(tǒng)中虛擬數(shù)據(jù)庫管理員的管理服務(wù),包括虛擬數(shù)據(jù)庫管理員的注冊、審批、登錄。這里集中體現(xiàn)了云數(shù)據(jù)庫的多租戶的思想,用戶通過云數(shù)據(jù)庫系統(tǒng)的注冊功能成為云數(shù)據(jù)庫系統(tǒng)的虛擬數(shù)據(jù)庫管理員后可以自主的創(chuàng)建虛擬數(shù)據(jù)庫。為了防止惡意或者不正當(dāng)?shù)氖褂迷茢?shù)據(jù)庫系統(tǒng),在注冊的過程中以及創(chuàng)建虛擬數(shù)據(jù)庫的過程中,需要系統(tǒng)管理員的審批。
[0040]系統(tǒng)監(jiān)控服務(wù)負(fù)責(zé)對云數(shù)據(jù)庫系統(tǒng)中所有的數(shù)據(jù)節(jié)點(diǎn)進(jìn)行監(jiān)控,主要功能包括:
[0041](I)實(shí)時(shí)收集每個(gè)數(shù)據(jù)節(jié)點(diǎn)的性能參數(shù),包括節(jié)點(diǎn)當(dāng)前的CPU利用率、內(nèi)存總量、內(nèi)存的剩余量、磁盤的總?cè)萘?、磁盤的剩余空間;
[0042](2)支持將性能參數(shù)以波形圖或者餅圖的方式在界面上直觀的顯示出來;
[0043](3)將收集到的性能參數(shù)寫入數(shù)據(jù)庫,支持以指定時(shí)間段的方式對節(jié)點(diǎn)的歷史性能參數(shù)進(jìn)行查詢。
[0044]數(shù)據(jù)目錄服務(wù)支持以樹形目錄的形式列出云數(shù)據(jù)庫系統(tǒng)中所有的虛擬數(shù)據(jù)庫管理員、虛擬數(shù)據(jù)庫、以及每個(gè)虛擬數(shù)據(jù)庫中的虛擬表、共享的虛擬表、用戶、角色。
[0045]系統(tǒng)日志服務(wù)的主要功能是詳細(xì)的記錄用戶在云數(shù)據(jù)庫系統(tǒng)中執(zhí)行的各種操作,并支持對這些日志的查詢。一條日志信息包括用戶類型(系統(tǒng)管理員或虛擬數(shù)據(jù)庫管理員或普通用戶)、所屬角色、IP地址、操作時(shí)間、操作記錄(例如:登錄系統(tǒng)、創(chuàng)建虛擬數(shù)據(jù)庫、退出系統(tǒng)等操作)、所使用的瀏覽器版本,瀏覽器名稱。
[0046]系統(tǒng)管理界面提供了一個(gè)可視化的操作界面,通過該界面,用戶可以執(zhí)行:
[0047](I)云數(shù)據(jù)庫的日常管理操作,如租戶的管理、虛擬數(shù)據(jù)庫的管理、虛擬表(視圖)的管理、用戶的管理、角色的管理等;
[0048](2)數(shù)據(jù)的訪問操作,讀取虛擬表(視圖)中的數(shù)據(jù),修改、刪除虛擬表中的數(shù)據(jù)、以及往虛擬表中寫入數(shù)據(jù)。
[0049]服務(wù)節(jié)點(diǎn)
[0050]系統(tǒng)中允許存在多個(gè)服務(wù)節(jié)點(diǎn),每個(gè)服務(wù)節(jié)點(diǎn)地位相同,提供相同的服務(wù)。服務(wù)節(jié)點(diǎn)的規(guī)模允許隨系統(tǒng)負(fù)載變化按需彈性伸縮。當(dāng)系統(tǒng)負(fù)載規(guī)模增加時(shí),可以動(dòng)態(tài)地往系統(tǒng)中增加新的數(shù)據(jù)節(jié)點(diǎn),系統(tǒng)會(huì)將數(shù)據(jù)請求自動(dòng)分流到新增的服務(wù)節(jié)點(diǎn)上,整個(gè)過程中云數(shù)據(jù)庫系統(tǒng)正常提供服務(wù),不需要重啟系統(tǒng)。
[0051]服務(wù)節(jié)點(diǎn)主要提供數(shù)據(jù)服務(wù),支持讀取虛擬表(視圖)中的數(shù)據(jù),修改、刪除虛擬表中的數(shù)據(jù)、以及往虛擬表中寫入數(shù)據(jù)。一個(gè)服務(wù)節(jié)點(diǎn)可以為一個(gè)或者多個(gè)虛擬數(shù)據(jù)庫提供數(shù)據(jù)服務(wù),即:
[0052](I)針對一個(gè)虛擬數(shù)據(jù)庫中的所有的虛擬表(視圖)的訪問請求必定會(huì)路由到同一個(gè)數(shù)據(jù)節(jié)點(diǎn)去執(zhí)行完成;
[0053](2)針對多個(gè)虛擬數(shù)據(jù)庫中的虛擬表(視圖)的訪問請求可能也會(huì)路由到同一個(gè)數(shù)據(jù)節(jié)點(diǎn)去執(zhí)行完成。
[0054]前置機(jī)節(jié)點(diǎn)
[0055]前置機(jī)的各種異構(gòu)分布的數(shù)據(jù)庫或者文件系統(tǒng)作為云數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)源,通過云數(shù)據(jù)庫系統(tǒng)提供的接入機(jī)制將這些數(shù)據(jù)源接入到云數(shù)據(jù)庫系統(tǒng)的內(nèi)部。前置機(jī)上的數(shù)據(jù)由數(shù)據(jù)同步模塊周期性的從生產(chǎn)系統(tǒng)中抽取而來,云數(shù)據(jù)庫系統(tǒng)管理員可以指定同步的開始時(shí)間以及同步的頻率。區(qū)分前置機(jī)和生產(chǎn)系統(tǒng)的目的是為了避免云數(shù)據(jù)庫系統(tǒng)干擾生產(chǎn)系統(tǒng)的正常運(yùn)行。
[0056]生產(chǎn)機(jī)節(jié)點(diǎn)
[0057]和前置機(jī)一樣,生產(chǎn)機(jī)上面也部署了多種異構(gòu)分布的數(shù)據(jù)庫、或者文件系統(tǒng)。與前置機(jī)不同的是,生產(chǎn)機(jī)上面的數(shù)據(jù)來自生產(chǎn)系統(tǒng),生產(chǎn)系統(tǒng)包括各種應(yīng)用軟件,如企業(yè)的OA系統(tǒng)、ERP系統(tǒng)、電子商務(wù)系統(tǒng)、文件系統(tǒng)等等。生產(chǎn)系統(tǒng)會(huì)實(shí)時(shí)的將數(shù)據(jù)寫入到生產(chǎn)機(jī)節(jié)點(diǎn)上的數(shù)據(jù)庫系統(tǒng)中,然后由云數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)同步模塊將數(shù)據(jù)周期性的復(fù)制到前置機(jī)上。
[0058]元數(shù)據(jù)服務(wù)節(jié)點(diǎn)上有元數(shù)據(jù)庫,一個(gè)名為CloudDB的數(shù)據(jù)庫,里面有若干表,用來存儲(chǔ)云數(shù)據(jù)庫系統(tǒng)中的所有元數(shù)據(jù)。具體來說,CloudDB元數(shù)據(jù)庫中的元信息表包括:虛擬庫兀信息表、虛擬表兀信息表、角色表、用戶表、同步表、日志表,其主要字段信息如下:
[0059](I)虛擬庫元信息表,如虛擬數(shù)據(jù)庫的名稱,包含的角色、用戶、以及虛擬表的列表;[0060](2)虛擬表元信息表:字段的名稱、類型、長度、描述、必要的完整性約束;
[0061](3)角色表:角色名、操作權(quán)限、所屬的虛擬數(shù)據(jù)庫;
[0062](4)用戶表:用戶名、密碼、所屬的角色、所屬的數(shù)據(jù)庫;
[0063](5)同步表:同步頻率、起始時(shí)間、源數(shù)據(jù)庫信息、目的數(shù)據(jù)庫信息、同步狀態(tài);
[0064](6)日志表:請求的來源、用戶名、操作類型、操作時(shí)間。
[0065]元數(shù)據(jù)服務(wù)節(jié)點(diǎn)基于CloudDB對系統(tǒng)提供元數(shù)據(jù)的讀寫服務(wù),服務(wù)節(jié)點(diǎn)的查詢引擎在執(zhí)行數(shù)據(jù)查詢的時(shí)候會(huì)調(diào)用元服務(wù)節(jié)點(diǎn)上的服務(wù)獲取虛擬表的元數(shù)據(jù),然后才能進(jìn)行解析處理,并將針對虛擬表的數(shù)據(jù)訪問請求轉(zhuǎn)換為針對前置機(jī)上分布異構(gòu)的多種數(shù)據(jù)源的物理數(shù)據(jù)訪問請求。前置機(jī)上的異構(gòu)數(shù)據(jù)源,包括MySQL數(shù)據(jù)庫、DB2數(shù)據(jù)庫、Oracle數(shù)據(jù)庫、SQL Server數(shù)據(jù)庫、以及Excel文件和KV文件服務(wù),接收到來自云數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)訪問請求后,會(huì)調(diào)用自身的數(shù)據(jù)庫引擎或者文件處理引擎執(zhí)行請求,并返回?cái)?shù)據(jù)訪問的結(jié)果。服務(wù)節(jié)點(diǎn)會(huì)接收前置機(jī)返回的結(jié)果,并對這些結(jié)果進(jìn)行匯總處理后,將最終的查詢結(jié)果返回給用戶。
[0066]同步模塊負(fù)責(zé)將生產(chǎn)節(jié)點(diǎn)上的最新數(shù)據(jù)以增量的方式,同步到前置機(jī)節(jié)點(diǎn)上。同步模塊是基于數(shù)據(jù)庫提供的現(xiàn)有的數(shù)據(jù)備份接口,這種實(shí)現(xiàn)方式的優(yōu)點(diǎn)利用了專有的數(shù)據(jù)庫備份文件數(shù)據(jù)結(jié)構(gòu)以及數(shù)據(jù)傳輸協(xié)議,能顯著提高同步的效率。
[0067]本發(fā)明云數(shù)據(jù)庫采用“中心管理,對等處理”的架構(gòu)。系統(tǒng)所有的元數(shù)據(jù)都存儲(chǔ)在元服務(wù)節(jié)點(diǎn)的元數(shù)據(jù)庫中,整個(gè)系統(tǒng)邏輯上由一個(gè)元服務(wù)節(jié)點(diǎn)來進(jìn)行統(tǒng)一管理和調(diào)度。數(shù)據(jù)服務(wù)節(jié)點(diǎn)提供數(shù)據(jù)的訪問操作,包括對數(shù)據(jù)的增力口、查詢、修改、刪除四類操作。每個(gè)數(shù)據(jù)服務(wù)節(jié)點(diǎn)都是對等的,數(shù)據(jù)請求發(fā)送到任何一個(gè)節(jié)點(diǎn)上都是可以執(zhí)行的。
[0068]云數(shù)據(jù)庫系統(tǒng)的邏輯架構(gòu)詳細(xì)描述了系統(tǒng)內(nèi)部的功能模塊,如圖2所示。關(guān)于元數(shù)據(jù)服務(wù)節(jié)點(diǎn)前面已經(jīng)介紹的比較詳細(xì)了,在這里,我們重點(diǎn)介紹服務(wù)節(jié)點(diǎn)的具體實(shí)施過程。
[0069]服務(wù)節(jié)點(diǎn)以兩種方式提供數(shù)據(jù)服務(wù),一種是REST的形式,一種是本地API的形式。兩種類型的數(shù)據(jù)服務(wù)功能相同,但是基于的通訊協(xié)議不同。其中,REST服務(wù)接口是基于HTTP協(xié)議來實(shí)現(xiàn)的,而本地API是基于Web Server協(xié)議來完成。數(shù)據(jù)服務(wù)是基于接口容器來發(fā)布,REST類型的數(shù)據(jù)服務(wù)采用Jetty作為接口容器,而本地API采用Axis作為接口容器。
[0070]分布式處理引擎負(fù)責(zé)解析數(shù)據(jù)請求,分析出請求相關(guān)的虛擬表,并向元服務(wù)節(jié)點(diǎn)發(fā)送虛擬表元數(shù)據(jù)的請求。當(dāng)獲得虛擬表的元數(shù)據(jù)后,構(gòu)建執(zhí)行計(jì)劃樹。執(zhí)行計(jì)劃樹的每個(gè)節(jié)點(diǎn)代表一個(gè)子查詢,節(jié)點(diǎn)之間的連線表示數(shù)據(jù)傳遞的方向。執(zhí)行計(jì)劃樹構(gòu)建好后會(huì)傳遞給優(yōu)化器,優(yōu)化器會(huì)根據(jù)系統(tǒng)的優(yōu)化策略對執(zhí)行計(jì)劃樹進(jìn)行盡可能的優(yōu)化,以提高查詢的效率。常用的優(yōu)化策略包括:
[0071](I)利用緩存:通過數(shù)據(jù)緩存,以減少對數(shù)據(jù)源的請求次數(shù);
[0072](2)虛擬索引:通過虛擬表上面的索引,減少不必要的數(shù)據(jù)請求;
[0073](3)合并關(guān)聯(lián)節(jié)點(diǎn):合并執(zhí)行計(jì)劃樹中的相關(guān)節(jié)點(diǎn),縮短執(zhí)行路徑的深度;
[0074](4)過濾下推:將過濾條件向葉子節(jié)點(diǎn)方向下推,以減少網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)流;
[0075](5)并行調(diào)度:將無關(guān)節(jié)點(diǎn)并發(fā)執(zhí)行,以增加并行度。
[0076]物理控制器本質(zhì)上是一個(gè)適配器,負(fù)責(zé)將系統(tǒng)內(nèi)部特定格式的數(shù)據(jù)請求轉(zhuǎn)換成針對不同數(shù)據(jù)源的SQL語句。物理控制器的生命周期包括創(chuàng)建、初始化、執(zhí)行、銷毀四個(gè)不同的階段由物理控制管理器來維護(hù)。此外,訪問控制、用戶日志、以及系統(tǒng)監(jiān)控的具體實(shí)現(xiàn)也是由數(shù)據(jù)服務(wù)節(jié)點(diǎn)來完成。
[0077]云數(shù)據(jù)庫系統(tǒng)的交互流程如圖3所示。用戶與系統(tǒng)的交互有兩個(gè)途徑。
[0078](I)通過云數(shù)據(jù)庫系統(tǒng)提供的系統(tǒng)界面進(jìn)行交互,如圖3中黑色部分所示;
[0079](2)通過客戶端接口與云數(shù)據(jù)庫系統(tǒng)交互,如圖3中藍(lán)色部分所示。
[0080]兩種交互方式基本流程基本相同,但是通過系統(tǒng)界面支持兩類功能。用戶可以通過云數(shù)據(jù)庫的界面實(shí)現(xiàn)系統(tǒng)的日常管理、數(shù)據(jù)訪問。通過客戶端接口,用戶只能實(shí)現(xiàn)數(shù)據(jù)的訪問。不過,以接口的方式訪問數(shù)據(jù)允許用戶根據(jù)需要帶入多種不同的參數(shù),因此,訪問的方式更加的靈活。
[0081]用戶執(zhí)行系統(tǒng)日常管理,僅僅需要與元數(shù)據(jù)服務(wù)節(jié)點(diǎn)打交道。如果要執(zhí)行數(shù)據(jù)訪問,第一步是訪問元數(shù)據(jù)服務(wù)節(jié)點(diǎn),由元數(shù)據(jù)服務(wù)節(jié)點(diǎn)根據(jù)負(fù)載情況選擇接收數(shù)據(jù)訪問請求節(jié)點(diǎn)。然后,客戶端將數(shù)據(jù)訪問請求定位到指定的數(shù)據(jù)服務(wù)節(jié)點(diǎn)上。數(shù)據(jù)服務(wù)節(jié)點(diǎn)在執(zhí)行數(shù)據(jù)請求的時(shí)候,需要訪問元數(shù)據(jù)服務(wù)節(jié)點(diǎn)上的CloudDB數(shù)據(jù)庫以獲得虛擬表的元數(shù)據(jù)信息。
【權(quán)利要求】
1.一種用于整合分布異構(gòu)數(shù)據(jù)資源的云數(shù)據(jù)庫系統(tǒng),其特征在于:所述系統(tǒng)由元數(shù)據(jù)服務(wù)節(jié)點(diǎn)、服務(wù)節(jié)點(diǎn)、前置機(jī)節(jié)點(diǎn)、以及生產(chǎn)機(jī)節(jié)點(diǎn)構(gòu)成, 所述的元數(shù)據(jù)服務(wù)節(jié)點(diǎn)提供系統(tǒng)服務(wù),實(shí)現(xiàn)對整個(gè)云數(shù)據(jù)庫系統(tǒng)全局的管理,包括租戶管理服務(wù)、系統(tǒng)監(jiān)控服務(wù)、數(shù)據(jù)目錄服務(wù)、系統(tǒng)日志服務(wù)、系統(tǒng)管理界面; 所述的服務(wù)節(jié)點(diǎn)主要提供數(shù)據(jù)服務(wù),支持讀取虛擬表中的數(shù)據(jù),修改、刪除虛擬表中的數(shù)據(jù)、以及往虛擬表中寫入數(shù)據(jù); 所述的前置機(jī)節(jié)點(diǎn)上的各種異構(gòu)分布的數(shù)據(jù)庫或者文件系統(tǒng)作為云數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)源,通過云數(shù)據(jù)庫系統(tǒng)提供的接入機(jī)制將這些數(shù)據(jù)源接入到云數(shù)據(jù)庫系統(tǒng)的內(nèi)部; 所述的生產(chǎn)機(jī)節(jié)點(diǎn)上面也部署了多種異構(gòu)分布的數(shù)據(jù)庫、或者文件系統(tǒng);數(shù)據(jù)來自生產(chǎn)系統(tǒng);生產(chǎn)系統(tǒng)實(shí)時(shí)的將數(shù)據(jù)寫入到生產(chǎn)機(jī)節(jié)點(diǎn)上的數(shù)據(jù)庫系統(tǒng)中,然后由云數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)同步模塊將數(shù)據(jù)周期性的復(fù)制到前置機(jī)上。
2.根據(jù)權(quán)利要求1所述的云數(shù)據(jù)庫系統(tǒng),其特征在于:所述的元數(shù)據(jù)服務(wù)節(jié)點(diǎn)的 租戶管理服務(wù)主要提供對云數(shù)據(jù)庫系統(tǒng)中虛擬數(shù)據(jù)庫管理員的管理服務(wù),包括虛擬數(shù)據(jù)庫管理員的注冊、審批、登錄;用戶通過云數(shù)據(jù)庫系統(tǒng)的注冊功能成為云數(shù)據(jù)庫系統(tǒng)的虛擬數(shù)據(jù)庫管理員后可以自主的創(chuàng)建虛擬數(shù)據(jù)庫; 系統(tǒng)監(jiān)控服務(wù)負(fù)責(zé)對云數(shù)據(jù)庫系統(tǒng)中所有的數(shù)據(jù)節(jié)點(diǎn)進(jìn)行監(jiān)控,主要包括: A、實(shí)時(shí)收集每個(gè)數(shù)據(jù)節(jié)點(diǎn)的性能參數(shù),包括節(jié)點(diǎn)當(dāng)前的CPU利用率、內(nèi)存總量、內(nèi)存的剩余量、磁盤的總?cè)萘俊⒋疟P的剩余空間; B、支持將性能參數(shù)以波形圖或者餅圖的方式在界面上直觀的顯示出來; C、將收集到的性能參數(shù)寫入數(shù)據(jù)庫,支持以指定時(shí)間段的方式對節(jié)點(diǎn)的歷史性能參數(shù)進(jìn)行查詢; 數(shù)據(jù)目錄服務(wù)支持以樹形目錄的形式列出云數(shù)據(jù)庫系統(tǒng)中所有的虛擬數(shù)據(jù)庫管理員、虛擬數(shù)據(jù)庫、以及每個(gè)虛擬數(shù)據(jù)庫中的虛擬表、共享的虛擬表、用戶、角色; 系統(tǒng)日志服務(wù)的主要是詳細(xì)的記錄用戶在云數(shù)據(jù)庫系統(tǒng)中執(zhí)行的各種操作,并支持對這些日志的查詢;一條日志信息包括用戶類型、所屬角色、IP地址、操作時(shí)間、操作記錄、所使用的瀏覽器版本,瀏覽器名稱; 系統(tǒng)管理界面提供了一個(gè)可視化的操作界面,通過該界面,用戶可以執(zhí)行: A、數(shù)據(jù)庫的日常管理操作,如租戶的管理、虛擬數(shù)據(jù)庫的管理、虛擬表的管理、用戶的管理、角色的管理等; B、數(shù)據(jù)的訪問操作,讀取虛擬表(視圖)中的數(shù)據(jù),修改、刪除虛擬表中的數(shù)據(jù)、以及往虛擬表中寫入數(shù)據(jù)。
3.根據(jù)權(quán)利要求1所述的云數(shù)據(jù)庫系統(tǒng),其特征在于:系統(tǒng)中允許存在多個(gè)服務(wù)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)地位相同,提供相同的服務(wù);節(jié)點(diǎn)的規(guī)模允許隨系統(tǒng)負(fù)載變化按需彈性伸縮;當(dāng)系統(tǒng)負(fù)載規(guī)模增加時(shí),可以動(dòng)態(tài)地往系統(tǒng)中增加新的數(shù)據(jù)節(jié)點(diǎn),系統(tǒng)會(huì)將數(shù)據(jù)請求自動(dòng)分流到新增的數(shù)據(jù)節(jié)點(diǎn)上,整個(gè)過程中云數(shù)據(jù)庫系統(tǒng)正常提供服務(wù),不需要重啟系統(tǒng); 一個(gè)數(shù)據(jù)節(jié)點(diǎn)可以為一個(gè)或者多個(gè)虛擬數(shù)據(jù)庫提供數(shù)據(jù)服務(wù),即: A、針對一個(gè)虛擬數(shù)據(jù)庫中的所有的虛擬表的訪問請求必定會(huì)路由到同一個(gè)服務(wù)節(jié)點(diǎn)去執(zhí)行完成; B、針對多個(gè)虛擬數(shù)據(jù)庫中的虛擬表的訪問請求可能也會(huì)路由到同一個(gè)服務(wù)節(jié)點(diǎn)去執(zhí)行完成。
4.根據(jù)權(quán)利要求2所述的云數(shù)據(jù)庫系統(tǒng),其特征在于:系統(tǒng)中允許存在多個(gè)服務(wù)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)地位相同,提供相同的服務(wù);節(jié)點(diǎn)的規(guī)模允許隨系統(tǒng)負(fù)載變化按需彈性伸縮;當(dāng)系統(tǒng)負(fù)載規(guī)模增加時(shí),可以動(dòng)態(tài)地往系統(tǒng)中增加新的數(shù)據(jù)節(jié)點(diǎn),系統(tǒng)會(huì)將數(shù)據(jù)請求自動(dòng)分流到新增的數(shù)據(jù)節(jié)點(diǎn)上,整個(gè)過程中云數(shù)據(jù)庫系統(tǒng)正常提供服務(wù),不需要重啟系統(tǒng); 一個(gè)數(shù)據(jù)節(jié)點(diǎn)可以為一個(gè)或者多個(gè)虛擬數(shù)據(jù)庫提供數(shù)據(jù)服務(wù),即: A、針對一個(gè)虛擬數(shù)據(jù)庫中的所有的虛擬表的訪問請求必定會(huì)路由到同一個(gè)服務(wù)節(jié)點(diǎn)去執(zhí)行完成; B、針對多個(gè)虛擬數(shù)據(jù)庫中的虛擬表的訪問請求可能也會(huì)路由到同一個(gè)服務(wù)節(jié)點(diǎn)去執(zhí)行完成。
5.根據(jù)權(quán)利要求1至4任一項(xiàng)所述的云數(shù)據(jù)庫系統(tǒng),其特征在于:系統(tǒng)采用“中心管理,對等處理”的架構(gòu);所有的元數(shù)據(jù)都存儲(chǔ)在元數(shù)據(jù)服務(wù)節(jié)點(diǎn)的元數(shù)據(jù)庫中,整個(gè)系統(tǒng)邏輯上由一個(gè)元數(shù)據(jù)服務(wù)節(jié)點(diǎn)來進(jìn)行統(tǒng)一管理和調(diào)度;服務(wù)節(jié)點(diǎn)提供數(shù)據(jù)的訪問操作,包括對數(shù)據(jù)的讀取、查詢、修改、刪除四類操作。每個(gè)服務(wù)節(jié)點(diǎn)都是對等的,數(shù)據(jù)請求發(fā)送到任何一個(gè)節(jié)點(diǎn)上都是可以執(zhí)行的。
6.根據(jù)權(quán)利要求1至4任一項(xiàng)所述的云數(shù)據(jù)庫系統(tǒng),其特征在于:所述的服務(wù)節(jié)點(diǎn)以兩種方式提供數(shù)據(jù)服務(wù),一種是REST的形式,一種是本地API的形式;兩種類型的數(shù)據(jù)服務(wù)功能相同,但是基于的通訊協(xié)議不同;其中,REST服務(wù)接口是基于HTTP協(xié)議來實(shí)現(xiàn)的,而本地API是基于Web Server協(xié)議來完成。
7.根據(jù)權(quán)利要求5所述的云數(shù)據(jù)庫系統(tǒng),其特征在于:所述的服務(wù)節(jié)點(diǎn)以兩種方式提供數(shù)據(jù)服務(wù),一種是REST的形式,一種是本地API的形式;兩種類型的數(shù)據(jù)服務(wù)功能相同,但是基于的通訊協(xié)議不同;其中,REST服務(wù)接口是基于HTTP協(xié)議來實(shí)現(xiàn)的,而本地API是基于Web Server協(xié)議來完成。
【文檔編號】G06F17/30GK103605698SQ201310545898
【公開日】2014年2月26日 申請日期:2013年11月6日 優(yōu)先權(quán)日:2013年11月6日
【發(fā)明者】謝毅, 劉祥濤, 岳強(qiáng), 季統(tǒng)凱, 徐志偉 申請人:廣東電子工業(yè)研究院有限公司