Windows 下CUBE的增量刷新

浏览: 2710

Cognos8.4增量刷新说明

增量刷新有两种:一种是基本于 “This cube is incrementally updated”(在Processing TAB页中设置);

                          一种是基于parttition(在Cube GroupTAB页中设置)。

          使用的命令都是一样的:cogtr -c -n2 -s  -mE:\data_ftp\OLAP\MDL\test_group\test.mdl

          真正的数据增量控制来源于数据源的增量(如按月增量,则数据源应仅包涵所要增量月份的数据;如果包涵了已有月份的数据,则数据会在原有月份的基础上进行累加)

1.1 基本于 “This cube  isincrementally updated”进行的增量

           基本于 “This cube  isincrementally updated”进行的增量,在用增量脚本刷新前要先进行一次全量刷新(要手动打开界面刷新?还是将cube设为非incrementally,尚没测试)

进行测试的相关脚本如下:

test_group.bat

setLogFileDirectory=E:\data_ftp\OLAP\mdl\test_group 
echo off
cls
d:
cd D:\Program Files\Cognos\c8\bin
cogtr -c -n2 -s -mE:\data_ftp\OLAP\MDL\test_group\test_cubegroup.mdl    
 >E:\data_ftp\OLAP\mdl\test_group\test_group.log
exit

 

说明:

1、set LogFileDirectory=E:\data_ftp\OLAP\mdl\test_group  不写这行生不成日志;不过如果脚本有任何错误(如MDL路径错误)都生不成日志,待改良;set各类参数在下文有详细介绍;

2、由于在MDL模型里已经保存了数据库的用户名及密码故脚本中无需另外提供,否则会报错;

3、可能是由于之前搞的是unix系统下的增量刷新吧,在win时也一直跟PYI文件混搅不清。经测试表明,在win下增量刷新也不需要PYI文件的,否则会报错“(TR1900) The wrong ID stamp wasdetected on”

4、基本于 “This cube  is incrementallyupdated”进行的增量,如事先无进行全量刷新,则不会生成MDC文件,报错是“(TR0796) The PowerCube 'e:\data_ftp\olap\mdl\test2.mdc' wasexpected but not found. Please create the cube first”;基于parttition的不用事先进行全量刷新

 

test_group.iqd

COGNOS QUERY
STRUCTURE,1,1
DATABASE,orcl
TITLE,客户类型
BEGIN SQL
{
select date1,a,b,n from test whereto_char(date1,'yyyymm')='201110'
}
END SQL
COLUMN,0,时间
COLUMN,1,a
COLUMN,2,b
COLUMN,3,n
 

说明:这里采取的是where  to_char(date1,'yyyymm')='201110'限制增量的数据,可考虑采用动态参数,或者使用日期标识表(主表与日期表关联,得出有效日期内的数据);


1.2 一种是基于parttition(在Cube GroupTAB页中设置) 【参数设定较详细

windows下增量cube刷新bat
::主要策略:设定生成cube所需环境变量,如:生成的日志路径、mdc路径。在cube增量前,先备份原数据文件到历史bak文件夹下,然后生成cube,备份的目的是为了方便重修数据。
::参数设定 --@echo off 表示不提示comand命令窗口变量声明行。
:@echo off
::定义cube名称常量
set cubenm=example
set FileDirectory=D:\Transformer\cube\cubepath
set cubemdl=%FileDirectory%\mdl
set cubemdc1=%FileDirectory%\mdc1
set cubemdc=%FileDirectory%\mdc
set cubebak=%FileDirectory%\cubebak
set cogtrbin=D:\Program Files\cognos83\c8\bin    ::transformer安装路径bin目录
::模型mdl路径
set ModelSaveDirectory=%FileDirectory%\mdl
::cube生成路径
set CubeSaveDirectory=%FileDirectory%\mdc1
::cube生成日志路径
set LogFileDirectory=%FileDirectory%\trlog
::iqd数据源路径
set DataSourceDirectory=%FileDirectory%\iqd\olap动态报表\贷款余额、发生额\
set LogFileName=ln_bal.log
::日志扩张参数,=0表示覆盖原先日志,=1表示在原先日志继续写。
set LogFileAppend=0
::传入日期参数,主要用于备份到这个日期下用。
set inputdate=%1
::备份cubenm历史文件
mkdir %cubebak%\%cubenm%\%inputdate%
xcopy /y %cubemdc%\%cubenm%  %cubebak%\%cubenm%\%inputdate%\%cubenm%\
copy /y %cubemdc%\%cubenm%.mdc %cubebak%\%cubenm%\%inputdate%
copy /y %cubemdc%\%cubenm%.vcd %cubebak%\%cubenm%\%inputdate%
copy /y %cubemdl%\%cubenm%.mdl %cubebak%\%cubenm%\%inputdate%
cd /d%cogtrbin%\
::-l+数据源名称=用户名/用户密码
cogtr -c -n2 -s -ldbAuth=用户名/用户密码 -m"%cubemdl%\%cubenm%.mdl"
::优化生成的mdc
pcoptimizer %cubemdc1%\%cubenm%.mdc
::删除用户读cube报表的进程锁
taskkill /f /im BIBusTKServerMain.exe
copy /y %cubemdc1%\%cubenm%.mdc %cubemdc%
copy /y %cubemdc1%\%cubenm%.vcd %cubemdc%
xcopy /y %cubemdc1%\%cubenm% %cubemdc%\%cubenm%\
::备份日志
copy /y %LogFileDirectory%\%LogFileName% %LogFileDirectory%\ln_bal\ln_bal%inputdate%.log
exit

 

 

推荐 0
本文由 bacckom 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册