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

一種分布式NewSQL數(shù)據(jù)庫系統(tǒng)及圖片數(shù)據(jù)查詢方法與流程

文檔序號:11323372閱讀:281來源:國知局
一種分布式NewSQL數(shù)據(jù)庫系統(tǒng)及圖片數(shù)據(jù)查詢方法與流程

本發(fā)明涉及大數(shù)據(jù)技術(shù)領(lǐng)域,尤其涉及一種分布式newsql數(shù)據(jù)庫系統(tǒng)和圖片數(shù)據(jù)查詢方法。



背景技術(shù):

hbase存儲的數(shù)據(jù)沒有數(shù)據(jù)類型之分,均為byte數(shù)組。如若要存儲圖片數(shù)據(jù)即需要將圖片數(shù)據(jù)序列化后和其他字段的數(shù)據(jù)一起存儲。在實際場景中,圖片數(shù)據(jù)屬于一次寫入多次讀取的數(shù)據(jù),而且圖片的數(shù)據(jù)會比較大,其他字段卻是會出現(xiàn)頻繁的讀寫操作,基于現(xiàn)有的hbase存儲圖片數(shù)據(jù)的方式,會導(dǎo)致當(dāng)只是查詢其他字段時造成讀取數(shù)據(jù)的性能的下降。再者因為hbase其region中的實質(zhì)數(shù)據(jù)在flush到磁盤時是需要同時flush的,這樣一并存儲也會對寫入數(shù)據(jù)的性能造成影響。



技術(shù)實現(xiàn)要素:

本發(fā)明實施例的目的是提供一種分布式newsql數(shù)據(jù)庫系統(tǒng)及圖片數(shù)據(jù)查詢方法,滿足用戶圖片的查詢需求,解決由圖片數(shù)據(jù)所導(dǎo)致的其他字段讀取性能下降的問題。

為實現(xiàn)上述目的,本發(fā)明實施例提供了一種分布式newsql數(shù)據(jù)庫系統(tǒng),包括:

控制單元,用于以數(shù)據(jù)庫接口的方式接入用戶請求,并將所述用戶請求發(fā)送給計劃單元;還用于將查詢結(jié)果返回用戶;其中,所述用戶請求包括需要查詢的圖片數(shù)據(jù)的查詢條件,所述查詢結(jié)果為根據(jù)所述查詢條件所獲得的查詢結(jié)果;

計劃單元,用于解析所述用戶請求,編譯以及生成對應(yīng)的執(zhí)行計劃;

執(zhí)行單元,用于根據(jù)執(zhí)行計劃,啟動協(xié)同處理模塊獲取與所述用戶請求的所述查詢條件相對應(yīng)的md5;并根據(jù)獲取的所述md5查詢圖片數(shù)據(jù)表,從而獲得對應(yīng)的所述查詢結(jié)果;并返回查詢結(jié)果至所述控制單元;

hbase單元,用于儲存原始數(shù)據(jù)表和所述圖片數(shù)據(jù)表;所述hbase單元包括所述協(xié)同處理模塊,用于根據(jù)所述查詢條件查詢原始數(shù)據(jù)表,獲得相對應(yīng)的所述md5;其中hbase單元的底層增加lob類型。

與現(xiàn)有技術(shù)相比,本發(fā)明公開的一種分布式newsql數(shù)據(jù)庫系統(tǒng),通過控制單元以數(shù)據(jù)庫接口的方式接入用戶請求,并將所述用戶請求發(fā)送給計劃單元;通過計劃單元解析所述用戶請求,編譯以及生成對應(yīng)的執(zhí)行計劃;通過執(zhí)行單元根據(jù)執(zhí)行計劃,啟動協(xié)同處理模塊獲取hbase單元的原始數(shù)據(jù)表中與所述用戶請求的所述查詢條件相對應(yīng)的md5;并根據(jù)獲取的所述md5查詢hbase單元的圖片數(shù)據(jù)表,從而獲得對應(yīng)的所述查詢結(jié)果;并返回查詢結(jié)果至所述控制單元;通過控制單元將查詢結(jié)果返回用戶的技術(shù)方案,解決了現(xiàn)有技術(shù)中因圖片數(shù)據(jù)導(dǎo)致其它數(shù)據(jù)的讀取性能下降的問題,保證了用戶對圖片數(shù)據(jù)的檢索需求,同時提高其它數(shù)據(jù)的讀取性能。

