智能存儲(chǔ)單元數(shù)據(jù)裁剪方法
【專利摘要】本發(fā)明公開(kāi)了一種智能存儲(chǔ)單元數(shù)據(jù)裁剪方法,用于解決分布式數(shù)據(jù)庫(kù)集群中跨節(jié)點(diǎn)查詢,節(jié)點(diǎn)間數(shù)據(jù)傳輸量大,待處理的中間結(jié)果集無(wú)用數(shù)據(jù)多,網(wǎng)絡(luò)資源有效利用率低下的問(wèn)題。在數(shù)據(jù)庫(kù)集群系統(tǒng)中,用戶請(qǐng)求進(jìn)行分析查詢,對(duì)數(shù)據(jù)進(jìn)行讀取時(shí),從存儲(chǔ)節(jié)點(diǎn)的智能單元讀取裁剪過(guò)后的少量數(shù)據(jù)而不是先讀取所有數(shù)據(jù)回來(lái)再做篩選,減少無(wú)用數(shù)據(jù)的讀取,提升有效讀取率。智能存儲(chǔ)單元數(shù)據(jù)裁剪方法以特有的方式從數(shù)據(jù)結(jié)果集的行與列兩個(gè)方面進(jìn)行數(shù)據(jù)篩選與剪裁,極大的縮小了待處理的數(shù)據(jù)規(guī)模,節(jié)約了網(wǎng)絡(luò)開(kāi)銷與存儲(chǔ),運(yùn)算開(kāi)銷,提高了效率。
【專利說(shuō)明】智能存儲(chǔ)單元數(shù)據(jù)裁剪方法【技術(shù)領(lǐng)域】
[0001]本發(fā)明在分布式數(shù)據(jù)庫(kù)集群中用于數(shù)據(jù)分析檢索,屬于計(jì)算機(jī)【技術(shù)領(lǐng)域】。
【背景技術(shù)】
[0002]數(shù)據(jù)庫(kù)的數(shù)據(jù)檢索一般的主流做法是先把數(shù)據(jù)從磁盤全部加載到內(nèi)存,再根據(jù)限制條件選擇其中的有用部分,如此做法限于磁盤的讀性能會(huì)成為整個(gè)檢索過(guò)程的瓶頸,尤其是數(shù)據(jù)量越大體現(xiàn)越明顯。
[0003]針對(duì)這種情況,目前普遍的改良方法有:
列存數(shù)據(jù)庫(kù),數(shù)據(jù)按列存放,只讀取相關(guān)列進(jìn)內(nèi)存,極大減少磁盤操作,提升性能明顯,但有數(shù)據(jù)維護(hù)繁雜困難,對(duì)不同應(yīng)用需設(shè)計(jì)不同的數(shù)據(jù)庫(kù)底層組織方案的缺點(diǎn),應(yīng)用的普適性較差。
[0004]內(nèi)存數(shù)據(jù)庫(kù),一開(kāi)始就將數(shù)據(jù)加載入內(nèi)存,在內(nèi)存讀寫速度快,可極大提升性能,缺點(diǎn)是相較于硬盤,內(nèi)存價(jià)格昂貴,針對(duì)海量數(shù)據(jù)內(nèi)存會(huì)非常龐大,硬件成本會(huì)是一筆極大的開(kāi)銷。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于發(fā)明一種能解決數(shù)據(jù)庫(kù)中數(shù)據(jù)檢索讀取速度慢,無(wú)用數(shù)據(jù)多影響傳輸與處理效率問(wèn)題的方法。
[0006]本發(fā)明主要的功能模塊有關(guān)系列映射篩選模塊,條件過(guò)濾下壓模塊,存儲(chǔ)單元按列映射篩選模塊,存儲(chǔ)單元根據(jù)條件按行選擇模塊。
`[0007]在用戶請(qǐng)求進(jìn)行分析查詢,對(duì)數(shù)據(jù)進(jìn)行讀取時(shí),從存儲(chǔ)節(jié)點(diǎn)的智能存儲(chǔ)單元讀取裁剪過(guò)后的少量數(shù)據(jù)而不是先讀取所有數(shù)據(jù)回來(lái)再做篩選,提升有效讀取率,減少無(wú)用數(shù)據(jù)的讀取,提高效率縮短時(shí)間。
[0008]本發(fā)明的目的是通過(guò)下述技術(shù)方案實(shí)現(xiàn)的:
I,智能存儲(chǔ)單元
是指存儲(chǔ)數(shù)據(jù)的各單元自身具備選擇與投影能力的smart單元。他的選擇與投影能力是進(jìn)行數(shù)據(jù)裁剪的基礎(chǔ)。
[0009]2,智能存儲(chǔ)單元的使用流程:
<1>客戶端接收分析查詢語(yǔ)句SQL
<2>W0RK工作機(jī)接收請(qǐng)求定位涉及的存儲(chǔ)節(jié)點(diǎn) <3>存儲(chǔ)節(jié)點(diǎn)發(fā)起IO請(qǐng)求
<4>智能存儲(chǔ)單元進(jìn)行ROWS,COLUMNS裁剪返回少量數(shù)據(jù)
<5>W0RK工作機(jī)分析處理數(shù)據(jù)并返回客戶端
<6>返回?cái)?shù)據(jù)結(jié)果集
3,智能存儲(chǔ)單元數(shù)據(jù)裁剪的工作原理
在2所經(jīng)歷的流程中步驟〈2>會(huì)將篩選條件下壓至各存儲(chǔ)節(jié)點(diǎn),在步驟〈3>中存儲(chǔ)節(jié)點(diǎn)在發(fā)起IO請(qǐng)求時(shí)是持有篩選條件的。使得在步驟〈4>中通過(guò)選擇減少不必要的行ROWS,和通過(guò)影射能力只讀取需要的列COLUMNS,從數(shù)據(jù)行,數(shù)據(jù)列兩個(gè)方面裁剪數(shù)據(jù),再把裁剪后的數(shù)據(jù)送往WORK工作機(jī)處理。減小傳輸數(shù)據(jù)量同時(shí)也減少工作機(jī)的待處理數(shù)據(jù)。
[0010]本發(fā)明的目的技術(shù)方案實(shí)現(xiàn)核心有兩點(diǎn):
al通過(guò)映射關(guān)系篩選列,減少不必要的列的讀??;
a2通過(guò)過(guò)濾表達(dá)式等進(jìn)行選擇,篩選適當(dāng)?shù)男校瑴p少不必要的行數(shù)據(jù)的讀取。
[0011]智能單元經(jīng)過(guò)這兩方面的裁剪減少了中間結(jié)果集,減少了數(shù)據(jù)在網(wǎng)絡(luò)間的傳遞,提升了效率。
[0012]本發(fā)明其優(yōu)越性能體現(xiàn)在把篩選有用數(shù)據(jù)的篩選條件下壓,交到了底層去各自完成,而不同于傳統(tǒng)的方法先把所有的數(shù)據(jù)取回來(lái),不管有無(wú)用處,都經(jīng)過(guò)處理器運(yùn)算比較篩選后留下有用數(shù)據(jù)。本發(fā)明減少了運(yùn)算部分的負(fù)擔(dān),而現(xiàn)有的篩選技術(shù),有基于列篩選的;比如列存數(shù)據(jù)庫(kù)等,有基于行做篩選的,如條件表達(dá)式等,他們都是基于一個(gè)方面做篩選,且有其局限性:列存數(shù)據(jù)庫(kù)可用于做專業(yè)的查詢,但通用性不好,維護(hù)復(fù)雜?;跅l件表達(dá)式的篩選,基于表分區(qū)的篩選有其自身局限性,查詢需根據(jù)他們自身的分區(qū)特性為基礎(chǔ)制定。
[0013]本發(fā)明中過(guò)濾表達(dá)式的過(guò)濾條件的下壓,在存儲(chǔ)節(jié)點(diǎn)剔除不必要的行,過(guò)慮條件的傳遞,尤其是常數(shù)過(guò)濾表達(dá)式條件的傳遞可極大的減少中間數(shù)據(jù)行的檢索查詢。
[0014]本發(fā)明中根據(jù)列映射的投影關(guān)系,可選擇有用列,它包括:結(jié)果集輸出目標(biāo)列,條件中間列,關(guān)系傳遞列等。根據(jù)映射關(guān)系我們?cè)谶M(jìn)行查詢時(shí),只選擇相關(guān)列,排除不涉及到的列,減少數(shù)據(jù)讀取與傳輸。
[0015]有益效果
本發(fā)明具有如下有益效果:
1、根據(jù)篩選條件進(jìn)行行選擇,減少讀取數(shù)據(jù)的行數(shù);
2、根據(jù)列映射關(guān)系,剔除無(wú)用的列,減少待處理列數(shù);
3、智能存儲(chǔ)單元的數(shù)據(jù)裁剪工作在數(shù)據(jù)讀取的底層完成,減少了待處理的中間數(shù)據(jù)集傳輸,減少網(wǎng)絡(luò)傳輸開(kāi)銷;
4、智能存儲(chǔ)單元裁剪后的數(shù)據(jù),減少了運(yùn)算處理單元的工作量與內(nèi)存資源的使用提高了效率。
【專利附圖】
【附圖說(shuō)明】
[0016]圖1為本發(fā)明的智能存儲(chǔ)單元數(shù)據(jù)裁剪應(yīng)用流程示意圖。
【具體實(shí)施方式】
[0017]下面結(jié)合附圖進(jìn)一步說(shuō)明本發(fā)明的技術(shù)方案,但本發(fā)明所保護(hù)的內(nèi)容不局限于以下所述。
[0018]在數(shù)據(jù)庫(kù)集群中,資源分布于不同的節(jié)點(diǎn),在作查詢計(jì)劃時(shí),根據(jù)目標(biāo)數(shù)據(jù)分布于不同的節(jié)點(diǎn),將同一節(jié)點(diǎn)數(shù)據(jù)請(qǐng)求打包發(fā)送,提升傳輸效率,而智能存儲(chǔ)單元根據(jù)其目標(biāo)以及下壓的條件過(guò)濾表達(dá)式,以及列映射關(guān)系,篩選有用列,剔除無(wú)用列,根據(jù)條件選擇需要的行數(shù)據(jù),剔除不符合條件的行數(shù)據(jù),將數(shù)據(jù)傳遞至工作節(jié)點(diǎn),以備處理。[0019]在計(jì)劃中條件過(guò)濾表達(dá)式分解成可遠(yuǎn)程傳輸部分和不可遠(yuǎn)程傳輸部分,其不可遠(yuǎn)程傳輸部分只有在工作節(jié)點(diǎn)進(jìn)行匯總時(shí)再進(jìn)行條件選擇。而可遠(yuǎn)程傳輸部分下發(fā)傳遞至各智能存儲(chǔ)單元,智能存儲(chǔ)單元根據(jù)下發(fā)的條件對(duì)做條件選擇后傳輸至工作節(jié)點(diǎn)匯總。
[0020]結(jié)合圖1所示,應(yīng)用程序與客戶端交互發(fā)送查詢SQL語(yǔ)句??蛻舳耸盏秸?qǐng)求后,生成任務(wù)請(qǐng)求,工作節(jié)點(diǎn)分析請(qǐng)求,規(guī)劃SQL涉及的表,數(shù)據(jù)列,表之間的連接關(guān)系,查詢條件,約束條件等,定位數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn),規(guī)劃查詢計(jì)劃,根據(jù)目標(biāo)數(shù)據(jù)分布于不同的節(jié)點(diǎn),將同一節(jié)點(diǎn)數(shù)據(jù)請(qǐng)求打包發(fā)送并將列映射關(guān)系以及下壓的篩選條件一并發(fā)送。存儲(chǔ)單元根據(jù)任務(wù)請(qǐng)求的要求從磁盤加載數(shù)據(jù),smart存儲(chǔ)單元,根據(jù)下壓的篩選條件與列映射關(guān)系,選擇需要涉及的列與符合選擇條件的行,組成合適的數(shù)據(jù)集發(fā)送至工作節(jié)點(diǎn)以待進(jìn)一步處理。工作節(jié)點(diǎn)根據(jù)從各存儲(chǔ)單元返回的數(shù)據(jù)做運(yùn)算處理,選擇符合條件的行與列形成結(jié)果集,經(jīng)客戶端返回給應(yīng)用程序。
【權(quán)利要求】
1.智能存儲(chǔ)單元數(shù)據(jù)裁剪方法,是一種分布式數(shù)據(jù)庫(kù)集群中用于查詢時(shí)裁剪數(shù)據(jù),提升數(shù)據(jù)有效利用率的數(shù)據(jù)剪裁篩選方法,屬于計(jì)算機(jī)軟件領(lǐng)域,其特征在于根據(jù)查詢特點(diǎn)從行和列兩個(gè)方面來(lái)進(jìn)行數(shù)據(jù)裁剪,它包括查詢過(guò)程中的過(guò)濾條件表達(dá)式的下壓至各存儲(chǔ)單元進(jìn)行行選擇,整個(gè)查詢涉及列的映射篩選等。
2.智能存儲(chǔ)單元數(shù)據(jù)裁剪方法,其特征在于,權(quán)利I所述的方法包括關(guān)系列映射篩選模塊,條件過(guò)濾下壓模塊,存儲(chǔ)單元按列映射篩選模塊,存儲(chǔ)單元根據(jù)條件按行選擇模塊。
3.智能存儲(chǔ)單元數(shù)據(jù)裁剪方法,其特征在于,權(quán)利I所述數(shù)據(jù)裁剪適用的應(yīng)用包括以下步驟: SI接收用戶請(qǐng)求,客戶端接收分析查詢語(yǔ)句SQL; S2 WORK工作機(jī)接收請(qǐng)求定位涉及的存儲(chǔ)節(jié)點(diǎn); S3存儲(chǔ)節(jié)點(diǎn)發(fā)起IO請(qǐng)求; S4智能單元進(jìn)行列,行裁剪返回少量數(shù)據(jù); S5 WORK工作機(jī)分析處理數(shù)據(jù)并返回客戶端; S6返回?cái)?shù)據(jù)結(jié)果集。
4.智能存儲(chǔ)單元數(shù)據(jù)裁剪方法,其特征在于,數(shù)據(jù)智能裁剪在底層數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)進(jìn)行,減少了待處理數(shù)據(jù)與網(wǎng)絡(luò)傳輸量,提升了效率。
【文檔編號(hào)】G06F17/30GK103455556SQ201310342397
【公開(kāi)日】2013年12月18日 申請(qǐng)日期:2013年8月8日 優(yōu)先權(quán)日:2013年8月8日
【發(fā)明者】況忠強(qiáng), 馬正紅 申請(qǐng)人:成都市歐冠信息技術(shù)有限責(zé)任公司