用了将近半年的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的导入工作

凡是有该标志的文章,都是该blog博主Caoer(草儿)原创,凡是索引、收藏

、转载请注明来处和原文作者。非常感谢。

cognos java_cognos开发心得相关推荐

  1. 软件开发心得点滴记录

    软件开发心得点滴记录 一见 创建日期:2013/6/27 1. 前言 自从2002年大学毕业后一直沉浸于软件开发之路,平时喜欢思考和归纳,时常会产生一点心得和想法,回想起来是一笔宝贵的财富,只可惜陆陆 ...

  2. 一个菜鸟程序员的游戏开发心得

    对于一个只在大学期间学习了JavaScript,实习期间学习了点HTML.CSS的菜鸟,做游戏对我而言是一件想都不敢想的事情,后有幸被公司安排参与一款HTML5游戏的开发,才使我真正第一次与游戏来了次 ...

  3. UI组件库从1到N开发心得-组件篇

    正文 距离第一篇UI组件库文章发布已经过去3个月了,在此期间利用零零散散的时间持续更新owl-ui组件库,目前owl-ui移动端组件库已经更新3大类(基础.表单.弹出层)9种组件(Button.Tab ...

  4. Android深度探索(卷1)HAL与驱动开发 心得体会 第十章 嵌入式Linux的调用技术

    Android深度探索(卷1)HAL与驱动开发 心得体会 第十章  嵌入式Linux的调用技术 对于复杂的Linux驱动以及HAL等程序库,需要使用各种方法对其进行调试.例如,设置断点,逐步跟踪代码. ...

  5. 《并行计算的编程模型》一1.10 MPI开发心得

    1.10 MPI开发心得 与其他的编程方法一样,MPI编程需要了解MPI特性,只有掌握MPI编程方法的优点和缺点,才能编写高效的MPI程序.对MPI最重要的认识是MPI属于一种函数库.MPI操作需要至 ...

  6. 安卓版App开发心得

    为什么80%的码农都做不了架构师?>>>    从2016年4月到6月主要做的工作是网站的开发,而6月到现在2016年8月初,主要做的工作是Android和IOS两种App的开发,又 ...

  7. 2022年10月deepin 20.7.1 谈谈我们的N卡驱动开发心得

    deepin 20.7.1 即将到来之际,各位小伙伴在参与内测的过程中,有没有发现安装N卡驱动时不同寻常的变化呢? 20.7.1版本可以根据当前你机器的上NVIDIA显卡,自动匹配合适的闭源驱动版本进 ...

  8. Android智能硬件开发心得总结(二)

    Android智能硬件开发心得总结(一) 6.关于屏幕显示 每次一个新项目的开发,我所做的第一件事就是确定所选定显示屏的型号规格,然后将规格书发给主板供应商让其先调屏参. 调屏参是很可能会出现无法点亮 ...

  9. 游戏开发心得——书籍篇——《游戏引擎框架》-导论

    游戏开发心得--书籍篇--<游戏引擎框架>-导论 FOR THE SIGMA FOR THE GTINDER FOR THE ROBOMASTER 简介: 学习<游戏引擎框架> ...

  10. MetroMusic音乐播放器开发心得

    MetroMusic音乐播放器开发心得 在这个假期,我独立开发了自己的音乐播放器MetroMusic,之所以叫做MetroMusic,是因为这个播放器的界面采用目前最为流行的win8Metro风格.这 ...

最新文章

  1. Deno 1.0?我还没好好研究 Node,你就这样推倒重做?
  2. python处理数据的优势-选择python进行数据分析的理由和优势
  3. Python全栈开发 day3
  4. linux使用nginx负载udp
  5. JPA 中 sql 预编译 -- EntityManager 使用 预编译
  6. 2亿用户背后的Flutter应用框架Fish Redux
  7. MySQL 指定过滤条件
  8. java 1.6.0.11_ubuntu 11.10安装java1.6(转)
  9. 对于数据,科技小白提出了灵魂三问:从哪儿来?到哪儿去?能干什么?
  10. 各数据库要使用保留字的处理办法
  11. zabbix 通过 SNMP 监控 Windows主机
  12. wine 运行QQ的问题
  13. Johnson算法实现流水作业最优调度
  14. Mac系统下不能直接往移动硬盘里面拷贝东西,用Mounty之后硬盘打不开,怎么办?
  15. win10系统激活提示无法连接到你组织的激活服务器如何解决
  16. STM32f103系列和f107系列移植
  17. android通过代码设置铃声_更接地气的定制 ROM,还有哪些特性可以向原生 Android 借鉴?
  18. 新生活、新成长、新认知
  19. MATLAB房价,MATLAB实现波士顿房价预测使用BP神经网络
  20. 深度学习中常见的10种激活函数(Activation Function)总结

热门文章

  1. java环境变量 的配置与详解(全网最详细教程)
  2. 手机型号大全_《华为手机型号大全》值得收藏
  3. sap系统搭建教程_SAP基础教程
  4. sigar 网络 java_java-Sigar网络速度
  5. 2022-2028全球STEAM教育行业调研及趋势分析报告
  6. 如何在桌面添加计算机日历工具,如何在电脑桌面上添加日历小工具?
  7. matlab定积分矩形法实验,MATLAB实验三 定积分的近似计算
  8. java允许跨域设置
  9. 迅雷计算机管理员删除文件,Win10安装迅雷精简版,管理员已阻止你运行此应用...
  10. JavaSE(二):Java语法(5)——Java数据类型转换