Cognos实战入门.docx
《Cognos实战入门.docx》由会员分享,可在线阅读,更多相关《Cognos实战入门.docx(68页珍藏版)》请在冰点文库上搜索。
Cognos实战入门
Cognos实战入门
下面是对Cognos使用的一些简单工作总结,希望这些文字对Cognos初学者有帮助!
1.Cognos体系结构
在Cognos的产品体系中,主要包括以下组件:
1NetscapeDirectoryServer
功能:
为UpfrontServer,EnterpriseServer,Transformer,Powerplay,
Impromptu提供安全验证来源。
2CognosPowerplayEnterpriseServer
功能:
提供Cube或报表的Web访问方式
3CognosPowerplayTransformServer
功能:
设计Cube模型和生成Cube。
4CognosPowerPlay
功能:
OLAP报表与分析工具(C/S方式分析与展现)
5CognosImpromptu
功能:
数据查询和报表制作工具(我们主要用它为Transform提供数据源)
6ImpromptuWebReports
功能:
Web方式的动态查询报表管理服务
2.Cognos安装要点
通常情况下,只要严格按照安装文档安装和配置,安装可以顺利完成。
但有时候由于粗心或对文档理解的差异会导致安装配置不当而无法使用。
一般情况下,安装完成后如果出现无法访问的情况,考虑以下因素:
1安装PPES时选择语言时要注意选择双字节语言,一般选择LocalesforSimplifiedChinese或者LocalesforotherLanguages.,如果语言选择不恰当,安装完成后配置将会无法完成。
2安装NetscapeDirectory过程中选择端口号时要注意,我成功安装过的是第一个端口号(DirectoryServer)为389,安装完成后配置的第二个DataDirectorySever的端口号为390。
3对于7.0以上版本Cognos是通过配置管理器ConfigurationManager来进行配置的。
配置包括Services.AccessManager-DirectoryServer.General和Services.AccessManager-Runtime.AuthenticationSource.DirectoryServer中关于目录服务的配置。
如下示意图:
特别提醒Basedistinguishedname的值为:
o=域名。
安装过程中如果没有改变口令,DefaultNamespaceAdministratorPassword的值不用改,否则需要改成跟安装过程中一样的口令。
4不同网段的IE客户端访问Cognos的服务器时,很有可能会出现无法访问的情况,主要原因是无法解析服务器域名导致的。
解决办法是将服务器端的Cognos的机器名改为固定IP地址。
具体操作示意图如下:
将PPESServerGroup和UpfrontServerGroup右边GatewayURL中的机器名改为IP地址。
5对Cognos6.6版本,有一个把Bug,就是如果出现启动Enterpriseserveradministrator和upfrontserveradministrator没有反应。
解决办法是请删除下面路径下的文件:
D:
\ProgramFiles\Cognos\cer1\bin\jre\1.18\bin\symcjit.dll
3.Cognos对Cube访问的安全控制机制
在我们实际的项目方案中,都是以B/S访问Cube的,所以在此仅论述B/S方式的Cognos安全控制机制。
Cognos的B/S安全认证机制是通过NetscapeDirectoryServer实现的。
Cognos的所有用户信息都是放在NetscapeDeirectoryServer的实例中的,需要进行权限认证时都是从NetscapeDirectoryServer中读取用户信息来进行。
用户信息的维护是通过Cognos工具AccessManager访问NetscapeDirectoryServer进行的。
1.1.
WebBrowser
Cube
WebServer
UpfrontCgi
B/S方式安全访问控制流程
UpfrontServer
PowerPlayCgi
EnterpriseServer
UpfrontDataStore
LoginCgi
CommonLogonServer
AccessManager
NetscapeDirectoryServer
上图简单描述了用户通过B/S方式访问Cube数据时Cogos是如何实现安全控制的。
1.2.Cognos对Cube访问的安全控制细节
Cognos提供了两种安全机制来控制用户对Cube的访问。
第一种是控制以B/S访问的用户对Upfront中对象的读写权限。
第二种是控制用户类是否可以访问Cube以及可以访问Cube中的那些数据。
1.2.1.Upfront对B/S用户的访问安全控制
Upfront的Datastore组件存放着所有用户的在Upfront上的对象的读/写/隐藏权限,DataStore对这些对象可设定的权限如下表:
Upfront上存放对象
可进行的安全设定
默认状态
PersonalNewsbox
某用户类是否有PersonalNewsbox
某用户类是否有自己的/他人的PersonalNewsbox的读/写权限,包括是否可见此PersonalNewsbox,写权限包括是否可以新建对象到自己的/他人的PersonalNewsbox.注意:
控制读写权限包括‘读写权限规则是否应用于PersonalNewsbox下所有的对象’
PersonalNewsbox是否隐藏
1有PersonalNewsbox
2只能读写自己的PersonalNewsbox
3不隐藏PersonalNewsbox
Newsbox
1用户类对Newsbox的读/写权限,读权限包括是否见此Newsbox,写权限包括是否可创建对象到此Newsbox。
注意:
控制读写权限包括‘读写权限规则是否应用于Newsbox下所有的对象’
2Newsbox是否隐藏。
1默认状态是根据此Newsbox的父对象的读写权限,以及其控制其父对象读写权限是否选择了“读写权限规则是否应用于Newsbox/NewsIndex下所有的对象”
2不隐藏
NewsIndex
1用户类对NewsIndex的读写权限,读权限表示是否能看见NewsIndex下的对象,写权限包括是否可以新建对象到NewsIndex或更改其属性。
注意:
控制读写权限包括‘读写权限规则是否应用于NewsIndex下所有的对象’
2NewsIndex是否隐藏。
1默认状态是可读可写。
2不隐藏
Enterprise下的Cube文件快捷方式
1用户类是否对其有读写的权限,读权限包括是指能否看见,写权限代表能否删除或更改属性
2该指针是否隐藏
1默认状态是根据其父对象的读权限,以及控制其父对象时是否选择了“读写权限规则是否应用于Newsbox/NewsIndex下所有的对象”
2默认状态是不隐藏
1.2.2.Cube内部的安全机制
通过Cube包含那些用户类UserClass来控制那些用户类可以访问Cube,通过设置UserView确定这些用户类可以访问Cube的哪些数据。
UserView的设置参见Cognos常用操作流程部分论述。
4.Cognos常用操作流程
这儿说到的操作流程是指我们的项目中实际采用的方案涉及到的操作流程。
主要分以下几个阶段.
1.3.组织数据源:
在我们的项目中,Cube模型的数据源都是IQD文件(查询定义文件),该文件可以使用Cognos的组件Impromptu完成,也可以手工创建该文件。
此处以Impromptu创建IQD文件为例加以说明。
Impromptu是制作报表和查询的工具,生成IQD文件只是它的一项功能。
其操作步骤如下:
1.3.1.生成Cat文件
Cat文件是关于数据源的一些定义,它提供了按照业务的观点来组织数据源的方法,即用户可以根据业务的分类来把数据库不同的表,查询,视图组织在一起,便于生成报表和查询。
其操作示意图如下:
启动Impromptu程序:
新建一个Catalog,指定Cat文件名及其他属性(Catalogtype,Database):
Catalog一般选择Shared,DataBase一般需要新建逻辑数据库,如果存在直接选择就可。
创建Cognos逻辑库:
确定数据库类型,新建逻辑库(这儿的示意图是以SqlServer为例的),将数据库的属性填入即可。
选定数据库后,下一步就是选择Cat中的内容,即包括的表等内容:
确定后,CAT即已建成,成功的话在Impromptu左下角有Cat的名称,如下示意图:
1.3.2.生成Iqd文件
新建一个文件,如下示意图:
选择另存为Iqd文件,保存即可。
至此,生成Iqd文件的操作步骤就算完成。
一般来说,为了生成Cube所需要的所有Iqd文件,建立Cat时一般把所有维表(经过归类的)和事实表放在同一个Cat文件。
然后为每一个维表和事实表建立一个Iqd文件,以便制作Cube模型时使用。
1.4.制作Cube模型
Cognos的Cube模型文件的存储有两种,包括Pyi和Mdl格式,其中Mdl格式又分动态的和结构化的。
Pyi文件属于二进制格式,Mdl文件属于文本格式,可以查看编辑。
这儿以生成动态Mdl模型文件(这种类型的文件可以手工添加权限)为例,来说明制作Cube模型的简单操作流程。
默认情况下,Cognos的Mdl文件格式是结构化的,要生成动态的,需要修改参数配置文件trnsfrmr.ini(在Bin目录下)中的选项,增加一行参数:
VerbOutput=1,然后重新启动Transformer即可。
1.4.1.Insert数据源
在这一步骤里,把一个Cube模型要用到的所有事实表和维表Iqd文件加入到Transformer的DataSource窗口。
如下示意图:
数据源类型选择Iqd(ImpromptuQueryDefinition)
录入访问数据的用户和口令
一个Cube加入完成,示意图如下:
然后依次把其他所有Iqd数据源都加入进来。
如下示意图:
1.4.2.生成DimensionMap和Measures
在Transformer里,维表和事实表的关联是通过Column名称关联的。
所以维表的ID名与事实表对应的ID名必须一致。
将维表的Column标识字段拖到DimensionMap的Title处放开鼠标,就可以形成一个维度的DimensionMap,依此把所有维度的Column标识字段都拖到DemensionMap。
Cube展现时的维度名称就是我们在DimensionMap看到的名称。
同一个维度有层次关系的Column标识按照粒度大小从上往下排列。
如时间维,年份在最上,季度居中,月份在最下。
将度量Column依次拖入Measures窗口。
维度和肚量拖入各自的窗口后,就可以设置他们的属性了。
其操作示意图如下:
维度名可以修改,如下所示:
有多层的维度的最底层的Unique属性需要勾上。
Label属性选为维度对应的描述字段,因为展现分析时用户希望看到时维度描述,而不是维度标识。
对于度量可以修改其存储类型Storagetype和显示格式Format等属性,如下示意图:
右键单击DimensionMap窗口,可以将ShowScope选上,可以直观的看到DimensionMap是否有错误(选中事实表Iqd的DataSource,如果有红色的表示有错误)。
下图标识DemensionMap有错误:
在PowerCubes窗口插入需要生成的Cube,示意图如下:
确定后通过执行主菜单Run下CreatePowerCubes,就可以生成Cube文件了。
生成后可以通过PowerPlay查看生成的Cube的效果。
如下示意图:
1.4.3.为Cube模型添加权限控制
Cognos是通过用户类UserClass来对Cube访问权限进行控制的。
UserClass的概念相当于通常意义上的用户组,用户类是可以分层次的,上层的用户类的权限大于等于它下层的用户类的权限。
用户类的管理和维护是通过AccessManager完成的。
AccessManager的操作很简单。
示意图如下:
可以从Transformer里启动AccessManager,也可以从开始菜单里启动。
展开DirectoryServers,安装完成后这个地方需要配置的,正常的配置好后都会有Namespace,如Default。
展开Default,在RootUserClass下面可以根据需要添加用户类。
操作示意图如下:
用户类添加完后可以根据需要添加用户,一个用户可以属于多个用户类。
操作示意图如下:
创建用户类的工作完成后,就可以为Cube指定可以访问的用户类和数据分配的权限了。
在Transformer环境下,打开File――ModelProperties,示意图如下:
将两个选项都选上,确定即可。
将需要访问该Cube的用户类拖入PowerCubes窗口中,如下示意图:
将可以访问Cube的用户类加入完成后,就可以对每个用户类可以访问的数据进行分配了。
点击主菜单Diagram下的菜单项ShowDiagram项,示意图如下:
选中UserClass页:
在要进行数据的控制的UserClass下的维度进行数据权限分配,一般情况下,是按照地市维度来进行权限分配。
右键单击地市维,选择UseCustomview
即定义用户可以访问的数据视图。
如下示意图:
单击要操作的地市Category,选择对Category需要控制的属性。
控制Category的可访问属性有以下几种方式,其含义分别如下:
Exclude:
把指定类别及全部下层类别都排除,既看不见,也不参加汇总。
Cloak:
把指定类别及全部下层类别都屏蔽,全都看不见,但它们参加汇总。
Suppress:
仅把本层指定的类别屏蔽,其下层类别提升。
不影响其他兄弟类别,也不影响汇总。
Summarize:
把指定类别的全部下层类别屏蔽,使它们看不见,把它们的值汇总到当前类别,当前指定的类别看上去就象是处在最低层。
Apex:
以当前类别作为本维度层次构架的顶点,即只保留当前类别及其以下的部分。
旁系分支全部排除,既看不见,也不参加汇总。
一般情况下,Apex和Exclude用的较多。
权限添加完成后,就可以执行Run下CreatePowerCubes命令,重新生成模型和数据了。
完成以上步骤,一个完整的Cube模型就算制作完成了。
如果通过C/S方式展现,用PowerPlay就可以打开看了。
如果通过B/S方式展现,还需要发布该Cube模型。
后面继续论述Cube的发布。
1.5.Cube的发布
Cube的发布通过Cognos的组件PowerPlayEnterprise–ServerAdministration实现的。
1.5.1.配置UpfrontServer
启动Upfront-ServerAdministration,添加UpfrontSever,缺省为安装Cognos的机器名,然后启动该Server。
操作示意图如下:
1.5.2.发布Cube
启动PowerplayEnterprise-ServerAdministration,如下示意图:
点击主菜单Insert,选择要插入的Folder,Cube或Report。
一般情况下,如果有很多Cube需要发布,最好以文件夹的形式插入,操作快捷简单。
如点击“Folder…”,出现如下示意图:
选择FolderSource,录入Name,确定即可。
插入后,就可以把要发布的文件夹Folder发布到UpfrontServer上了。
点击主菜单Tools项下的PublishtoUpfront,正常情况下即可发布成功。
如果出现PublishtoUpfront为灰色的,那么点击Security――SetSecurity…按提示操作既可。
如下示意图:
发布成功完成后,就可以通过IE进行查看了。
1.6.Cube的B/S展现
1.6.1.登录UpfrontServer
在登录页面录入通过AccessManager创建的有效用户和口令即可。
如下示意图所示:
然后登录,可以看到在PowerPlayEnterprise――ServerAdministration发布的所有Cube。
1.6.2.Cube展现页面的管理操作
在登录后的界面里,可以对发布后的Cube进行编辑,查看属性,安全性控制等操作,如删除选中的Cube。
如下示意图:
安全性控制:
还可以对用户和网关进行管理,点击Administation链接即可,如下示意图:
特别说明,这儿进行的用户管理和在AccessManager进行的用户管理是等效的。
1.6.3.Cube的分析展现
点击要分析的Cube链接,进入分析页面:
在这个页面用户可以根据自己的需要对分析展现的风格进行控制,如可以对分析的维度和度量进行选择,还可以选择是展现图还是表格等很多分析操作,在此不一一列举了。
5.Cognos的优化措施
这儿的说到的一些优化方法都是一些原则的方法,执行这些措施后效果如何,还要具体问题具体分析。
下面是一些推荐方法:
1.7.清洁合并源数据
1.7.1.尽可能使源数据只包括模型所需的信息
如果源数据只含有模型所需的信息,将会加快Transformer的读取时间。
例如,如果在数据源中包含了一些没有用的列,那么即使在模型中没有用到这些列,Transformer也会花费额外的时间对它们进行处理。
1.7.2.合并记录
数据合并可以减少被读取的记录的数量。
Transformer读取的记录数量越少,PowerCube生成的时间也就越短。
1.8.定时(Timing)
定时控制(在数据源属性页上)可以控制Transformer在什么时候对数据源进行处理。
首先应该执行结构型数据源来创建模型中的类别结构。
完成这一步后,如果在PowerCube生成过程中不需要执行它们(数据源中没有添加新的类别,并且含有这些类别的模型已经得到保存),那么可以将数据源的定时功能(timing)设置如下:
有些结构型数据源代表一种易变动的结构,这种结构需要在每次生成PowerCube时对这些类别进行更新。
可以将这种类型的数据源的定时功能设置为在创建PowerCube的类别生成阶段来运行。
事务型数据源随着每次生成PowreCube时度量值所需的新数据的变化而不断发生变化。
事务型数据源在PowerCube创建过程中执行来提供度量值:
1.9.验证类别唯一性,最大化数据访问的速度
在数据源属性页上有两个用于唯一性验证的设置。
默认的属性设置为VerifyCategoryUniqueness。
对于所提供的列与含有唯一层的维度中的层相关联的数据源,推荐使用该项设置。
通常这些数据源为结构型数据源。
如果设置为VerifyCategoryUniqueness并且Transformer检测到在一个标识为“Unique”(层属性)的层上有两个类别具有相同的源值,就会返回以下错误信息:
(TR2317)Thelevel'City'isdesignatedasunique.Sourcevalue'GreenBay'wasusedinanattempttocreateacategoryinthepath(Bystate,Illinois,GreenBay).'GreenBay'alreadyexistsinlevel'City'inthepath(Bystate,Wisconsin,GreenBay).
(TR0136)Auniquenessviolationwasdetected.Theprocesshasbeenaborted.
例如,State维度在City层上被设置为Unique:
该错误表示在City层下存在第二个GreenBay实例(本例中为Illinois)。
例如,如果您的源数据如下:
Measure,State,City
1,Wisconsin,GreenBay
2,Wisconsin,Appleton
3,Illinois,GreenBay
当在City层上没有选定“Unique”时,维度视图显示为:
当在City层上选定“Unique”,过程会被中断,维度视图显示为:
如果您确定模型数据源中的值被映射到层的唯一类别中,则可以设置MaximizeDataAccessSpeed属性。
当启用该属性时,唯一性验证将会将到最低,数据源处理的性能将会提高。
Transformer不会不停的对现有值和类别值进行验证。
这就意味着性能可以得到极大的提高。
警告!
如果启用了MaximizeDataAccessSpeed,而在数据中存在违反唯一性的问题,Transformer将不会通知您。
会造成在PowerCube中产生类别丢失和值不准确的问题。
使用和上面相同的例子,如果启用了MaximizeDataAccessSpeed并且City层被设置为“Unique”,Transformer将不会通知您GreenBay存在于两个不同的State(Wisconsin和Illinois)下,PowerPlay中的最终结果如下:
注意:
上面的交叉表中不存在Illinois
如果删除City层的唯一性并对立方体进行重建,PowerPlay中的最终结果为:
注意:
当设定MaximizeDataAccessSpeed时,将不会执行唯一性的转移(uniquemove)。
1.10.多服务器处理功能
如果生成PowerCube的计算机是双CPU,您就可以利用多服务器处理的功能。
启用该功能可以大大提高数据读取阶段生成PowerCube的整体性能。
多服务器仅适用于以下数据源类型:
ImpromptuQueryDefinition(IQD)
DelimitedFieldText
DelimitedFieldTextwithColumnTitles
该选项可以在DataSource属性对话框中进行设置:
1.11.增量更新
如果创建整个立方体的条件不满足,那么增量更新将是一种很好的解决方法。
增量更新仅将最新的数据添加到现有的PowerCube而不会对以前的数据进行重新处理。
与重建整个PowerCube相比,使用增量更新只会对很少的数据进行更新,而且更新的速度也会得到加快。
如果PowerCube的结构(维度、层等)为静态,您只需考虑使用增量更新功能。
如果发