最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
打印 上一主题 下一主题
开启左侧

[部署调优] Cognos实战入门

[复制链接]
跳转到指定楼层
楼主
发表于 2014-11-15 20:16:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
1.  cognos体系结构
在Cognos的产品体系中,主要包括以下组件:
1 Netscape Directory Server
功能:为Upfront Server,Enterprise Server,Transformer,Powerplay,
Impromptu提供安全验证来源。
2 Cognos Powerplay Enterprise Server
   功能:提供Cube或报表的Web访问方式
3 Cognos Powerplay Transform Server
    功能:设计Cube模型和生成Cube。
4 Cognos PowerPlay
功能:OLAP报表与分析工具(C/S方式分析与展现)
5 Cognos Impromptu
    功能:数据查询和报表制作工具(我们主要用它为Transform提供数据源)
6 Impromptu Web Reports
功能:Web方式的动态查询报表管理服务
2.  Cognos安装要点
    通常情况下,只要严格按照安装文档安装和配置,安装可以顺利完成。但有时候由于粗心或对文档理解的差异会导致安装配置不当而无法使用。一般情况下,安装完成后如果出现无法访问的情况,考虑以下因素:
1 安装PPES时选择语言时要注意选择双字节语言,一般选择Locales for Simplified Chinese 或者Locales for other Languages.,如果语言选择不恰当,安装完成后配置将会无法完成。
2 安装Netscape Directory 过程中选择端口号时要注意,我成功安装过的是第一个端口号(Directory Server)为389,安装完成后配置的第二个Data Directory Sever的端口号为390。
3 对于7.0以上版本Cognos是通过配置管理器Configuration Manager来进行配置的。配置包括Services.Access Manager-Directory Server.General和 Services.Access Manager-Runtime.Authentication Source.Directory Server中关于目录服务的配置。如下示意图:
特别提醒Base distinguished name的值为=域名。安装过程中如果没有改变口令,Default Namespace Administrator Password的值不用改,否则需要改成跟安装过程中一样的口令。
4 不同网段的IE客户端访问Cognos的服务器时,很有可能会出现无法访问的情况,主要原因是无法解析服务器域名导致的。解决办法是将服务器端的Cognos的机器名改为固定IP地址。具体操作示意图如下:
将PPES Server Group和Upfront Server Group右边Gateway URL中的机器名改为IP地址。
5对Cognos6.6版本,有一个把Bug,就是如果出现启动Enterprise server administrator 和upfront server administrator没有反应。解决办法是请删除下面路径下的文件:
D:\Program Files\Cognos\cer1\bin\jre\1.18\bin\symcjit.dll
3.  Cognos对Cube访问的安全控制机制
在我们实际的项目方案中,都是以B/S访问Cube的,所以在此仅论述B/S方式的Cognos安全控制机制。Cognos的B/S安全认证机制是通过Netscape Directory Server实现的。Cognos的所有用户信息都是放在Netscape Deirectory Server 的实例中的,需要进行权限认证时都是从Netscape Directory Server中读取用户信息来进行。用户信息的维护是通过Cognos工具Access Manager访问Netscape Directory Server进行的。
1.1.

Web Browser



Cube



Web Server



Upfront Cgi


B/S方式安全访问控制流程


Upfront Server



PowerPlay Cgi



Enterprise Server



Login Cgi



Netscape Directory  Server



Access Manager



Common Logon Server



Upfront DataStore




上图简单描述了用户通过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上存放对象


可进行的安全设定


默认状态


Personal Newsbox


某用户类是否有Personal Newsbox

某用户类是否有自己的/他人的Personal Newsbox 的读/写权限,包括是否可见此Personal Newsbox,写权限包括是否可以新建对象到自己的/他人的Personal Newsbox.注意:控制读写权限包括‘读写权限规则是否应用于Personal Newsbox下所有的对象’

Personal Newsbox是否隐藏


1 有Personal Newsbox

2 只能读写自己的Personal Newsbox

3 不隐藏Personal Newsbox


Newsbox


1 用户类对Newsbox的读/写权限,读权限包括是否见此Newsbox,写权限包括是否可创建对象到此Newsbox。注意:控制读写权限包括‘读写权限规则是否应用于 Newsbox下所有的对象’

2 Newsbox是否隐藏。


1 默认状态是根据此Newsbox的父对象的读写权限,以及其控制其父对象读写权限是否选择了“读写权限规则是否应用于 Newsbox/NewsIndex下所有的对象”

2 不隐藏


NewsIndex


1 用户类对NewsIndex的读写权限,读权限表示是否能看见NewsIndex下的对象,写权限包括是否可以新建对象到NewsIndex或更改其属性。注意:控制读写权限包括‘读写权限规则是否应用于 NewsIndex下所有的对象’

2 NewsIndex是否隐藏。


1 默认状态是可读可写。

2 不隐藏


Enterprise下的Cube文件快捷方式


1 用户类是否对其有读写的权限,读权限包括是指能否看见,写权限代表能否删除或更改属性

2 该指针是否隐藏