進一步的,還包括分布式事務(wù)管理器,用于當(dāng)所述執(zhí)行計劃中涉及分布式事務(wù)時,協(xié)調(diào)所述執(zhí)行計劃中的多方完成分布式事務(wù)管理。

進一步的,還包括:所述hbase單元還包括hbase單元api接口,所述執(zhí)行單元用于根據(jù)獲取的所述md5通過所述hbase單元api接口查詢數(shù)據(jù)表,從而獲得對應(yīng)的所述查詢結(jié)果。

進一步的,所述數(shù)據(jù)庫接口為jdbc或odbc。

本發(fā)明實施例還提供了一種圖片數(shù)據(jù)查詢方法,基于上述本發(fā)明實施例提供的分布式newsql數(shù)據(jù)庫系統(tǒng),包括:

通過控制單元以數(shù)據(jù)庫接口的方式接入用戶請求,并將所述用戶請求發(fā)送給計劃單元;其中,所述用戶請求包括需要查詢的圖片數(shù)據(jù)的查詢條件;

通過計劃單元解析所述用戶請求,編譯以及生成對應(yīng)的執(zhí)行計劃;

通過執(zhí)行單元根據(jù)執(zhí)行計劃,啟動協(xié)同處理模塊獲取與所述用戶請求的所述查詢條件相對應(yīng)的md5;并根據(jù)獲取的所述md5查詢圖片數(shù)據(jù)表,從而獲得對應(yīng)的所述查詢結(jié)果;其中,所述原始數(shù)據(jù)表和所述圖片數(shù)據(jù)表儲存于hbase單元,hbase單元的底層增加lob類型。

通過所述執(zhí)行單元返回查詢結(jié)果至所述控制單元;

通過所述控制單元返回所述查詢結(jié)果至用戶。

與現(xiàn)有技術(shù)相比,本發(fā)明公開的一種圖片數(shù)據(jù)查詢方法,通過控制單元以數(shù)據(jù)庫接口的方式接入用戶請求,并將所述用戶請求發(fā)送給計劃單元;通過計劃單元解析所述用戶請求,編譯以及生成對應(yīng)的執(zhí)行計劃;通過執(zhí)行單元根據(jù)執(zhí)行計劃,啟動協(xié)同處理模塊獲取hbase單元的原始數(shù)據(jù)表中與所述用戶請求的所述查詢條件相對應(yīng)的md5;并根據(jù)獲取的所述md5查詢hbase單元的圖片數(shù)據(jù)表,從而獲得對應(yīng)的所述查詢結(jié)果;并返回查詢結(jié)果至所述控制單元;通過控制單元將查詢結(jié)果返回用戶的技術(shù)方案,解決了現(xiàn)有技術(shù)中因圖片數(shù)據(jù)導(dǎo)致其它數(shù)據(jù)的讀取性能下降的問題,保證了用戶對圖片數(shù)據(jù)的檢索需求,同時提高其它數(shù)據(jù)的讀取性能。

進一步的,還包括:

通過分布式事務(wù)管理器當(dāng)所述執(zhí)行計劃中涉及分布式事務(wù)時,協(xié)調(diào)所述執(zhí)行計劃中的多方完成分布式事務(wù)管理。

進一步的,所述執(zhí)行單元查詢所述圖片數(shù)據(jù)表時通過所述hbase單元的hbase單元api接口查詢所述圖片數(shù)據(jù)表,從而獲得對應(yīng)的查詢結(jié)果。

進一步的,所述數(shù)據(jù)庫接口為jdbc或odbc。

附圖說明

圖1是本發(fā)明實施例1提供的一種分布式newsql數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)示意圖;

圖2是本發(fā)明實施例2提供的一種圖片數(shù)據(jù)查詢方法的流程示意圖;

圖3是本發(fā)明實施例2提供的一種圖片數(shù)據(jù)查詢方法的步驟s2中生成執(zhí)行計劃的流程示意圖。

具體實施方式

下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。

參見圖1,圖1是本發(fā)明實施例1提供的一種分布式newsql數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)示意圖;本實施例的具體結(jié)構(gòu)包括:

控制單元1,用于以數(shù)據(jù)庫接口的方式接入用戶請求,并將所述用戶請求發(fā)送給計劃單元2;還用于將查詢結(jié)果返回用戶;其中,所述用戶請求包括需要查詢的圖片數(shù)據(jù)的查詢條件,所述查詢結(jié)果為根據(jù)所述查詢條件所獲得的查詢結(jié)果;

