数据挖掘概念与技术12--数据立方体的计算和多路数组聚集详解
1.冰山立方體的相關(guān)概念
部分物化的立方體成為冰山立方體,其中部分物化所使用的標(biāo)準(zhǔn)或最小閾值稱為最小支持度閾值或簡稱為最小支持度。
冰山立方體SQL查詢語句:
conpute cube sales_ice as
select month,city,customer_group,count(*) from salesinfo
cube by ?month,city,customer_group having count(*)>=min
其中,cube by表示對給定維所有可能的自己形成聚集,having子句指定約束條件,在這里如果沒有having子句,該例則得到完全立方體。
2.入閉覆蓋與閉單元
目的:進(jìn)一步系統(tǒng)的壓縮數(shù)據(jù)立方體;
原理:對于某個(gè)立方體,由于在其他維固定的情況下,某一個(gè)或多個(gè)維上的數(shù)值為空,從而導(dǎo)致是否對該維聚集,度量值都不變,為了減少存儲空間,不多次存儲相同的度量值(進(jìn)一步減少預(yù)計(jì)算的立方體數(shù))。其中,對于最底層的立方體稱為閉立方體。
閉單元的特點(diǎn):在閉單元中,用*替換其中對應(yīng)維上的非*值,度量值不變。如果將它們看為一個(gè)家族,則閉單元是該家族中,*值最少的一個(gè)。即在該家族中,不存在替換閉單元中的*值,切度量值不變的單元。
3.數(shù)據(jù)立方體計(jì)算的一般策略
1.排序,三列和分組。對維屬性進(jìn)行排序,三列和分組。其中的關(guān)鍵在于,對共享一組相同維值的元祖進(jìn)行聚集,共享聚集計(jì)算。同樣共享排序,共享劃分在多個(gè)立方體之間。
2.同時(shí)聚集和共享中間結(jié)果.關(guān)鍵在于分治,然后合并中間結(jié)果。而不是從基本事實(shí)表計(jì)算較高層的聚集。
3.當(dāng)存在多個(gè)子女方體時(shí),由最小的子女聚集 。例如我可以通過年份銷量或天銷量來計(jì)算總銷量,則選用年份來聚集。
4.可以使用先檢驗(yàn),剪枝方法有效的計(jì)算冰山立方體。如果給定單元不滿足最小支持度,則它的特殊化更不能滿足。特殊化是指將該單元中的*用非*替換。
5.完全立方體的多維數(shù)組聚集
計(jì)算策略所需注意的問題:
(1)盡量減少塊反復(fù)調(diào)入內(nèi)存的次數(shù)。
(2)盡量利用較少的內(nèi)存空間完成計(jì)算。
因?yàn)橐獪p少塊調(diào)入調(diào)出內(nèi)存的次數(shù)就要緩存中間的計(jì)算結(jié)果,又因?yàn)閿?shù)據(jù)立方體有多維數(shù)據(jù),所以塊的計(jì)算順序,決定聚集的順序(滿足問題1),從而決定計(jì)算所需的內(nèi)存大小。
難點(diǎn)一:內(nèi)存大小的計(jì)算:
一般情況下,一般先從基數(shù)小的維開始聚集。在本例中設(shè)A=40,B=400,C=4000,則先聚集A,計(jì)算2-D面BC.然后是AC,最后是AB.
因?yàn)橛?jì)算剛開始的四個(gè)塊1,2,3,4就可以得到BC面的第一塊,并且之后每連續(xù)的四個(gè)塊一組得到下一個(gè)BC面的塊,則在計(jì)算BC面時(shí)只需要緩沖BC面一個(gè)塊的大小100*1000就可以,之后計(jì)算的16次均重復(fù)利用此內(nèi)存塊。
因?yàn)橹挥性谡{(diào)入塊13的時(shí)候才可以計(jì)算得AC面的一塊,則前面的12塊都應(yīng)該得到緩存,所以在計(jì)算AC面的時(shí)候,緩存的結(jié)果大小為AC面的一行,即40*1000;
因?yàn)橹挥姓{(diào)入第49塊的時(shí)候才可以計(jì)算AB面,則前面計(jì)算結(jié)果均需保存,所需內(nèi)存應(yīng)為AB整個(gè)平面的面積,即40*400.
所以在此次計(jì)算中所需的內(nèi)存為:100*1000+40*1000+40*400。
6.多維數(shù)組聚集計(jì)算冰山立方體的缺點(diǎn):
因?yàn)樵撚?jì)算方法從基本方體開始計(jì)算,逐步向上得到更加泛化的方體,所以不能通過先驗(yàn)剪枝的方法進(jìn)行優(yōu)化。
7.數(shù)組多維聚集相對于ROLAP(基于關(guān)系記錄的)的優(yōu)勢:
(1)數(shù)組結(jié)構(gòu)不需要空間來存放搜索碼;
(2)使用數(shù)組直接尋址,比其基于關(guān)鍵字的尋址策略快;
(3)不直接使用表進(jìn)行計(jì)算立方體,而是用數(shù)組計(jì)算立方體,然后再將結(jié)果轉(zhuǎn)換成表,更加快速。
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/zjh225901/p/6118587.html
總結(jié)
以上是生活随笔為你收集整理的数据挖掘概念与技术12--数据立方体的计算和多路数组聚集详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java多线程实现异步调用
- 下一篇: nodejs里的module.expor