1 默认状态是根据其父对象的读权限,以及控制其父对象时是否选择了“读写权限规则是否应用于 Newsbox/NewsIndex下所有的对象”

2  默认状态是不隐藏


1.2.2.      Cube内部的安全机制
通过Cube包含那些用户类User Class来控制那些用户类可以访问Cube,通过设置User View确定这些用户类可以访问Cube的哪些数据。User View的设置参见Cognos常用操作流程部分论述。
4.  Cognos常用操作流程
这儿说到的操作流程是指我们的项目中实际采用的方案涉及到的操作流程。主要分以下几个阶段.
1.3. 组织数据源:
  在我们的项目中,Cube模型的数据源都是IQD文件(查询定义文件),该文件可以使用Cognos的组件Impromptu完成,也可以手工创建该文件。此处以Impromptu创建IQD文件为例加以说明。
  Impromptu是制作报表和查询的工具,生成IQD文件只是它的一项功能。其操作步骤如下:
1.3.1.      生成Cat文件
  Cat文件是关于数据源的一些定义,它提供了按照业务的观点来组织数据源的方法,即用户可以根据业务的分类来把数据库不同的表,查询,视图组织在一起,便于生成报表和查询。其操作示意图如下:
  启动Impromptu程序:
新建一个Catalog,指定Cat文件名及其他属性(Catalog type,Database):Catalog 一般选择Shared,DataBase一般需要新建逻辑数据库,如果存在直接选择就可。
创建Cognos逻辑库:
确定数据库类型,新建逻辑库(这儿的示意图是以Sql Server为例的),将数据库的属性填入即可。
选定数据库后,下一步就是选择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的Data Source窗口。如下示意图:
数据源类型选择Iqd(Impromptu Query Definition)
录入访问数据的用户和口令
一个Cube加入完成,示意图如下:
然后依次把其他所有Iqd数据源都加入进来。如下示意图:
1.4.2.      生成Dimension Map和Measures
在Transformer里,维表和事实表的关联是通过Column名称关联的。所以维表的ID名与事实表对应的ID名必须一致。将维表的Column标识字段拖到Dimension Map 的Title处放开鼠标,就可以形成一个维度的Dimension Map,依此把所有维度的Column标识字段都拖到Demension Map。Cube展现时的维度名称就是我们在Dimension Map看到的名称。同一个维度有层次关系的Column标识按照粒度大小从上往下排列。如时间维,年份在最上,季度居中,月份在最下。将度量Column依次拖入Measures窗口。维度和肚量拖入各自的窗口后,就可以设置他们的属性了。其操作示意图如下:
维度名可以修改,如下所示:
有多层的维度的最底层的Unique属性需要勾上。Label属性选为维度对应的描述字段,因为展现分析时用户希望看到时维度描述,而不是维度标识。

对于度量可以修改其存储类型Storage type和显示格式Format等属性,如下示意图:
右键单击Dimension Map窗口,可以将Show Scope选上,可以直观的看到Dimension Map是否有错误(选中事实表Iqd的Data Source,如果有红色的表示有错误)。
下图标识Demension Map 有错误:
在PowerCubes窗口插入需要生成的Cube,示意图如下:
确定后通过执行主菜单Run下Create PowerCubes,就可以生成Cube 文件了。生成后可以通过PowerPlay查看生成的Cube的效果。如下示意图:

1.4.3.      为Cube模型添加权限控制
Cognos是通过用户类User Class来对Cube访问权限进行控制的。User Class的概念相当于通常意义上的用户组,用户类是可以分层次的,上层的用户类的权限大于等于它下层的用户类的权限。用户类的管理和维护是通过Access Manager完成的。Access Manager的操作很简单。示意图如下:
可以从Transformer里启动Access Manager,也可以从开始菜单里启动。
展开Directory Servers,安装完成后这个地方需要配置的,正常的配置好后都会有Namespace,如Default。展开Default,在Root User Class下面可以根据需要添加用户类。操作示意图如下:

用户类添加完后可以根据需要添加用户,一个用户可以属于多个用户类。操作示意图如下:

