粒度
以前一直不能理解粒度是什么意思,當(dāng)看到《Building the Data Warehouse, 4th Edition》的第二章中的粒度小節(jié)時解開了多時的困擾。雖然書上沒有用一個一句很明確的語言來描述粒度的含義付翁,但是這本書通過例子讓我明白了粒度的含義茫多。下面以一個例子來解釋粒度這個詞隙笆。
例子:
對于一個電話公司來說诡右,記錄用戶的通話記錄是一項很平常的工作,在這項工作中就包含了一個例子:電話公司面臨著一個需要決策的地方驾荣,就是究竟是以高粒度存儲用戶通話記錄還是以低粒度存儲用戶通話記錄。如果以高粒度存儲普泡,那么就需要存儲每個用戶每條通話記錄的詳細信息(可能包括日期播掷、時間、通話人撼班、接線員歧匈、通話時長等等);如果以低粒度存儲砰嘁,就只需要存儲每個用戶一個月(假設(shè)是一個月件炉,也可以是一周等)的通話綜合信息(可能包括月份、通話總次數(shù)矮湘、平均時長斟冕、長途次數(shù)等等)。
含義
意思就是高粒度的數(shù)據(jù)記錄對應(yīng)著損失部分細節(jié)缅阳,低粒度對應(yīng)著保留了細節(jié)的完整性磕蛇,當(dāng)然這就意味著執(zhí)行低粒度需要占用很大的存儲空間來存儲大量的細節(jié)數(shù)據(jù),在數(shù)據(jù)查詢的時候需要在更大的數(shù)據(jù)記錄集中進行搜索,從而產(chǎn)生更大的開銷秀撇。
這兩種模式在實際生產(chǎn)中根據(jù)實際情況進行取舍超棺,而且在數(shù)據(jù)倉庫建設(shè)過程中同時使用兩種粒度,這樣既能提高程序執(zhí)行性能呵燕,又能保留細節(jié)查詢功能棠绘,低粒度數(shù)據(jù)體現(xiàn)為真實檔案數(shù)據(jù),高粒度體現(xiàn)為輕度綜合數(shù)據(jù)再扭。
活樣本數(shù)據(jù)庫
活樣本數(shù)據(jù)庫是從數(shù)據(jù)倉庫中取得的真實檔案數(shù)據(jù)或輕度綜合數(shù)據(jù)的一個子集弄唧,抽取的方式可以是隨機也可以是條件篩選,那么做出活樣本數(shù)據(jù)庫的目的是什么呢霍衫?一般來說是為了提高效率候引。
這里先解釋一個名詞:啟發(fā)式分析,我的理解是在某一時刻分析人員的腦海中出現(xiàn)了一個idea敦跌,但是不知道這個idea實現(xiàn)的效果是怎么樣的澄干,于是立馬開始編寫程序進行分析,在幾十秒或者幾分鐘之內(nèi)就呈現(xiàn)出了結(jié)果柠傍,發(fā)現(xiàn)有一點可以進行改進的地方麸俘,于是馬上修改程序,又進行一次程序執(zhí)行惧笛,又得到一次結(jié)果从媚,又修改程序,又得出結(jié)果患整,最終得出一個滿意的結(jié)果的過程拜效。這個過程中程序執(zhí)行時間不宜太長,不然就達不到這種類似交互式分析的效果了各谚。
于是我們知道:如果每次執(zhí)行分析程序時都遍歷數(shù)據(jù)倉庫中所有相關(guān)數(shù)據(jù)紧憾,那么程序的執(zhí)行時間肯定很長,有可能會達到好幾小時或者一兩天昌渤。于是就有了活樣本數(shù)據(jù)庫赴穗,每次程序執(zhí)行的時候在活樣本數(shù)據(jù)庫上跑,這樣花費的時間就會打打縮短膀息。
舉個例子:
分析一個有25000000條數(shù)據(jù)的大文件般眉,結(jié)果顯示有56.7%的男性,花費了5小時潜支,如果對這個大文件進行采樣甸赃,形成活樣本數(shù)據(jù)庫只有25000條數(shù)據(jù),程序執(zhí)行只花費了5分鐘毁腿,結(jié)果是55%的男性辑奈,盡管第一種方式更加精確苛茂,但是花費的時間成本太高,而產(chǎn)生的兩個結(jié)果之間差異很小鸠窗,所以一般啟發(fā)式分析時會采用第二種方式妓羊。
~本文為《Building the Data Warehouse, 4th Edition 》第二章第二次讀書筆記