




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Cube模型刷新調(diào)研方案 1. Cube模型刷新1.1 全量更新和增量更新1.1.1 全量更新Tip 1: 當(dāng)刷新立方體時(shí)間不是很長(zhǎng),要刷新的立方體的數(shù)量不是很多的時(shí)候,這時(shí)我們就可以考慮用Cube模型的全量更新。Tip 2:目前IFAR項(xiàng)目組用的全部是全量更新,據(jù)他們的經(jīng)驗(yàn)所得,大概一個(gè)刷出來(lái)的Cube模型700M需要1小時(shí)20分鐘左右.1.1.2 增量更新當(dāng)刷新立方體時(shí)間過(guò)長(zhǎng)的時(shí)候,增量更新是縮短刷新時(shí)間的好辦法。增量更新的時(shí)候,只會(huì)對(duì)立方體加載新增加的數(shù)據(jù),以前的數(shù)據(jù)不會(huì)進(jìn)行更改,這樣會(huì)縮短讀取數(shù)據(jù)的時(shí)間;另外在刷新立方體的時(shí)候,也會(huì)縮短刷新時(shí)間。目前,增量更新的方式有兩種:普通增量更新
2、(立方體屬性/processing/The Cube is incrementally updated)(適用目前市場(chǎng)上的所有版本)Tip 1: 在立方體的結(jié)構(gòu)(包括指標(biāo),維度,層次等)發(fā)生變化,必須重新全部加載數(shù)據(jù)Tip 2: 推薦您定期重建立方體。第一次建立立方體時(shí),自動(dòng)分區(qū)( Auto-Partitioning)功能可以將維度和層分割為多個(gè)分區(qū)層(partitioning level)。 在此之后所有新的類別將被加到 “0”分區(qū)層上。 如果隨時(shí)間的變化增加了很多類別,PowerCube用戶最終會(huì)遇到性能問(wèn)題。通常建議7次增量更新之后,需要重新全量加載一次立方體按時(shí)間分區(qū)更新(新增立方體/
3、Cube Group/Enable Time-based Partitioning)(7.0以后版本支持)按時(shí)間分區(qū)更新技術(shù)是基于普通增量更新之上的,使用按時(shí)間分區(qū)會(huì)生成一個(gè)虛擬立方體(該立方體并不保存數(shù)據(jù),只保存維度信息),一個(gè)定義文件,還有包含數(shù)據(jù)的若干子立方體。舉例說(shuō)明:有一年的數(shù)據(jù),按月分區(qū),這樣每個(gè)月就會(huì)有一個(gè)立方體,總共是12個(gè)。Tip 1: 立方體增量更新之后,請(qǐng)保存模型,這樣可以保證Category的完整性。如果Category不完整,可能會(huì)存在子立方體的Category在虛擬立方體中找不到的情況,這樣立方體的刷新是無(wú)法繼續(xù)的。Tip 2: 子立方體默認(rèn)都是增量更新的,所以和普
4、通增量更新一樣,如果某個(gè)子立方體有了多次刷新之后,也必須進(jìn)行一次全量更新。比如:按月分區(qū)但是每天都刷新數(shù)據(jù),當(dāng)月的立方體必然會(huì)進(jìn)行多次更新,這時(shí)候就必須刪掉當(dāng)月的立方體,重新刷新一下。Tip 3: 通常建議按月分區(qū),按日分區(qū)的話,一年的子立方體太多,打開(kāi)虛擬立方體的時(shí)候速度會(huì)比較慢,如果按季度、年分區(qū)的話,可能會(huì)有Tip 2中的問(wèn)題。1.1.3 根據(jù)業(yè)務(wù)分析考慮Cube模型的大小來(lái)決定是用全量更新和增量更新Tip 1:考慮方案1:所有數(shù)據(jù)都按一個(gè)Cube模型來(lái)存放,好處是:可以滿足跨年,整體進(jìn)行數(shù)據(jù)分析和比較。壞處是:由于數(shù)據(jù)量比較大,查詢速度就會(huì)相應(yīng)的變慢,這時(shí)就不能用全量更新了,只能用增量
5、更新了。綜合以上分析可得,此方案只適合用增量更新,用全量更新的話,會(huì)耗很長(zhǎng)時(shí)間,而用增量更新的話,又面臨著對(duì)數(shù)據(jù)非常嚴(yán)格的要求。Tip 2:考慮方案2:按年月,來(lái)劃分,到底分多少個(gè)Cube模型,比如按年分,一年一個(gè)cube模型,這樣的話,我們更新的時(shí)候,只更新某一年的,這樣可以全量更新,速度也相對(duì)來(lái)說(shuō),比較快,不足的地方,數(shù)據(jù)分析的時(shí)候,不能cube模型數(shù)據(jù)之間的夸年進(jìn)行比較,如果需要有比較的業(yè)務(wù)時(shí),也只能事先通過(guò)計(jì)算得到。注:在Uinx下單個(gè)文件的存儲(chǔ)大小,不能超過(guò)4G。1.1.4 全量更新與增量更新執(zhí)行角本和格式區(qū)別現(xiàn)在要實(shí)現(xiàn)增量刷新就要用增量的腳本來(lái)執(zhí)行而不能與全量刷新角本混為一談。MD
6、L是只能進(jìn)行全量刷新的,增量刷新只能用PYI,且IQD所引用的表要是增量表,即表中的數(shù)據(jù)只能包括當(dāng)前要新增到Cube中的數(shù)據(jù),否則會(huì)進(jìn)行累加。在進(jìn)行增量時(shí),一般的做法是:首先將MDL轉(zhuǎn)為PYI,同時(shí)進(jìn)行一次全量刷新;以后的增量刷新對(duì)PYI執(zhí)行就可以了。還有一個(gè)問(wèn)題就是,如果真的要采用增量刷新的話,就要準(zhǔn)備兩套表(一全數(shù)據(jù)表,一增量表即臨時(shí)表),兩套立方體模型(因?yàn)槎攘縄DQ所取的表不同,分別對(duì)應(yīng)兩套不同的表)。這對(duì)于剛剛開(kāi)發(fā)完的項(xiàng)目存在一定的挑戰(zhàn)性。注:刷CUBE之前需要KILL一進(jìn)程殺進(jìn)程命令:taskkill /f /im ppesbusserver1.2 Uinx下的shell角本和多線
7、程調(diào)用Tip 1: 在Uinx下刷新Cube模型的時(shí)候,需要在Uinx下編寫(xiě)shell角本,通過(guò)執(zhí)行shell角本來(lái)進(jìn)行有目的的刷新Cube模型。IFAR項(xiàng)目組:所用的shell角本如下:注:上面shell角本,能對(duì)Cube模型進(jìn)行刷新,同時(shí)也能對(duì)數(shù)據(jù)進(jìn)行刷新。Tip 2:在Uinx下可以開(kāi)啟多線程,對(duì)多個(gè)shell角本,同時(shí)進(jìn)行執(zhí)行。注:技術(shù)難點(diǎn)是Uinx不太熟悉,不知道怎樣去開(kāi)啟進(jìn)程和線程去執(zhí)行shell角本,怎樣判斷是否執(zhí)行完成,如果報(bào)錯(cuò)了,怎樣去處理,怎樣用日志記錄。1.3 Java程序調(diào)用shell角本基本流程圖1.3.1 通過(guò)編寫(xiě)一段java代碼,進(jìn)行有規(guī)律的去調(diào)用shell角本,
8、來(lái)刷新Cube模型。JAVA 調(diào)用 shell 腳本 并生成證書(shū)shell 腳本 如下其中 Dir 是存入的路徑 User 是一個(gè)文件名稱 config 是一個(gè)配置文件 #!/bin/sh Dir=$3 User=$1 CONFIG=$2 KeyFile=$Dir/$User.key CSRFile=$Dir/$User.csr CRTFile=$Dir/$User.crt CMTFile=$Dir/$User.pem # make sure environment exists if ! -d $Dir ; then mkdir $Dir fi openssl genrsa -out $Ke
9、yFile 1024 openssl req -new -config $CONFIG -key $KeyFile -out $CSRFile -in $CMTFile 以下是調(diào)用該腳本的程序 public class New_User_Cert public static boolean user_cert_create(HttpServletRequest request, String filename) throws IOException if (log.isDebugEnabled() log.debug(Entering user_cert_create function); S
10、tring path= request.getRealPath(/); /取得項(xiàng)目的路徑 String cmd = new String5; cmd0 = sh; cmd1 = .+path+openssl/new_user_cert.sh; /在項(xiàng)目中存在此文件 openssl/new_user_cert.sh cmd2 = filename; /給文件取名 cmd3 = path+openssl/user/config/+filename+.config; /配置文件中的信息 cmd4 = path+openssl/user; /生成新文件存在此目錄中 StringBuffer buf=n
11、ew StringBuffer(); for(int i=0;icmd.length;i+) buf.append(cmdi+ ); request.setAttribute(new,buf.toString(); try Runtime run = Runtime.getRuntime(); Process p = run.exec(cmd); BufferedInputStream in = new BufferedInputStream(p.getInputStream(); BufferedInputStream err = new BufferedInputStream(p.getE
12、rrorStream(); BufferedReader inBr = new BufferedReader(new InputStreamReader(in); BufferedReader errBr = new BufferedReader(new InputStreamReader(err); String lineStr; while (lineStr = errBr.readLine() != null) System.out.println(lineStr); while (lineStr = inBr.readLine() != null) System.out.println
13、(lineStr); try if (p.waitFor() != 0) if (p.exitValue() = 1) return false; /老是在這兒出現(xiàn)非法退出 return true; catch (InterruptedException e) e.printStackTrace(); return false; catch (Exception e) e.printStackTrace(); return false; return true; 感覺(jué)好像路徑出錯(cuò)的.可是又不知道怎么調(diào).搞的老半天的 環(huán)境是在 solaris 小型服務(wù)器下 appfuse 開(kāi)發(fā) tomcat 作
14、為容器Runtime.getRuntime.exec(/opt/usr/./aaa.sh).waitFor()用絕對(duì)路徑另外,waitFor是在有多個(gè)shell命令要運(yùn)行,并且可能會(huì)互相影響時(shí)要保證命令執(zhí)行順序的方法,例如先用shell寫(xiě)一個(gè)文件,然后用shell刪除這個(gè)文件,這個(gè)時(shí)候就要加上waitFor1.3.2 刷新Cube模型時(shí)的日志記錄服務(wù)器日志文件包括有關(guān)IBM Cognos 組件運(yùn)行時(shí)發(fā)生的事件的信息??梢允褂胏ogserver.log文件跟蹤活動(dòng)和排除故障問(wèn)題。默認(rèn)情況下,IBM Cognos 日志服務(wù)器被配置為將所有日志消息均發(fā)送到位于c8_location/logs目錄中的
15、cogserver.log 文件。要針對(duì)IBM Cognos Configuration 中的錯(cuò)誤消息進(jìn)行故障排除,可以創(chuàng)建一個(gè)活動(dòng)日志。1.4 Transformer生成的模型存儲(chǔ)格式.mdl和.pyj他們的區(qū)別是什么?1)pyi是二進(jìn)制的,mdl是ASCII碼的,這是為了移植。比如說(shuō)我在nt平臺(tái)下做得模型,要移植到unix上,pyi無(wú)法移植,mdl可以。 2)利用mdl格式可以把以前版本的文件用現(xiàn)在的版本打開(kāi),而新版本則不可以打開(kāi)pyi格式的老文件. 3)模型比較大的時(shí)候,PYI訪問(wèn)速度快,特別在編寫(xiě)Transformer宏的時(shí)候,比較明顯PYI可以保留數(shù)據(jù)庫(kù)用戶名和密碼,所以通常建議,在
16、項(xiàng)目中使用PYI而不是MDL,并且定期將PYI保存為MDL以防止PYI文件失效。 4)pyi格式是二進(jìn)制,性能要大大的優(yōu)于mdl,個(gè)人感覺(jué)十倍的速度都不止,耗費(fèi)cpu和網(wǎng)絡(luò)的資源比較少。而且,移植以后不受cognons的影響,可以正常打開(kāi),而且在服務(wù)器上生成cube的速度也要比mdl 的速度高一些。 5)mdl是ASCII碼的文件,可以用文本打開(kāi),進(jìn)行手工的修改,或者編輯程序?qū)dl進(jìn)行批量處理,對(duì)于理解模型十分有用。綜述:pyi和mdl模型各有千秋,合理互補(bǔ)使用會(huì)給工作帶來(lái)效益。推薦同時(shí)保存兩種模型,并使之同步。注:根據(jù)農(nóng)行IFAR項(xiàng)目組的經(jīng)驗(yàn),他們?nèi)坑玫氖莔dl格式,我們也可以考慮借用一
17、下。2. 參數(shù)設(shè)置文件可以使用幾種參數(shù)設(shè)置,以下是最常用的參數(shù)設(shè)置: ModelWorkDirectory=當(dāng)進(jìn)行模型設(shè)計(jì)時(shí)設(shè)定創(chuàng)建臨時(shí)文件的位置。臨時(shí)文件用來(lái)在立方體創(chuàng)建過(guò)程中發(fā)生嚴(yán)重錯(cuò)誤時(shí)恢復(fù)在戰(zhàn)略檢查點(diǎn)被掛起的模型。該文件的擴(kuò)展名為QYI, 默認(rèn)的路徑是ModelSaveDirectory設(shè)置的值。 DataWorkDirectory=設(shè)定在生成立方體時(shí)Transformer創(chuàng)建臨時(shí)工作文件的位置??梢允褂枚鄠€(gè)驅(qū)動(dòng)器的能力可以消除操作系統(tǒng)所造成的大小限制。 當(dāng)Transformer 創(chuàng)建立方體時(shí),它可以將臨時(shí)文件寫(xiě)入指定的驅(qū)動(dòng)器或目錄。這些文件被連接到一個(gè)邏輯文件,而無(wú)需考慮它們所在的驅(qū)
18、動(dòng)器。這些文件的位置由您所設(shè)定的路徑列表來(lái)決定。默認(rèn)的路徑為CubeSaveDirectory設(shè)置的值。 DataSourceDirectory=對(duì)于除IQD文件和Architect模型以外的數(shù)據(jù)源文件,該設(shè)置可以指定Transformer搜索這些文件的位置。默認(rèn)路徑是當(dāng)前工作路徑。 CubeSaveDirectory=指定Transformer保存立方體的位置。默認(rèn)路徑為ModelSaveDirectory。 ModelSaveDirectory=設(shè)定Transformer保存模型的位置。默認(rèn)路徑為當(dāng)前工作路徑。下面是Transformer日志文件中有關(guān)這些設(shè)置的實(shí)例:PowerPlay T
19、ransformer Wed Sep 19 09:39:17 2001LogFileDirectory=c:transformerlogsModelSaveDirectory=c:transformermodelsDataSourceDirectory=c:transformerdataCubeSaveDirectory=e:transformercubesDataWorkDirectory=d:tempModelWorkDirectory=e:temp下面的例子顯示了如何在命令行中使用參數(shù)設(shè)置文件: trnsfrmr -n -fc:preferences.prf model.mdl2.1 提示 在命令行設(shè)定參數(shù)設(shè)置文件的使用會(huì)覆蓋并優(yōu)先于其它設(shè)置。 例如,如果在rsserver.sh文件中定義了環(huán)境設(shè)置,在命令行中使用參數(shù)設(shè)置文件將覆蓋這些設(shè)置。 TMPDIR、 TEMP、TMP等環(huán)境變量可以定義Transformer在什么位置創(chuàng)建臨時(shí)文件。Transformer可以使用所定義的第一個(gè)環(huán)境變量。這些環(huán)境變量是操作系統(tǒng)定義的系統(tǒng)環(huán)境變量。3. 刷新Cube模型前提條件3.1 Unix下的環(huán)境變量配置 配置好Unix下的環(huán)境變量(配置的文件名字profile)具體配制如下:3.2 在
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 茶葉采摘與加工茶園租賃合作協(xié)議
- 塌陷區(qū)治理改造方案
- 醫(yī)學(xué)考試題試題及答案
- 嵌入式管理面試題及答案
- 前臺(tái)走廊物資采購(gòu)方案
- 投資集團(tuán)面試題及答案
- 企業(yè)重點(diǎn)目標(biāo)分解方案
- 差旅住宿品質(zhì)保障與客戶評(píng)價(jià)反饋合同
- 小區(qū)上水改造項(xiàng)目方案
- 食品安全員專業(yè)能力培訓(xùn)大綱
- 2025年蘇州昆山國(guó)創(chuàng)投資集團(tuán)有限公司招聘考試試題(含答案)
- 2025新公安輔警招聘知識(shí)考試題庫(kù)及答案
- 2025輔警招聘考試題及答案
- 2025年中小學(xué)公開(kāi)選拔校長(zhǎng)筆試模擬試卷
- 鐵路行車(chē)安全培訓(xùn)課件
- 中文版兒童睡眠習(xí)慣問(wèn)卷CSHQ 含評(píng)分維度
- DB12T 1443-2025 社會(huì)單位消防安全管理導(dǎo)則
- 2025安全生產(chǎn)月活動(dòng)總結(jié)模板十(19P)
- 內(nèi)蒙古呼和浩特實(shí)驗(yàn)教育集團(tuán)2025屆八下英語(yǔ)期末考試試題含答案
- 科技項(xiàng)目經(jīng)費(fèi)管理制度
- 《電子工業(yè)全光網(wǎng)絡(luò)工程技術(shù)規(guī)范》
評(píng)論
0/150
提交評(píng)論