创建用户类的工作完成后,就可以为Cube指定可以访问的用户类和数据分配的权限了。在Transformer环境下,打开File――Model Properties,示意图如下:
将两个选项都选上,确定即可。
将需要访问该Cube的用户类拖入PowerCubes窗口中,如下示意图:
将可以访问Cube的用户类加入完成后,就可以对每个用户类可以访问的数据进行分配了。点击主菜单Diagram下的菜单项Show Diagram项,示意图如下:
选中User Class 页:
在要进行数据的控制的User Class 下的维度进行数据权限分配,一般情况下,是按照地市维度来进行权限分配。右键单击地市维,选择Use Custom view
即定义用户可以访问的数据视图。如下示意图:
单击要操作的地市Category,选择对Category需要控制的属性。控制Category的可访问属性有以下几种方式,其含义分别如下:
Exclude: 把指定类别及全部下层类别都排除,既看不见,也不参加汇总。
Cloak: 把指定类别及全部下层类别都屏蔽,全都看不见,但它们参加汇总。
Suppress: 仅把本层指定的类别屏蔽,其下层类别提升。不影响其他兄弟类别,也不影响汇总。
Summarize: 把指定类别的全部下层类别屏蔽,使它们看不见,把它们的值汇总到当前类别,当前指定的类别看上去就象是处在最低层。
Apex: 以当前类别作为本维度层次构架的顶点,即只保留当前类别及其以下的部分。旁系分支全部排除,既看不见,也不参加汇总。
一般情况下,Apex和Exclude用的较多。
权限添加完成后,就可以执行Run下Create PowerCubes命令,重新生成模型和数据了。
完成以上步骤,一个完整的Cube模型就算制作完成了。如果通过C/S方式展现,用PowerPlay就可以打开看了。如果通过B/S方式展现,还需要发布该Cube模型。后面继续论述Cube的发布。
1.5. Cube的发布
Cube的发布通过Cognos的组件PowerPlay Enterprise –Server Administration实现的。
1.5.1.      配置Upfront Server
启动Upfront-Server Administration,添加Upfront Sever,缺省为安装Cognos的机器名,然后启动该Server。操作示意图如下:
1.5.2.      发布Cube
启动Powerplay Enterprise-Server Administration,如下示意图:
点击主菜单Insert,选择要插入的Folder,Cube或Report。一般情况下,如果有很多Cube需要发布,最好以文件夹的形式插入,操作快捷简单。如点击“Folder…”,出现如下示意图:
选择Folder Source,录入Name,确定即可。
插入后,就可以把要发布的文件夹Folder发布到Upfront Server上了。点击主菜单Tools项下的Publish to Upfront,正常情况下即可发布成功。
如果出现Publish to Upfront 为灰色的,那么点击Security――Set Security…按提示操作既可。如下示意图:
发布成功完成后,就可以通过IE进行查看了。
1.6. Cube的B/S展现
1.6.1.      登录Upfront Server
在登录页面录入通过Access Manager创建的有效用户和口令即可。如下示意图所示:
然后登录,可以看到在PowerPlay Enterprise――Server Administration发布的所有Cube。
1.6.2.      Cube展现页面的管理操作
在登录后的界面里,可以对发布后的Cube进行编辑,查看属性,安全性控制等操作,如删除选中的Cube。如下示意图:
安全性控制:
还可以对用户和网关进行管理,点击Administation链接即可,如下示意图:
特别说明,这儿进行的用户管理和在Access Manager进行的用户管理是等效的。
1.6.3.      Cube的分析展现
点击要分析的Cube链接,进入分析页面:
在这个页面用户可以根据自己的需要对分析展现的风格进行控制,如可以对分析的维度和度量进行选择,还可以选择是展现图还是表格等很多分析操作,在此不一一列举了。
5.  Cognos的优化措施
这儿的说到的一些优化方法都是一些原则的方法,执行这些措施后效果如何,还要具体问题具体分析。下面是一些推荐方法:
1.7. 清洁合并源数据
1.7.1.      尽可能使源数据只包括模型所需的信息
如果源数据只含有模型所需的信息,将会加快Transformer 的读取时间。例如,如果在数据源中包含了一些没有用的列,那么即使在模型中没有用到这些列,Transformer 也会花费额外的时间对它们进行处理。
1.7.2.      合并记录
数据合并可以减少被读取的记录的数量。Transformer读取的记录数量越少,PowerCube生成的时间也就越短。
[url=]<>)[/url]
定时控制 (在数据源属性页上)可以控制Transformer在什么时候对数据源进行处理。
首先应该执行结构型数据源来创建模型中的类别结构。完成这一步后,如果在PowerCube生成过程中不需要执行它们 (数据源中没有添加新的类别,并且含有这些类别的模型已经得到保存) ,那么可以将数据源的定时功能(timing)设置如下:
有些结构型数据源代表一种易变动的结构,这种结构需要在每次生成PowerCube时对这些类别进行更新。可以将这种类型的数据源的定时功能设置为在创建PowerCube的类别生成阶段来运行。

事务型数据源随着每次生成PowreCube时度量值所需的新数据的变化而不断发生变化 。事务型数据源在PowerCube创建过程中执行来提供度量值:
[url=]<>[/url]
在数据源属性页上有两个用于唯一性验证的设置。默认的属性设置为Verify Category Uniqueness。对于所提供的列与含有唯一层的维度中的层相关联的数据源,推荐使用该项设置。通常这些数据源为结构型数据源。
如果设置为Verify Category Uniqueness并且Transformer 检测到在一个标识为“Unique”(层属性)的层上有两个类别具有相同的源值,就会返回以下错误信息:
(TR2317) The level 'City' is designated as unique.  Source value 'Green Bay' was used in an attempt to create a category in the path (By state,Illinois,Green Bay).  'Green Bay' already exists in level 'City' in the path (By state,Wisconsin,Green Bay).
(TR0136) A uniqueness violation was detected.  The process has been aborted.
例如,State维度在City层上被设置为Unique:
           