計劃單元2,用于解析所述用戶請求,編譯以及生成對應(yīng)的執(zhí)行計劃;

執(zhí)行單元3,用于根據(jù)執(zhí)行計劃,啟動協(xié)同處理模塊41獲取與所述用戶請求的所述查詢條件相對應(yīng)的md5;并根據(jù)獲取的所述md5查詢圖片數(shù)據(jù)表,從而獲得對應(yīng)的所述查詢結(jié)果;并返回查詢結(jié)果至所述控制單元1;

hbase單元4,用于儲存原始數(shù)據(jù)表和所述圖片數(shù)據(jù)表;所述hbase單元4包括所述協(xié)同處理模塊41,用于根據(jù)所述查詢條件查詢原始數(shù)據(jù)表,獲得相對應(yīng)的所述md5;其中hbase單元4的底層增加lob類型。

本實施例的hbase單元4的底層增加lob類型,提供lob存儲,而lob可以高效的滿足單條數(shù)據(jù)大小在幾百k到10m的二進制存儲需求,即hbase單元4通過lob已存儲圖片數(shù)據(jù)。lob類型參考了sql中的blob類型的實現(xiàn),將大對象存儲為數(shù)據(jù)庫中的一個位圖,但是此處的lob其實現(xiàn)為針對lob類型建立另類索引,圖片數(shù)據(jù)以位圖存儲在獨立的數(shù)據(jù)表中,原始數(shù)據(jù)表僅僅存儲索引數(shù)據(jù),以此減少數(shù)據(jù)表大小。在圖片的索引數(shù)據(jù)生成方面,圖片數(shù)據(jù)通過md5計算將md5的結(jié)果作為圖片數(shù)據(jù)的唯一索引數(shù)據(jù)。因為圖片數(shù)據(jù)只能進行原子覆蓋的修改以及相對獨立的查詢,在針對非圖片字段的查詢時能大大提升檢索速度。

進一步的,還包括分布式事務(wù)管理器,用于當(dāng)執(zhí)行計劃中涉及事務(wù)時,協(xié)調(diào)執(zhí)行計劃中的多方完成分布式事務(wù)管理。分布式事務(wù)管理器利用java事務(wù)處理api(jta)實現(xiàn)分布式事務(wù)處理和事務(wù)管理;其中,jta,即javatransactionapi,jta允許應(yīng)用程序執(zhí)行分布式事務(wù)處理——在兩個或多個網(wǎng)絡(luò)計算機資源上訪問并且更新數(shù)據(jù)。

進一步的,還包括:hbase單元4還包括hbase單元api接口,所述執(zhí)行單元3用于根據(jù)獲取的所述md5通過所述hbase單元api接口查詢數(shù)據(jù)表,從而獲得對應(yīng)的所述查詢結(jié)果。

進一步的,所述數(shù)據(jù)庫接口為jdbc或odbc。

其中,執(zhí)行單元3通過協(xié)同處理模塊41獲取與用戶請求的查詢條件相對應(yīng)的索引數(shù)據(jù)時,利用協(xié)同處理模塊41的并行性,能夠提高整體的查詢速度。且當(dāng)協(xié)同處理模塊41獲得索引數(shù)據(jù)后,hbase單元4將索引數(shù)據(jù)返回給執(zhí)行單元3,從而使執(zhí)行單元3能夠根據(jù)索引數(shù)據(jù)進一步查詢數(shù)據(jù)表,以獲得對應(yīng)的查詢結(jié)果。

進一步的,控制單元1還連接一監(jiān)視器,用于負(fù)責(zé)元數(shù)據(jù)管理以及用于監(jiān)控底層hbaseregion的負(fù)載,避免特定的region負(fù)載過高,以及利用協(xié)同處理模塊41重新分配region。

另外,控制單元1還用于協(xié)調(diào)多個角色之間的數(shù)據(jù)通訊、管理整體流程。

具體的,計劃單元2用于接收到控制單元1的用戶請求后,解析用戶請求,并通過高速sql引擎編譯sql,然后再生成執(zhí)行計劃。另外,執(zhí)行單元3還用于執(zhí)行計劃生成后返回給控制單元1。而控制單元1在接收到執(zhí)行計劃后,還用于根據(jù)執(zhí)行計劃的內(nèi)容判斷是否需要分布式事務(wù)管理器的介入,如果需要,則啟動分布式事務(wù)管理器。

