cognos开发心得

用了将近半年的cognos,仍属入门级菜鸟,但是在使用过程中也颇有一些心得,将其整理并记录下来,希望对大家有所帮助

1.在iqd中编写sql语句时,建议不要使用cognos的标准sql语法,因为这不仅会影响sql查询的速度,同时对sql查询的功能也有所限制,具体的实现的方法是直接将所有sql{}括起,这样cognos将不对花括号中的sql语句进行解释而是直接仍给所连接的数据库,用数据库自己生成最优化的查询计划。

2.关于iqd的写法,以下提供一个具体的模板,只需要依葫芦画瓢即可

  COGNOS QUERY
STRUCTURE,1,1
DATABASE,DB
TITLE,IMR1.imr
BEGIN SQL
{select T1.C1 as c1,
       T1.C2 AS C2,
       T1.C3 AS C3,
       T1.C4 AS C4
FROM SCM. T1

}

END SQL
COLUMN,0,C1

COLUMN,1,C2

COLUMN,2,C3

COLUMN,3,C4

3.对于相对固定不变的维表,最好是使用本地文本的格式如csv格式加以保存和维护,这样可以提高cube生成的速度

4.对于以时间为变化轴的数据,可以通过建cube group来按照指定的时间粒度进行增量维护

5.下钻路径应该根据维表层次的关系以及分析的需要进行选取,如果在同一维表中两个层次之间没有明确的继承关系,则应考虑将两个层次建在两个不同的下钻路径上

6.开发cube的时候,事实表中的数据应在保证不丢失信息的前提下尽可能的将粒度变大,这需要建立一个中间表,从源数据表中将聚合后的数据导入到中间表中,总之直接从源数据中提取数据建cube是不合适,应尽量避免


1.对于多维报表模型,在开发环境下应存储为MDL格式而不是PYI格式,两种格式的区别在于MDL是以XML文本存储,保证了模型的移植性和可扩展性,但是在性能方面会相对差一些,因为每次生成Cube都要先将MDL编译成二进制的文件,而PYI则是已经编译好的,因此性能较MDL优,但是如果模型不是很复杂,两者的差别并不大

  2.除时间维度外,其余维度中的category应设成always include,这样可以保证报表中有完整的分析方向,举个例子:

     要分析所有客户中的男女分布,如果客户中全是男性,而将相应的category按默认生成include in need,则用pp打开cube后,只能看到性别维度中只有男性,没有女性。

这段时间又有一点体会,希望能为大家省去一些麻烦

1.Powerplay server 7 version 4的字体支持问题
从3.0升级到4.0后,发现对粗体的支持有问题,发布的报表中如果使用了粗体,在upfront上浏览的报表出现了显示不正常的情况,主要包括:标签不能正常显示,报表中的数据不能正常显示,因此在4的版本下开发报表,应注意使用正常字体(这个问题,折腾了俺一个星期的时间才找到原因,5555)
2.报表格式的要求
为了保证报表有效、快速的显示,应在整张报表上使用相同的字体,并尽量避免使用图片等多媒体格式的文件
3.Transform中的多维模型设计
在维视图上,时间维在系统内部生成,并讲时间维放在维视图的第1列
在数据源视图上,将事实表放在最后
中间表的设计方面,在保证信息不丢失的前提下,尽可能通过聚合等方式,去除中间表中的明细数据
4.如果希望以时间为轴实现数据的增量更新,应使用cube group
5.如果要全部重新生成cube,应该将原有的cube删除后,再进行重建,否则会报错
6.如果维度比较稳定,则尽可能的使用csv格式保存,对于渐变维或经常需要维护的维度使用iqd来获取
7.在pp中设计报表时,对于出现报表的列或行的维度,如果经常需要维护,则尽量使用subset,这样可以保证报表动态的更新
8.如果使用了宏来自动生成cube,产生报表,则在重新生成cube后,应该手工的保存mdl,否则下一次重新运行宏的时候,cube会生成失败(这个问题应值得注意)
9.如果将其他环境下的cube放到当前环境中打开,如果cube中含有访问控制信息,则只有在当前环境下的Acess Manager中的用户类目录结构于先前环境下的完全一致,才能保证cube的正确打开,可以先将前一环境下的安全控制配置文件导出为.lae,然后再导入到当前环境来完成这个工作


Cognos 企业级系列产品其实包括了两部分,一部分是ReporNet,一部分是Powerplay也就是人们常常提到的PPES,这两部分分别解决的是二维报表和多维报表的问题,同时在数据采集的机制上也是完全不同的,ReportNet采取的是对数据库做online查询,而PP则是在实现准备好的Cube基础上,创建多维报表,并支持钻取,切片,上卷,旋转等灵活的报表展示功能,前者的工作负荷集中在数据库上,而后者的工作负荷则集中在PPES服务器上。而两者的安装完全可相互隔离,他们在功能上是一种互补的关系,但是在物理上却毫无关系,对于Cognos产品的理解,我个人建议最好是先看看cognos自带的关于产品体系架构方面的文档,同时最好能自己亲手安装和配置一下,这样才能对其产品的结构有一个深入和全面的认识


数据库的导入
ReportNet自带sample数据库以及相关的工程文件
在导入模型之前,要将sample数据库中的表恢复至当前的数据库中,对于DB2,在..\program files\cognos\crn\webcontent\sample\db\db2\目录下有多个.tar文件,解压后可以看到有多个tabl?.ixf以及一个db2move.lst文件组成,其中db2move.lst是供db2move工具使用的列表,而ixf文件中包含了相应的表的表结构定义和数据,使用db2move将表及其数据导入现有的数据库,命令如下:
db2move import -io replace_insert -u user -p password
如果提示单字节代码页集不相配的错误,可以自己建立一个批处理文件来使用import或load语句的forcein文件类型修饰符来强制对单字节代码页进行转换,如:
db2 connect to cogdb user cfep using cfep2004
import from tabl.ixf of ixf modified by forcein create into GOHR.BRANCH
import from tab2.ixf of ixf modified by forcein create into GOHR.EMPLOYEE
db2 import from tab3.ixf of ixf modified by forcein create into GOHR.COUNTRY_MULTILINGUAL
db2 import from tab4.ixf of ixf modified by forcein create into GOHR.COUNTRY
db2 import from tab5.ixf of ixf modified by forcein create into GOHR.GENDER_LOOKUP

将数据导入至数据库中之后,应对模型进行相应的修改,首先在crn中建立同名的datasource,并且在properties页中设置同名datasource,schema设置为所使用的db2模式(大小写敏感),将type->interface设置为DB2,
即完成了对sample的导入工作

上一篇: 七个顶级的心理寓言—-越早看到越好
下一篇: 中国男人应该会的100项技能
文章来自: 无为
引用通告: 查看所有引用 | 我要引用此文章
Tags: cognos
相关日志:
评论: 0 | 引用: 0 | 查看次数: 1406

:Ŷij ֽ Ͼ ֳ ϶ ֽIJ Ͼ Ͼֳ ӹ ֳ թ 򿪻 Ͷע Űټ Žɳ ˹ 21 365bet Žɳ Žɳַ ÷ ˹˹ ˹ַ ֽ IJ IJ IJ ij ţ hg0088 ϻ ϻϷ