该错误表示在City层下存在第二个Green Bay实例 (本例中为Illinois)。例如,如果您的源数据如下:
Measure, State, City
1, Wisconsin, Green Bay
2, Wisconsin, Appleton
3, Illinois, Green Bay
当在City层上没有选定“Unique”时,维度视图显示为:
当在City层上选定“Unique”,过程会被中断,维度视图显示为:
如果您确定模型数据源中的值被映射到层的唯一类别中,则可以设置Maximize Data Access Speed属性。 当启用该属性时,唯一性验证将会将到最低,数据源处理的性能将会提高。Transformer不会不停的对现有值和类别值进行验证。这就意味着性能可以得到极大的提高。
警告!  如果启用了Maximize Data Access Speed,而在数据中存在违反唯一性的问题,Transformer将不会通知您。会造成在PowerCube中产生类别丢失和值不准确的问题。
使用和上面相同的例子,如果启用了Maximize Data Access Speed并且City层被设置为“ Unique” ,Transformer将不会通知您Green Bay存在于两个不同的State(Wisconsin和Illinois)下,PowerPlay中的最终结果如下:
注意:上面的交叉表中不存在Illinois
如果删除City层的唯一性并对立方体进行重建,PowerPlay中的最终结果为:
注意:当设定Maximize Data Access Speed 时,将不会执行唯一性的转移(unique move)。
[url=]<>功能[/url]
如果生成PowerCube的计算机是双CPU,您就可以利用多服务器处理的功能。启用该功能可以大大提高数据读取阶段生成PowerCube的整体性能。
多服务器仅适用于以下数据源类型:
Impromptu Query Definition (IQD)
Delimited Field Text
Delimited Field Text with Column Titles
该选项可以在Data Source属性对话框中进行设置:
[url=]<>[/url]
如果创建整个立方体的条件不满足,那么增量更新将是一种很好的解决方法。增量更新仅将最新的数据添加到现有的PowerCube而不会对以前的数据进行重新处理。与重建整个PowerCube相比,使用增量更新只会对很少的数据进行更新,而且更新的速度也会得到加快。
如果PowerCube的结构(维度、层等)为静态,您只需考虑使用增量更新功能。如果发生了结构变化,必须使用所有数据重新生成立方体。
推荐您定期重建PowerCube。第一次建立立方体时,自动分区( Auto-Partitioning)功能可以将维度和层分割为多个分区层(partitioning level)。 在此之后所有新的类别将被加到 “0”分区层上。 如果随时间的变化增加了很多类别,PowerCube用户最终会遇到性能问题。使用所有当前类别重新生成PowerCube将允许Transformer设计出一种新的分区模式。下面的例子是每四次增量更新后进行一次完整重建的调度情况:
Build 处理行为
1   初始化加载
2   对build1进行增量更新1
3   在build 2上进行增量更新2
4   在build 3上进行增量更新3
5   在build 4上进行增量更新4
6   由初始加载和从增量更新1到增量更新4组成的完全加载
7   在build 5上进行增量更新5
8   在build 7上进行增量更新6…
[url=]<>环境[/url]
本节列举出了在Windows NT上使Transformer获得最佳性能所需考虑的设置:
1.12.1.              WriteCacheSize
根据可用内存的多少,写缓存的值会对PowerCube的生成时间产生正面或负面的影响。当有足够物理内存以至于磁盘缓存可以增加到和PowerCube一样大小时,就可以获得最佳得性能。
可以在Services - PowerPlay Data Services - Cache 下的Configuration Manager 中对该设置进行修改。默认值为 8192 (或 8MB)。要对其进行修改,可以使用1024为增量来增加该值的大小。在大型系统上将写缓存增加到32768 (32MB) 或 65536 (64MB) 可以提高性能。然而,如果将其增加到非常大的值(例如102400 或数百兆字节) 会损害性能。
1.12.2.              SortMemory
    该变量可以设置对数据进行排序时所使用的可用物理内存。Transformer 对数据进行排序用于数据合并和自动分区。所设定的数值代表在进行数据排序时所使用的2K区块的数量。例如, 将值设为5120可以提供5120 x 2K = 10MB 的内存。默认值为512。 可以在 Services - UDA - General 下的Configuration Manager 中对默认值进行修改。将默认值设置为5120是一个不错的选择。
1.12.3.              TEMPFILEDIRS
Transformer 使用该设置用于临时排序文件。在Transformer执行排序操作时都会创建该临时排序文件。
可以修改Services - UDA - General 下Configuration Manager 中的地址。可以设置以分号分隔的多个目录。
1.12.4.              MaxTransactionNum
    Transformer可以在生成PowerCube的各个阶段插入checkpoint。Maximum Transactions Per Commit设置可以限制插入一个checkpoint之前临时保存的记录的数量。默认设置为MaxTransactionNum=500000。所设定的值是向PowerCube提交修改之前Transformer将要处理的最大记录数。可以在General 标签下的Transformer Preferences对话框中对默认值进行修改。