計劃單元2用于生成執(zhí)行計劃的過程,具體包括:

判斷共享緩存池中是否存在與sql語句相對應(yīng)的預(yù)存sql語句,若是,則輸出與sql語句對應(yīng)的執(zhí)行計劃,若否,則

對sql語句進行語法檢查,若語法錯誤返回錯誤信息給用戶,否則,

對sql語句進行語義檢查,若語義錯誤返回錯誤信息給用戶,否則,

對sql語句進行視圖以及表達式轉(zhuǎn)換,獲得對應(yīng)的轉(zhuǎn)化結(jié)果;

根據(jù)轉(zhuǎn)換結(jié)果選擇優(yōu)化器,獲得對應(yīng)的優(yōu)化器選擇結(jié)果;

根據(jù)優(yōu)化器選擇結(jié)果選擇對應(yīng)的數(shù)據(jù)連接方式以及連接順序;

根據(jù)連接方式和連接順序選擇搜索的路徑;

根據(jù)搜索路徑生成執(zhí)行計劃,并輸出執(zhí)行計劃。

具體實施時,通過控制單元1以數(shù)據(jù)庫接口的方式接入用戶請求,并將所述用戶請求發(fā)送給計劃單元2;通過計劃單元2解析所述用戶請求,編譯以及生成對應(yīng)的執(zhí)行計劃;通過執(zhí)行單元3根據(jù)執(zhí)行計劃,啟動協(xié)同處理模塊41獲取hbase單元4的原始數(shù)據(jù)表中與所述用戶請求的所述查詢條件相對應(yīng)的md5;并根據(jù)獲取的所述md5查詢hbase單元4的圖片數(shù)據(jù)表,從而獲得對應(yīng)的所述查詢結(jié)果;并返回查詢結(jié)果至所述控制單元1;通過控制單元1將查詢結(jié)果返回用戶。

本實施例解決了現(xiàn)有技術(shù)中因圖片數(shù)據(jù)導(dǎo)致其它數(shù)據(jù)的讀取性能下降的問題,保證了用戶對圖片數(shù)據(jù)的檢索需求,同時提高其它數(shù)據(jù)的讀取性能。

參見圖2,圖2是本發(fā)明實施例2提供的一種圖片數(shù)據(jù)查詢方法的流程示意圖;本實施例2提供的圖片數(shù)據(jù)查詢方法為基于上述實施例1提供的分布式newsql數(shù)據(jù)庫系統(tǒng),本實施例2包括下述步驟:

s1、通過控制單元1以數(shù)據(jù)庫接口的方式接入用戶請求,并將所述用戶請求發(fā)送給計劃單元2;其中,所述用戶請求包括需要查詢的圖片數(shù)據(jù)的查詢條件;

s2、通過計劃單元2解析所述用戶請求,編譯以及生成對應(yīng)的執(zhí)行計劃;

s3、通過執(zhí)行單元3根據(jù)執(zhí)行計劃,啟動協(xié)同處理模塊獲取與所述用戶請求的所述查詢條件相對應(yīng)的md5;并根據(jù)獲取的所述md5查詢圖片數(shù)據(jù)表,從而獲得對應(yīng)的所述查詢結(jié)果;其中,所述原始數(shù)據(jù)表和所述圖片數(shù)據(jù)表儲存于hbase單元4,hbase單元4的底層增加lob類型。

s4、通過所述執(zhí)行單元3返回查詢結(jié)果至所述控制單元1;

s5、通過所述控制單元1返回所述查詢結(jié)果至用戶。

本實施例的hbase單元4的底層增加lob類型,提供lob存儲,而lob可以高效的滿足單條數(shù)據(jù)大小在幾百k到10m的二進制存儲需求,即hbase單元4通過lob已存儲圖片數(shù)據(jù)。lob類型參考了sql中的blob類型的實現(xiàn),將大對象存儲為數(shù)據(jù)庫中的一個位圖,但是此處的lob其實現(xiàn)為針對lob類型建立另類索引,圖片數(shù)據(jù)以位圖存儲在獨立的數(shù)據(jù)表中,原始數(shù)據(jù)表僅僅存儲索引數(shù)據(jù),以此減少數(shù)據(jù)表大小。在圖片的索引數(shù)據(jù)生成方面,圖片數(shù)據(jù)通過md5計算將md5的結(jié)果作為圖片數(shù)據(jù)的唯一索引數(shù)據(jù)。因為圖片數(shù)據(jù)只能進行原子覆蓋的修改以及相對獨立的查詢,在針對非圖片字段的查詢時能大大提升檢索速度。

