Cognos入门到精通-高级知识库.ppt
Cognos高级知识库,议程,系统架构安装与配置系统管理安全性管理高级报表设计,Cognos 8 的 BI 产品,Cognos 8的BI产品,对以往的技术和思想进行了较大幅度的提升和创新,把用户的操作方式全面推向以浏览器为前端的 Web方式。它在一个产品中、一个架构上提供了极其丰富的业务智能功能。Cognos 8的模块主要包括:,Query Studio查询:自助报表生成工具 Report Studio查询:专有报表构筑工具 Analysis Studio 分析:多维数据展示工具 Transformer分析:多维数据设计工具 Framework Manager查询:业务数据组织工具,几个模块在Cognos体系中的位置,Cognos数据仓库解决方案中使用的产品,前端展现,Cognos8应用结构,Cognos 8是Cognos基于Web的业务智能解决方案.,展现层:纯浏览器没有插件,WEB 层,应用层,数据层,BI 内容管理,BI 门户服务,COGNOS BI BUS:SOAP,XML,网关,开发接口,Cognos 门户:单点访问,报表,服务 和安全性管理,客户应用,脱机OLAP,-采用Portlet技术-报表用户-分析用户(OLAP 和 ROLAP)-业务报表制作(Ad Hoc Query)-专业的报表制作,企业门户,客户系统,内部网,外部网网页,.,OLAP Windows 客户端OLAP Excel 客户端,内容存储 审计,RELATIONAL:Relational(including Aggregate aware RDBMS)-Oracle,IBM DB2,Microsoft SQL Server,Teradata,ODBC,MULTIDIMENSIONALCognos OLAP,IBM DB2 OLAP,SAP BW,Microsoft SSAS,Essbase,Oracle 10G,LEGACY*Mainframe,MODERNXML,统一元数据,为应用提供统一,一致的视图,元数据模型,认证,大量的报表,OLAP报表:管理报表,生产报表,报表服务:调度,爆发,高效率分析,分析:OLAP 和 ROLAP分析 和 报表,OLAP Server:OLAP 连接,安全,管理,HETEROGENEOUS DATA SOURCES,事件管理,报警和探测定义,检验,调度,形成闭合的环,Metrics 管理,基于OLAP等各种数据源、平衡记分卡KPI,趋势,因果关系,ETL,直接访问,企业信息整合,即席查询,自助即席查询,Apache、IBM HTTP Server、IIS等,Websphere、Weblogic、JBoss、tomcat等统一服务,第 1层 Web Server:网关,所有Web通信都通过Cognos 8网关,网关可以安装在一个或多个Web server上.,Web server 操作系统:Windows NT/2000/XPHP-UX 11,11iAIX 4.4.3,5LSolaris 8,9,Web Server 软件:Microsoft IISApache 1.3,2iPlanet/Netscape,Web网关:CGI 用于所支持的Web servers,性能最慢ISAPI 用于IIS。为IIS提供更好的性能apache_mod 支持Apache Web serverservlet 所用的Web server基础结构必须支持servlet,网关可以将Web Server请求转换为适应SOAP 协议的请求:将请求放在BI Bus上处理来自BI Bus的响应,Report server用于执行来自报表应用程序的查询定义(query specification),第 2层 服务层,第三层,第一层,BI Bus,Report server:接受和执行来自报表应用程序的查询定义(XML格式)返回 Cognos Connection 用户界面。操作报表服务和展现服务应用程序是多线程的,可以使用多进程服务器,处理并发请求。,应用层包括如下组件:启动服务(bootstrap service):启动、监视和停止调度器。调度器(Dispatcher):Java servlet。启动所有 ReportNet 服务并对请求进行发送。展现服务(presentation service)报表服务和批报表服务:提供元数据访问、数据访问(查询)、提示和报表执行。作业和调度监视服务:管理批报表服务器执行的调度作业和报表。日志服务器:管理调度器和其它服务生成的日志。,第 3 层 数据:Content Manager,在每个Cognos 8的运行环境中,只有一个Content Manager和一个Content Store。,BI Bus,Content Manager,Content Manager安装组件:启动服务调度器展现服务作业和调度监视服务日志服务器认证授权Content Manager Service:在content store中存储所有cognos 8信息。,Cognos 8在一个servlet容器(Container)中运行两个 servlet。Cognos 8的servlet 容器是Tomcat.,Tomcat,Dispatcher(servlet),Content Manager(servlet),Report service(C+),Batch reportService(C+),Presentation service,Content manager service,Log service,Job and schedule monitoring service,Servlet容器,了解Cognos 8的Servlets,Tomcat是:一个J2EE(Java 2 Enterprise Edition)servlet容器Cognos 8缺省安装由启动服务启动、停止和监控也可以用以下服务器配置cognos 8:Bea WebLogicIBM Websphere,用Tomcat 或一个第三方应用服务器,dispatcher,browser,Web server,Contentstore,query database,Web server 从用户浏览器中获得请求,Web server上的网关对http请求进行处理,将其转换为SOAP协议兼容的请求,并把它传递给调度器,调度器接收要运行报表的SOAP请求,并传送请求到展现服务同时调用报表阅读器功能,报表阅读器发送执行的报表请求到负责均载平衡的调度器。调度器发送请求到本地报表服务,报表服务接收到调度器的请求,然后和Content Manager通信,索要决定报表内容和布局的报表定义(report specification),Content Manager 和Content store通信,检索报表定义,然后将报表定义传送回报表服务,报表服务根据报表定义查询数据库执行报表,检索数据并格式化输出成被请求的风格,报表服务生成html页面,并通过含有HTML面页的调度器发送一个反馈信息到展现服务,展现服务添加察看界面(带有菜单、按钮等),并发送完整的HTML页面到调度器,再通过网关返回到用户的浏览器上,实例:报表请求处理过程,OLAP 服务器Cognos Transformer Server,Cognos Transformation server 按业务逻辑,将二维数据转换为Cube。Cube为多维数据实体,按主题生成,提供用户对大数据量汇总信息的高校访问。Cube具有安全性,不同用户访问看到不同内容。,Cognos OLAP Server,数据源,Cube,用户访问,NT UNIX,议程,系统架构安装与配置系统管理安全性管理高级报表设计,了解安装选项,gateway、cognos 8 server和 Content Manager装在什么地方?可以:在一台机器上安装所有的服务器组件根据环境在选项有效的范围内分布安装Framework Manager与任意的服务器组件安装在一起,或同服务器组件分开安装content store 与其它的 cognos 8 组件分开安装,平衡请求负载,用cognos 8组件的多种组合平衡请求的负载。在调度器一级,在分布式安装中负载均衡自动完成。,添加路由器平衡请求负载,用跨接多个组件的路由器分配请求。,ReportNet安装在一台机器上,在一台机器上安装 cognos 8 的所有组件:用于概念的证明用于测试或开发环境,网关单独安装在一台机器上,为了提高性能,将cognos 8网关与其它cognos 8组件分开安装在一台或多台机器上。,报表服务器和Content Manager分开安装,为了提高性能、有效性和容量,将 ReportNet 服务器组件安装在多台机器上。,Report Server,Content Manager,Report Server,Computer D,Web server,gateway,修改缺省设置,如果报表环境需要修改缺省设置,可以:修改 port number用一个不同的网关界面实行安全性(security)、源控制系统(source control system)或通知服务(notification services)用一个备用审计文件用不同的密码提供者(cryptographic provider)配置指向名字空间的网关允许或取消设置指定处理的服务控制ReportNet服务的可用资源,配置一个分布安装,为了保证分布安装中组件之间的通信,必须如此配置:Content Manager要知道content store的位置报表服务器计算机要知道Content Manager的位置网关计算机要知道一个调度的的位置在所有的计算机上密码属性都相同首先,必须在Content Manager计算机上配置和启动服务。,ISAPI:在 Cognos Configuration中,将网关地址中的cognos.cgi用 cognosisapi.dll代替2.保存配置信息,重新启动服务.3.用 http:/crn/isapi 访问cognos 8,配置ISAPI和Servlet,Servlet:1.将 cognosc8webcontent 目录下的所有文件拷贝到 cognosc8webappsp2pd 目录下.2.使用如下地址访问cognos 8 http:/:9300/p2pd/servlet/dispatch,议程,系统架构安装与配置系统管理安全性管理高级报表设计,隐藏Connection中对象URL参数说明分发报表修改全局风格变量,隐藏Connection中的对象,Cognos Connection中的每个对象可以隐藏。具体方法是打开c8templatespsportalsystem.xml文件,加入如下例是在Cognos Viewer中隐藏掉部分对象。具体参考文档ADMINISTRATION AND SECURITY GUIDE第327页,可以指定某组或角色不隐藏,URL中的参数说明,URL中的参数说明,在Cognos Viewer 中运行报表,ui.tool 设置为“CognosViewer”.ui.action 设置为“run”或“view”.当查看一个静态报表时,报表搜索路径应当写在“defaultOutput()”中.报表输出格式包括:CSV,HTML,HTMLFragment,MHT,PDF,singleXLS,XHTML,XLS,XLWA,and XML.传递参数用“p_”作为参数名称的开头,如参数product name,则传参数使“p_Product name”.不显示提示页,在URL结束处使用“&run.prompt=false”,在Cognos Viewer 中运行报表,Viewing Saved Reportshttp:/server-name/Cognos8/cgi-bin/cognos.cgi?b_action=xts.run&m=portal/launch.xts&ui.tool=CognosViewer&ui.action=view&ui.action=view&ui.object=defaultOutput(/content/packagename=GO Sales and Retailers/foldername=Report Studio Report Samples/reportname=Banded Report)Executing Live Reportshttp:/server-name/Cognos8/cgi-bin/cognos.cgi?b_action=xts.run&m=portal/launch.xts&ui.tool=CognosViewer&ui.action=run&ui.object=/content/packagename=GO Sales and Retailers/foldername=Report Studio Report Samples/reportname=Banded ReportViewing Reports in Different Output Modeshttp:/server-name/Cognos8/cgi-bin/cognos.cgi?b_action=xts.run&m=portal/launch.xts&ui.tool=CognosViewer&ui.object=/content/packagename=GO Sales and Retailers/foldername=Report Studio Report Samples/reportname=Banded Report&ui.action=run&run.outputFormat=PDFPassing Prompt Answershttp:/server-name/Cognos8/cgi-bin/cognos.cgi?b_action=xts.run&m=portal/launch.xts&ui.tool=CognosViewer&ui.object=/content/packagename=GO Sales and Retailers/foldername=New Reports/reportname=product revenue-prompt&ui.action=run&p_Product name=Bear Edge&run.prompt=falsePassing Multiple Prompt Answershttp:/server-name/Cognos8/cgi-bin/cognos.cgi?b_action=xts.run&m=portal/launch.xts&ui.tool=CognosViewer&ui.object=/content/packagename=GO Sales and Retailers/foldername=New Reports/reportname=product revenue-prompt&ui.action=run&p_Product name=Bear Edge&p_Product name=Aloe Relief&run.prompt=false,Query Studio,ui.tool 设置为“QueryStudio”.ui.action 设置为“new”或者“edit”.只有在Query Studio中创建的报表才可以用Query Studio查看.,Query Studio,打开 Query Studio http:/server-name/Cognos8/cgi-bin/cognos.cgi?b_action=xts.run&m=portal/launch.xts&ui.tool=QueryStudio&ui.object=/content&ui.action=new用Query Studio打开一个元数据包http:/server-name/Cognos8/cgi-bin/cognos.cgi?b_action=xts.run&m=portal/launch.xts&ui.tool=QueryStudio&ui.object=/content/packagename=GO Sales and Retailers&ui.action=new用Query Studio打开一张报表http:/server-name/Cognos8/cgi-bin/cognos.cgi?b_action=xts.run&m=portal/launch.xts&ui.tool=QueryStudio&ui.object=/content/packagename=GO Sales and Retailers/foldername=New Reports/queryname=A Report by Product Type&ui.action=edit,Analysis Studio,ui.tool 设置为“AnalysisStudio”.ui.action 设置为“new”或者“edit”.用Analysis Studio制作的报表可以打开来运行.默认情况下,Analysis Studio在自己的窗口打开,参考参数launch.launchJSStudioInFrame=true的设置,Analysis Studio,Opening Analysis Studiohttp:/server-name/Cognos8/cgi-bin/cognos.cgi?b_action=xts.run&m=portal/launch.xts&ui.gateway=/Cognos8/cgi-bin/cognos.cgi&ui.tool=AnalysisStudio&ui.object=/content&ui.action=newOpening Analysis Studio in the same browser window or framehttp:/server-name/Cognos8/cgi-bin/cognos.cgi?b_action=xts.run&m=portal/launch.xts&ui.gateway=/Cognos8/cgi-bin/cognos.cgi&ui.tool=AnalysisStudio&ui.object=/content&ui.action=new&launch.openJSStudioInFrame=trueOpening Analysis Studio to a specific packagehttp:/server-name/Cognos8/cgi-bin/cognos.cgi?b_action=xts.run&m=portal/launch.xts&ui.gateway=/Cognos8/cgi-bin/cognos.cgi&ui.tool=AnalysisStudio&ui.object=/content/packagename=Great Outdoors Company&ui.action=newViewing an Analysis Report in Analysis Studio http:/firstbi/Cognos8/cgi-bin/cognos.cgi?b_action=xts.run&m=portal/launch.xts&ui.gateway=http:/firstbi/Cognos8/cgi-bin/cognos.cgi&ui.gateway=http:/firstbi/Cognos8/cgi-bin/cognos.cgi&ui.tool=AnalysisStudio&ui.tool=AnalysisStudio&ui.object=/content/foldername=demo/foldername=Analysis/analysisname=insurance&ui.action=edit,对报表进行个性群发,使用个性群发功能一次性运行报表并对结果进行划分,分发给多个接收者。每个接收者只能查看数据的一个子集。Burst report可以通过邮件分布和/或保存到一个目录。,Group A,Group B,Group C,Canada,Revenue by Region,Japan,Revenue by Region,将报表分发到本地,在Configuration中,将Save report outputs to a file system设置为True设置环境变量 CM.OUTPUTLOCATION 存放报表的本地路径 CM.OUTPUTSCRIPT 运行的脚本文件,包括路径和文件名称定义报表 分组需要分发的字段,设置分发的KEY值定义调度器,并指定BURST报表 注意:报表分发到本地之后,由于文件名称都是系统自动产生的,需要一个外部程序处理文件名称,以使其更有意义,具体方法是通过读取XML的描述文件,取到KEY值,再修改文件名称,拷贝到其他位置。,修改全局格式变量,打开D:Cognosc8webcontentschemasGlobalReportStyles.css文件,修改相应的Class值.报表中每个对象的Class值,可以通过在ReportStudio中选中对象,议程,系统架构安装与配置系统管理安全性管理高级报表设计,安全性,Authentication 用户安全性认证,在8中设置安全性认证后,登陆系统会要求提供用户名和密码等相关认证信息。安全性认证支持:Acitve Directory、Cognos Series 7、LDAP、NTLM、SAP、Custom Java Provider等多种认证方式。Authorization 对用户访问的数据进行权限控制。8中的授权是通过用户(User)、组(Group)、角色(Role)来设置Content Store 中的对象如报表、文件夹的读、写权限。,组(Group)和角色(Role),一个用户可以属于多个组或角色,权限是并集的关系组和角色表示的是一类具有相似权限功能的用户集合组和角色在Cognos 8中具有相似的功能,角色的成员可以是用户、组、和角色,而组的成员则是用户和组只能在Cognos 8内置的namespace(Cognos)上创建组和角色如果要跨多个namespace,则需要使用组或角色在实际应用中,可以方便部署安全性,你可以把第三方安全性认证用户归属于某些组,再将定义好的组赋予Cognos内置的组或角色,实现权限控制,权限说明,Read查看对象的属性,查看静态报表等Write编辑对象的属性,报表静态报表,删除文件夹等Execute运行报表等Set Policy读取和修改对象的权限Traverse浏览目录内容,内置权限对象,Anonymous 匿名用户,当在Cognos Configuration中将匿名登陆设置为false时,此用户失效。All Authenticated Users 表示所有经过认证的用户的组,它的成员由系统自动维护,不能查看和修改。Everyone 表示所有经过认证的用户和匿名用户的组,它的成员由系统自动维护,不能查看和修改。可以使用它快速的设置默认权限。System Administrators 一个特殊的角色,这个角色下的成员一般是管理员或超级用户,它们可以访问和编辑系统中所有对象,并可以对它们进行授权。仅仅是System Administrators角色下的成员才可以编辑这个角色下的成员。System Administrators不可以为空。默认情况下,成员为Everyone。在对系统设置权限前,一定要先把Everyone替换为管理员或超级用户。,系统预先定义的角色,Consumers 可以读和执行系统中公共部分内容,如报表Query Users 与Consumers权限一样,同时可以使用Query StudioAnalysis Users 与Consumers权限一样,同时可以使用Analsysis StudioAuthors 具有同Query Users 一样的权限,同时可以使用Report StudioReport Administrators 具有管理公共文件夹内容的权限,并可以完全访问,同时可以使用Query Studio和Report StudioServer Administrators 可以管理Server、Dispatchers和JobsDirectory Administrators 可以管理Directory 下的内容,系统预先定义的角色,Metrics Administrators 可以在connection中管理Metric 包及任务Metrics Authors 可以在Metirc Studio中创建和编辑Scorecard应用Metrics Users 在Mertric Studio中可以查看Scorecard应用Portal Administrators 可以管理Portlets,包括导入和自定义Portlets,定义Portelt风格,设置portlet访问权限等。Controller Users 访问Controller基本功能Controller Administrators 完全访问Controller,并可以创建私人的Controller用户,并定义它们的访问权限,议程,系统架构安装与配置系统管理安全性管理高级报表设计,Cognos 8高级报表设计,1、JavaScript 报表应用2、条件变量、生成变量的应用3、OLAP函数介绍,1、Javascript报表应用,TIPS应用 利用HTML脚本 bbbb,将表达式拼出这样的形式Tab键 利用HTML的DIV功能计划完成情况 根据实际值与计划值,利用JS函数画出图形报表动态排序 由于Cognos 8报表支持完整的HTML报表开发技术,所以很多HTML功能可以很好的与COGNOS报表功能结合在一起,从而满足用户更为复杂的报表要求。固定表头,Tips 提示,Tab键,JS函数画图,Dynamic Sort,固定表头,2、OLAP报表钻取,Replace Expression Drill down:children(input item)input item是鼠标不同的钻取值,如下图点击United States,则 children(United States)结果如右图所示 Drill up:children(parent(input member),2、OLAP报表钻取,Replace Item Drill down:(input item)input item是鼠标不同的钻取值,如下图点击United States,则结果如右图所示 Drill up:parent(input member),2、OLAP报表钻取,Preserve 一般在钻取过程中表达式不发生变化,如TopTwo计算列如下:topCount(Country,2,Revenue),2、OLAP报表钻取,Member Sets与高级钻取设置引用Member Sets是自定义集合,使用高级钻取功能设置,必须使用Member Sets,要求:1、表1中产品大类可以选择2、从表1钻取到表2,并将所选择的产品大类传递给表23、表2中图是所选择的产品大类及其之和所构成的柱壮图,表格是所选择的产品大类下所有产品销售量在前5名的产品4、从表2中点击某个产品大类,则下面的表格变成此产品大类下销售量在前5名的产品,点击Total时,则是表1中所选择的几个产品大类销售量在前5名的产品技术点:1、表1和表2中穿透钻取设置为传递参数值2、表2中使用union函数将Total和所选择的产品大类组合在一起3、使用descendants函数取到产品大类下所有产品,使用topcount取出前5名产品4、表2图中的Total和产品大类在钻取到下面表格时规则不同,使用生成变量来对应不同的数据表格5、表2中的穿透钻取设置为替换本页面,2、OLAP报表钻取-穿透钻取应用,3、条件变量与生成变量,条件变量 条件变量是用来对数据进行预警,但在实际应用中,门限值用户往往要求自己设置,这样可以通过string2double(ParamValue(p1)来动态获得门限值参数,从而达到对数据动态预警的效果。预警的方式可以通过颜色、图片等多种方式。,3、条件变量与生成变量,生成变量 生成变量是定义报表中某个对象在什么条件下生成。利用生成变量,可以实现如动态选择报表列、动态切换图表等多种功能。,4、OLAP函数,Block FunctionsFamily、Hieracrhy、Member FunctionsRelative time functionsSet functionsTop and bottom functionsValue functions,(1)、Block Functions,_firstFromSet _firstFromSet(set_exp,numeric_exp_max,numeric_exp_overflow)如果numeric_exp_max+numeric_exp_overflow set_exp个数,则返回numeric_exp_max+numeric_exp_overflow个member,否则返回numeric_exp_max个member_remainderSet _remainderSet(member_exp,set_exp,numeric_exp)如果set_expnunmeric_exp时,则返回member_exp,否则为空,(2)Family、Hieracrhy、Member Functions,Ancestor ancestor(member,level|integer)ancestors ancestors(member,level|integer)parent parent(member)children children(member)cousin cousin(member1,member2)cousin(2005 Q 2,2004)result:2004 Q2descendants descendants(set_expr,level|beforewithmember|after)一般用来取某个成员下的第几层成员firstChild firstChild(member)firstSibling firstSibling(member)返回member的父节点的第一个子节点lastChild lastChild(member)lastSibling lastSibling(member)返回member的父节点的最后一个子节点,(2)Family、Hieracrhy、Member Functions,siblings siblings(member)返回此成员的父成员的所有子成员currentMember currentMember(hierarchy)defaultMember defaultMember(hierarchy)laglag(member,index_exp)返回此成员的前第index_exp成员,如果index_exp为负,则表示是后第index_exp成员leadlead(member,index_exp)返回此成员后第index_exp成员,负则表示前第index_exp成员member member(value_exp,string1,string2,hierarchy)nextMembernextMember(member)prevMemberprevMember(member)hierarchyhierarchy(level|member|set_exp)levellevel(member)返回此member层所有成员levelslevels(hierarchy,index)返回此hierarchy下离root第index层所有成员rootMemebersrootMembers(hierarchy),(3)Relative time functions,closingPeriodclosingPeriod(level,member)指定某一层次或某一成员的子在某一层次上的最后一个成员lastPeriodslastPeriods(integer_exp,member)返回member成员前integer_exp个成员,如果为负,则返回后integer_exp个成员(包括本身)openingPeriodopeningPeriod(level,member)同closingPeriod,返回的是第一个成员parallelPeriod parallelPeriod(level,int_exp,member)类似于cousin,常用于求同期数.如parallelPeriod(great_outdoors_company.Years.Years.Year,1,2005/Jan)则返回2004/JanperiodsToDate periodsToDate(level,member)一般用于求累计数,如年初到member的累计,季初到现在的累计等Level指定是年、季度或月初,member则指定到目前为止(包括本身).如:periodsToDate(great_outdoors_company.Years.Years.Year,2004/Mar),则返回:2004/Jan、2004/Feb、2004/Mar,(4)Set functions,generategenerate(set_exp1,set_exp2,ALL)根据set_exp1求set_exp2的值.如 generate(Product line,topCount(descendants(currentMember(great_outdoors_company.Products.Products),great_outdoors_company.Products.Products.Product name),2,Revenue)nestedSetnestedSet(set_expr1,set_expr2)根据set_expr1的上下文关系求set_expr2值nestedSet(members(Product line),topCount(descendants(currentMember(great_outdoors_company.Products.Products),great_outdoors_company.Products.Products.Product name),2,Revenue)filterfilter(set_exp,boolean_exp)itemitem(set_exp,index)返回第index个成员(从开始)setset(member,member)headhead(set_exp,index_exp)返回前index_exp个成员默认为tailtail(set_exp,index_exp)与head相对应,取后index_exp个成员subsetsubset(set_exp,index_exp1,index_exp2)membersmembers(hierarchy|level),(4)Set functions,unionunion(set_exp1,set_exp2,ALL)all参数表示重复值保留intersectintersect(set_exp1,set_exp2,ALL)返回两个set中都存在的member。all参数表示重复值保留 exceptexcept(set_exp1,set_exp2,ALL)返回不在set_exp2中的set_exp1中的成员orderorder(set_exp,value_exp,A