如果在生成立方体时发生了错误(例如 TR0112 There isn't enough memory available) ,需要降低 MaxTransactionNum的值,这样就可以加快提交的频率并释放磁盘空间。
可以将该设置增加到一个更高的数值 (例如800000) 来提高立方体的生成时间,其结果取决于环境。
注意:ReadCacheSize设置和Transformer无关,该项设置只针对PowerPlay Enterprise Server 和PowerPlay Client 。
[url=]<>[/url]
1.13.1.              ModelWorkDirectory=<path>
当进行模型设计时设定创建临时文件的位置。临时文件用来在立方体创建过程中发生严重错误时恢复在战略检查点被挂起的模型。该文件的扩展名为QYI, 默认的路径是ModelSaveDirectory设置的值。
1.13.2.              DataWorkDirectory=<path1;path2;...>
设定在生成立方体时Transformer创建临时工作文件的位置。可以使用多个驱动器的能力可以消除操作系统所造成的大小限制。当Transformer 创建立方体时,它可以将临时文件写入指定的驱动器或目录。这些文件被连接到一个逻辑文件,而无需考虑它们所在的驱动器。这些文件的位置由您所设定的路径列表来决定。默认的路径为CubeSaveDirectory设置的值。
1.13.3.              DataSourceDirectory=<path>
对于除IQD文件和Architect模型以外的数据源文件,该设置可以指定Transformer搜索这些文件的位置。默认路径是当前工作路径。
1.13.4.              CubeSaveDirectory=<path>
指定Transformer保存立方体的位置。默认路径为ModelSaveDirectory。
1.13.5.              ModelSaveDirectory=<path>
设定Transformer保存模型的位置。默认路径为当前工作路径。
下面是Transformer日志文件中有关这些设置的实例:
PowerPlay Transformer Wed Sep 19 09:39:17 2001
LogFileDirectory=c:\transformer\logs
ModelSaveDirectory=c:\transformer\models\
DataSourceDirectory=c:\transformer\data\
CubeSaveDirectory=e:\transformer\cubes\
DataWorkDirectory=d:\temp\
ModelWorkDirectory=e:\temp\
下面的例子显示了如何在命令行中使用参数设置文件:
trnsfrmr -n –fc:\preferences.prf model.mdl
6.  附录
1.14.    手动修改动态Mdl文件添加用户权限的方法
通过修改.mdl文件可以添加权限控制,具体说明如下:
手动修改.mdl文件添加权限控制的前提条件:
1 多维模型的存储采用Verb mdl格式,缺省情况下Cognos采用structured mdl格式,修改参数配置文件trnsfrmr.ini中的选项,增加一行参数:VerbOutput=1 即可。
2 通过 Access Manager-administration 工具添加了权限控制所需要的用户类。
1.14.1.              用户类视图定义
举例说明如下:
ViewMake 20000 "anqing~User View" Dimension "地市维" ViewUserClass 10020 Apex "302"
ViewMake 20010 "hefei~User View" Dimension "地市维" ViewUserClass 10030 Apex "305"
ViewMake 20020 "huainan~User View" Dimension "地市维" ViewUserClass 10040 Apex "307"
功能说明:以上描述的功能是生成用户视图(如:"anqing~User View"),在定义用户视图里包括的内容有:
          1 维度(如"地市维")
          2 用户类编号(可以自己定义,只要前后保持一致就可以)
          3 可以访问的维度成员(数据范围)定义(如:Apex "302" 表示仅可以看到"地市维"中的"302"成员,"302" 代表"安庆")
1.14.2.              用户类定义
举例说明如下:
UserClassMake 10000 "Root User Class" Id 50000
DimensionView "月份维" "All Categories" DimensionView "地市维" "All Categories" DimensionView "品牌类型维"
"All Categories" DimensionView "业务类型维" "All Categories" DimensionView "渠道类型维" "All Categories"
DimensionView 297 "All Categories"
MeasureInclude "用户欠费金额" Yes MeasureInclude "在网用户欠费金额" Yes
UserClassMake 10010 "ah" Id 50010
DimensionView "月份维" "All Categories" DimensionView "地市维" "All Categories" DimensionView "品牌类型维"
"All Categories" DimensionView "业务类型维" "All Categories" DimensionView "渠道类型维" "All Categories"
DimensionView "欠费账龄维" "All Categories"
MeasureInclude "用户欠费金额" Yes MeasureInclude "在网用户欠费金额" Yes
UserClassMake 10020 "anqing" Id 50020
DimensionView "月份维" "All Categories" DimensionView "地市维" "anqing~User View"
DimensionView "品牌类型维" "All Categories" DimensionView "业务类型维" "All Categories" DimensionView "渠道类型维"
"All Categories" DimensionView "欠费账龄维" "All Categories"
MeasureInclude "用户欠费金额" Yes MeasureInclude "在网用户欠费金额" Yes
UserClassMake 10030 "hefei" Id 50030
DimensionView "月份维" "All Categories" DimensionView "地市维" "hefei~User View" DimensionView "品牌类型维"
"All Categories" DimensionView "业务类型维" "All Categories" DimensionView "渠道类型维" "All Categories"
DimensionView "欠费账龄维" "All Categories"
MeasureInclude "用户欠费金额" Yes MeasureInclude "在网用户欠费金额" Yes
UserClassMake 10040 "huainan" Id 50040
DimensionView "月份维" "All Categories" DimensionView "地市维" "huainan~User View" DimensionView "品牌类型维"
"All Categories" DimensionView "业务类型维" "All Categories" DimensionView "渠道类型维" "All Categories"
DimensionView "欠费账龄维" "All Categories"
MeasureInclude "用户欠费金额" Yes MeasureInclude "在网用户欠费金额" Yes
UserClassListUpdate 10000 StartList 10010 EndList
UserClassListUpdate 10010 StartList 10040 10020 10030 EndList
UserClassListUpdate 10020 StartList EndList
UserClassListUpdate 10030 StartList EndList
UserClassListUpdate 10040 StartList EndList
功能说明:以上描述的功能是定义生成用户类,在用户类定义包括如下内容:
          1 用户类标识(包括用户类编号,名称,ID编号);其中用户类编号可以自己定义,但要保持唯一;名称为Access Manager中创建的名称,ID编号可以自己定义,只要保持唯一就可。
          2 用户类可以访问的维度描述;这部分包括用户类可以访问的维度和维度内的成员范围定义。
            (如:DimensionView  "月份维" "All Categories" 表示月份维的所有成员;   
                  DimensionView "地市维" "huainan~User View" 表示地市维用户视图定义内的成员范围,其中"huainan~User View"在用户视图中定义的)
          3 用户类可以访问的度量描述;这部分包括用户类可以访问的度量描述。(如:MeasureInclude"用户欠费金额" Yes  表示用户类可以访问度量"用户欠费金额" )
          4 更新用户类定义描述;这部分包括用户类对应的用户类编号,以及用户类之间的层次关系描述(如:UserClassListUpdate 10000 StartList 10010 EndList 表示维成员10000是10010 的父节点,UserClassListUpdate 10010 StartList 10040 10020 10030 EndList 表示10010是10040,10020,10030三个成员的父节点)           
1.14.3.              定义可以访问Cube的用户类
CubeMake 100000000 "收入类月分析指标(欠费用户类)" MdcFile "收入类月分析指标(欠费用户类).mdc"
PowerCubeUserListUpdate Cube 100000000 StartList 10020 10030 10040 EndList
功能说明:以上描述的功能是定义可以访问Cube的用户类范围,这部分定义只要把用户类对应的用户类编    号指出即可.(如:PowerCubeUserListUpdate Cube 100000000 StartList 10020 10030 10040     EndList,其中100000000是Cube编号,与 CubeMake 100000000 "收入类月分析指标(欠费用户    类)"MdcFile "收入类月分析指标(欠费用户类).mdc" 中定义的编号(100000000)一样。10020     10030 10040分别表示可以访问Cube编号100000000的用户类编号。))
基于以上描述,这次联通总部的指标体系通过Cognos展现的权限控制可以通过下列建议规范来实现:
一 用户视图定义:
   ViewMake 20000 "anqing~User View" Dimension "地市维" ViewUserClass 10020 Apex "302"
   
   用户视图编号我们以20000开始,每增加一个用户视图,编号按10递增;视图名由用户类名拼~User View组成,可以访问的维度描述在这儿地市维度名"地市维" ;用户类视图编号采用用户类编号,地市成员编码采用地市维表中定义的地市编码(Cognos的Tansformer默认采用此编码),如这儿采用安徽的编码,"302" 代表"安庆")。
  
    文本在mdl文件中的位置:
    ViewMake 20000 "anqing~User View"......放在地市维成员的描述DimMake.......最后的    ViewMake......之后,下一个DimMake......之前
  