進一步的,還包括:

通過分布式事務(wù)管理器當(dāng)所述執(zhí)行計劃中涉及分布式事務(wù)時,協(xié)調(diào)所述執(zhí)行計劃中的多方完成分布式事務(wù)管理。

進一步的,所述執(zhí)行單元3查詢所述圖片數(shù)據(jù)表時通過所述hbase單元4的hbase單元api接口查詢所述圖片數(shù)據(jù)表,從而獲得對應(yīng)的查詢結(jié)果。

進一步的,所述數(shù)據(jù)庫接口為jdbc或odbc。

其中,通過協(xié)同處理模塊41獲取與用戶請求的查詢條件相對應(yīng)的索引數(shù)據(jù)時,利用協(xié)同處理模塊41的并行性,能夠提高整體的查詢速度。且當(dāng)協(xié)同處理模塊41獲得md5后,hbase單元將md5返回給執(zhí)行單元3,從而使執(zhí)行單元3能夠根據(jù)md5進一步查詢數(shù)據(jù)表,以獲得對應(yīng)的查詢結(jié)果。

具體的,通過計劃單元2接收到控制單元1的用戶請求后,解析用戶請求,并通過高速sql引擎編譯sql,然后再生成執(zhí)行計劃。另外,通過執(zhí)行單元2還執(zhí)行計劃生成后返回給控制單元1。通過控制單元1還在接收到執(zhí)行計劃后,根據(jù)執(zhí)行計劃的內(nèi)容判斷是否需要分布式事務(wù)管理器的介入,如果需要,則啟動分布式事務(wù)管理器。

其中,參見圖3,圖3為步驟s2中通過計劃單元2生成執(zhí)行計劃的流程示意圖,具體包括:

s201、判斷共享緩存池中是否存在與sql語句相對應(yīng)的預(yù)存sql語句,若是,則輸出與sql語句對應(yīng)的執(zhí)行計劃,若否,則

s202、對sql語句進行語法檢查,若語法錯誤返回錯誤信息給用戶,否則,

s203、對sql語句進行語義檢查,若語義錯誤返回錯誤信息給用戶,否則,

s204、對sql語句進行視圖以及表達式轉(zhuǎn)換,獲得對應(yīng)的轉(zhuǎn)化結(jié)果;

s205、根據(jù)轉(zhuǎn)換結(jié)果選擇優(yōu)化器,獲得對應(yīng)的優(yōu)化器選擇結(jié)果;

s206、根據(jù)優(yōu)化器選擇結(jié)果選擇對應(yīng)的數(shù)據(jù)連接方式以及連接順序;

s207、根據(jù)連接方式和連接順序選擇搜索的路徑;

s208、根據(jù)搜索路徑生成執(zhí)行計劃,并輸出執(zhí)行計劃。

具體實施時,通過控制單元1以數(shù)據(jù)庫接口的方式接入用戶請求,并將所述用戶請求發(fā)送給計劃單元2;通過計劃單元2解析所述用戶請求,編譯以及生成對應(yīng)的執(zhí)行計劃;通過執(zhí)行單元3根據(jù)執(zhí)行計劃,啟動協(xié)同處理模塊41獲取hbase單元4的原始數(shù)據(jù)表中與所述用戶請求的所述查詢條件相對應(yīng)的md5;并根據(jù)獲取的所述md5查詢hbase單元4的圖片數(shù)據(jù)表,從而獲得對應(yīng)的所述查詢結(jié)果;并返回查詢結(jié)果至所述控制單元1;通過控制單元1將查詢結(jié)果返回用戶。

本實施例解決了現(xiàn)有技術(shù)中因圖片數(shù)據(jù)導(dǎo)致其它數(shù)據(jù)的讀取性能下降的問題,保證了用戶對圖片數(shù)據(jù)的檢索需求,同時提高其它數(shù)據(jù)的讀取性能。

以上所述是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也視為本發(fā)明的保護范圍。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1