二 用户类定义:
  
   
   UserClassMake 10000 "Root User Class" Id 50000
   DimensionView "月份维" "All Categories" DimensionView "地市维" "All Categories"
   DimensionView "品牌类型维" "All Categories" DimensionView "业务类型维" "All Categories"       DimensionView "渠道类型维"
   "All Categories" DimensionView "欠费账龄维" "All Categories"
   MeasureInclude "用户欠费金额" Yes MeasureInclude "在网用户欠费金额" Yes
   
   UserClassMake 10010 "ah" Id 50010
   DimensionView "月份维" "All Categories" DimensionView "地市维" "All Categories"
   DimensionView "品牌类型维" "All Categories" DimensionView "业务类型维" "All Categories"       DimensionView "渠道类型维"
   "All Categories" DimensionView "欠费账龄维" "All Categories"
   MeasureInclude "用户欠费金额" Yes MeasureInclude "在网用户欠费金额" Yes
   UserClassMake 10020 "anqing" Id 50020
   DimensionView "月份维" "All Categories" DimensionView "地市维" "anqing~User View"
   DimensionView "品牌类型维" "All Categories" DimensionView "业务类型维" "All Categories"       DimensionView "渠道类型维"
   "All Categories" DimensionView "欠费账龄维" "All Categories"
   MeasureInclude "用户欠费金额" Yes MeasureInclude "在网用户欠费金额" Yes
   ......
  
   UserClassListUpdate 10000 StartList 10010 EndList
   UserClassListUpdate 10010 StartList 10020  EndList
   UserClassListUpdate 10020 StartList EndList
   
   第一个用户类的用户类编号采用10000开始,每增加一个用户类按10递增;"地市维"后的用户类视图名由用户类名拼上~User View,如安庆用户类的视图名为:"anqing~User View" ,其它维之后的视图一律采用"All Categories";ID编号以50000开始,每增加一个用户类按10递增;度量定义一律采用度量名描述,如:MeasureInclude "用户欠费金额" Yes  。特别说明:没有特殊情况,用户类定义中的维度应包括所有维度和度量的定义。格式如上例子所示。
  
   文本在mdl文件中的位置:
    UserClassMake ......放在文件中最后一个文本MeasureMake......之后,SignonMake......之前
  
  
三 定义可以访问Cube的用户类:
  
CubeMake 100000000 "收入类月分析指标(欠费用户类)" MdcFile "收入类月分析指标(欠费用户类).mdc"
PowerCubeUserListUpdate Cube 100000000 StartList 10020 10030 10040 EndList
    Cube编号采用100000000,用户类编号要与用户类定义中的一致。将允许访问Cube的用户类编号放在是StartList和EndList之间,中间用空格符分开。
   
文本在mdl文件中的位置:
  1 CubeMake 100000000 ......存放在生成Cube的位置,通过查找CubeMake可以找到。主要去改它的Cube编号
  2 PowerCubeUserListUpdate Cube 100000000 .......放在文件尾部AllocationAdd Measure......之前MeasureInclude......之后的位置。
1.15.    Cognos连接Db2 OlapServer显示格式设置方法
Cognos通过PowerPlay Connect 连接Db2 Olap 或Essbase时缺省的显示格式是在DB2 Olap Server或Essbase Server 端设置,具体设置方法如下:
1 选定需要设置的Measure Member.
示意图如下:
2 打开Measure Member的Properties设置窗口,示意图如下:
3 在UDAs域名中录入需要显示的格式:
  书写语法为:COGNOS_FORMAT=format_string(如COGNOS_FORMAT=$#,##0~2),”~”后面的值表示要保留的小数位数!
  format_string 的格式类型是在由Cognos制定的。其类型如下表:

Format Option


Sample Value


Example


General


1000000


1000000


0


1000000


1000000


#,##0


1000000


1,000,000


$0


1000000


$1000000


$#,##0


1000000


$1,000,000


0%


1000000


100000000%


%0


1000000


%100000000


0E+000


1000000


1E+006


0K


1000000


1000K


#,##0K


1000000


1,000K


K0


1000000


K1000


K#,##0


1000000


K1,000


$0K


1000000


$1000K


$#,##0K


1000000


$1,000K


0M


1000000000


1000M


#,##0M


1000000000


1,000M


M0


1000000000


M1000


M#,##0


1000000000


M1,000


$0M


1000000000


$1000M


$#,##0M


1000000000


$1,000M


4 格式录入完毕后,点击“Add”按钮――“确定”按钮,然后保存OutLine即可。
1.16.    NT环境Cube数据自动更新
1.16.1.              NT环境Cube数据自动更新脚本处理方法
由于COGNOS的CUBE 发布后,可能出现后台在更新Cube数据时,客户端正在访问要被更新的Cube,如果不取消Cube的访问权限,更新将无法正常进行.基于此理由,在NT环境下,提出如下解决办法,即更新Cube数据前,将CUBE设为不可访问,全部更新后,恢复访问.具体操作如下:
   1 停止Cube的访问.执行命令示例如下:
     @ppadmtool connect lsj user "administrator" password "" disable cube
     解释: lsj 是PPES 的Sever 名;
           user "administrator" password "" 代表登录PPES的用户名和口令
           disable cube 代表被停止的Cube名或Folder名.
   2 全部Cube数据更新完毕后,恢复对Cube的访问.执行命令示例如下:
     @ppadmtool connect lsj user "administrator" password "" enable cube
调用脚本(Load.bat)示例如下:
@rem #初始化
@set tmppath=%path%
@set path=D:\多维设计\cognos\bat;D:\Program Files\Cognos\cer1\bin
@rem #开始执行加载Cube脚本
@ppadmtool connect lsj user "administrator" password "" disable cube
@rem # 1 收入类月分析指标(欠费用户类)
@call Fm_ArrUser_IncomeM
@echo 收入类月分析指标(欠费用户类)Fm_ArrUser_IncomeM.bat: >> D:\多维设计\cognos\log\cube加载日志.log
@type D:\多维设计\cognos\log\收入类月分析指标(欠费用户类).log >>  D:\多维设计\cognos\log\cube加载日志.log
@ppadmtool connect lsj user "administrator" password "" enable cube
@rem  #恢复path路径
@set path=%tmppath%
@echo 全部Cube生成完毕!!!
@Exit
Fm_ArrUser_IncomeM.bat文件内容示例:
@echo 加载Cube:收入类月分析指标(欠费用户类)Fm_ArrUser_IncomeM
@echo 开始执行日期及时间: & @date /t & @time /t
trnsfrmr -n2 -s -kReport_Up=sa/123456 "收入类月分析指标(欠费用户类).mdl"
@echo [收入类月分析指标(欠费用户类)Fm_ArrUser_IncomeM] cube加载完毕!!!
1.16.2.              Cognos自动加载调度方法
操作步骤如下:
一 修改附件中Load.bat文件中路径,修改如下:
   @set path=D:\多维设计\cognos\bat;D:\Program Files\Cognos\cer2\bin
将path路径设为实际项目中的路径。“D:\多维设计\cognos\bat”代表Load.bat所在路径,“D:\Program Files\Cognos\cer2\bin”代表trnsfrmr.exe所在路径。
其它路径根据实际项目中的路径设定。
二 修改附件中其它被调用的.bat文件中的mdl文件路径。对于cognos6.6版本需要写出全路径,对于cognos7以上版本不用修改路径。
三 如果要手动执行加载,执行load.bat就可。如果是自动调度,可以使用cognos 的组件scheduler使用方法如下:
1 启动Scheduler,示意图如下:
  
2 插入任务,点击菜单Insert,选择recurring task…(如单次执行选择task…), 示意图如下:
3 选择要调度的任务,如在此为运行load.bat文件。示意图如下:
4 选择调度参数(如时间,周期,安全性设置),示意图如下:
正常情况下,设置完毕后,在调度时间到来时,Scheduler会自动启动Cmd执行load.bat文件,重新生成mdl和mdc文件。
1.17.    Cognos建议规范
1.17.1.              Iqd文件规范
1、维表iqd文件中的SQL语句一定要有Order by字句排序,一般情况按照第一个字段(最细层ID字段)排序即可,加上order by 1;
2、iqd字段的描述一定要用中文表示,虽然这部分不是让最终用户使用,但是构建新的Cube模型是一项经常性的工作,很难保证构建者对英文字段含义有多理解;
3 、维表中每个维层次都有两个字段,一为ID字段,一为Desc字段,在命名上,ID字段直接使用描述,Desc字段的描述加Desc,例如“月份”和“月份Desc”;
1.17.2.              Mdl文件规范
  1、一律使用mdl格式存储多维模型,并且使用verb mdl,缺省情况下,Cognos Transformer使用structured mdl格式,需要修改trnsfrmr.ini中的选项,加上VerbOutput=1;
2、在Transformer中设定恰当的工作目录,在选择iqd文件时一律使用相对路径,例如使用"dim/dura.iqd",而不是"d:/cube/iqd/dim/dura.iqd";
3、对于每个维度的层次的Source和Lable,前者一律使用iqd中定义的ID字段,后者一律使用描述字段;
4、度量的描述(它将出现在界面上)必须加上单位,例如“用户数(户)”、“通话费(万元)”等;
  5、度量的格式必须设定恰当,对于费用,使用“¥##,##.00"格式,展现的结果例如"¥10,286.34",对于用户数、通话次数等整型数,一律使用"#,###”格式,例如"432,82,89"。
1.17.3.              Cube权限规范
Cube的权限全部采用手动修改Mdl文件的方法修改。具体操作方法参见本文档6.1节。
1.18.    Cognos增量更新问题解决办法建议
  1 首先要求数据源有两套结构一样的数据表,一套为全量数据表,一套为增量数据表.如果不考虑建两套表,
   那么在生成Iqd文件时可以通过控制Sql语句方法来实现增量表的效果(生成增量Iqd文件).
2 建Mdl模型时可以建两个结构一样的Mdl模型(事实表Iqd文件不一样,一个是全量Iqd文件,一个是增量IQd文件),模型对应的Cube的属性不一样,一个是全量的Cube,一个是增量更新的Cube,但生成的Cube指向同一个Cube文件.
3 建立两套脚本,一套全量脚本,一套增量脚本.调度时根据更新的时间周期运行不同的脚本.
   比如,想实现每天增量加载cube,到周末recreate cube全量加载,这样做就是很简单的事.


楼主热帖
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 赞 踩

168大数据 - 论坛版权1.本主题所有言论和图片纯属网友个人见解,与本站立场无关
2.本站所有主题由网友自行投稿发布。若为首发或独家,该帖子作者与168大数据享有帖子相关版权。
3.其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和168大数据的同意,并添加本文出处。
4.本站所收集的部分公开资料来源于网络,转载目的在于传递价值及用于交流学习,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
5.任何通过此网页连接而得到的资讯、产品及服务,本站概不负责,亦不负任何法律责任。
6.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源,若标注有误或遗漏而侵犯到任何版权问题,请尽快告知,本站将及时删除。
7.168大数据管理员和版主有权不事先通知发贴者而删除本文。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2024-5-6 18:59

Powered by BI168大数据社区

© 2012-2014 168大数据

快速回复 返回顶部 返回列表