cognos怎么处理大数据

cognos怎么处理大数据,第1张

浅谈一下Cognos处理大数据的思路,仅针对1021以下的版本,对于1021当中引入的hadloop等分布式数据仓库等不做介绍。我们主要从一个一般中等项目当中,用怎样的思路来优化我们的查询。

我们主要从3个思路来思考大数据的处理

一、数据库层次

现在主流的Cognos项目,主要的开发模式还是基于rolap的dmr报表建模。因此,数据库的优化就显得由为重要。主要通过以下几个方面优化我们的数据库:

(1)维度id,维度层次id等关键减缩字段建立索引建立、维护。

(2)根据数据量的大小,按时间等进行分区优化。

(3)高速缓冲表MQT的使用

(4)表空间、缓冲池设置等

(5)数据库性能优化

二、Cognos Server优化

Cognos优化包括对配置文件的优化,集群的搭建,服务和日志的开启等基于cognos 软件安装,配置的优化,主要包括以下几个方面:

21 apache 配置优化

Timeout(超时)/MaxKeepAliveRequests(最大的请求数)/KeepAliveTimeout(请求超时)的优化配置

22Cognos自带tomcat配置调优

(1)可修改TOMCAT配置文件CRN_ROOT\tomcat\conf\serverxml。其参数集中在行:

可以对maxProcessors(最大进程数)/AcceptCount(最大连接数) ConnectionTimeout(连接超时)进行修改

(2)文件路径:CRN_ROOT\tomcat\conf\webxml

可以对session-timeout进行修改

23Cognos sever配置文件优化

231 reportservicexml优化

文件路径:CRN_ROOT\ webapps\p2pd\WEB-INF\services\ reportservicexml

注:修改文件后,重启服务后配置生效。

包括以下参数 max_process(交互报表处理进程数,和cpu有关) inger_process(交互报表初始化进程数,和cpu优关)

max_non_affine_connections_per_process(交互报表所占线程数) idle_process_check_interval_ms(空闲检测时间)

queue_time_limit_ms(报表服务队列时间限制) async_wait_timeout_ms(Dispatcher请求等待同步时间)

232 batchreportservicexml

文件路径:CRN_ROOT\ webapps\p2pd\WEB-INF\services\ batchreportservicexml

注:修改文件后,重启服务后配置生效。

包括以下参数 max_process(服务批量报表处理所占进程数) linger_process(服务批量报表处理初始化进程数)

max_non_affine_connections_per_process(服务批量报表处理所占线程数) idle_process_check_interval_ms(空闲进程检测时间间隔)

idle_process_max_idle_ticks(空闲进程检测标记) queue_time_limit_ms(批量报表处理排队时间限制) async_wait_timeout_ms(Dispatcher请求等待同步时间)

233 CQEConfigxml

主要是与数据库参数设置,文件路径:CRN_ROOT\configuration\ CQEConfigxmlsample

注:将CQEConfigxmlsample文件名修改为CQEConfigxml后,重启服务后配置生效。

可以修改以下参数:Timeout(应用数据库连接超时设置) PoolSize(应用数据库连接池最大连接数设置) queryReuse(查询缓冲设置)

2013-07-08 0

分享

答案对人有帮助,有参考价值1

曾力 - Cognos讲师、Cognos独立顾问、数据仓库架构师 2013-07-08 回答

234 ppds_cfgxml

主要进行缓存和日志参数设置,文件路径:\cognos\c8\configuration\ ppds_cfgxml

注:重启服务后配置生效。

可以修改以下参数:ReadCacheSize(可减少用户访问时服务器的磁盘IO。提高访问速度。) pcQueryLogFile(建议生产环境关闭该日志的跟踪,一般默认也是关闭状态)

24 Cognos content store优化

241优化内容库连接服务

内容库最好外配为db2 oracle等数据库,不要用自带的derby因为项目中的日志信息会非常多,严重影响内容库的效率。

Cognos Administration,在系统下选择选择对应的服务,选择ContentManagerService的属性,设置相应的连接参数信息。

242日志优化

适当开启各个cognos服务的日志级别,越高级的级别对应更详细,更明确的日志,但也会影响整个系统的效率。

这是一把双刃剑,需要适当调整。日志级别设置得越高,就越降低系统性能。通常情况下,您可以将级别设置为

“最小”或“基本”来收集错误,或设置为“请求”来收集错误和警告。

25提高访问数据库速度

Cognos和数据库间参数在cer\bin\cogdmini文件中,(根据版本不同是安装目录的数字,根据连接的数据库不同,是对应数据库名称的关键字)

以oracle数据库为例,参数在cogdmorini文件中,打开这个文件查找字符串Fetch Number of Rows=去掉这行前面的分号,将10改成2000;

这样这行就成了Fetch Number of Rows=2000,表示是每次从数据库取2000条数据。其他数据库基本上都有类似的配置。用以提高从数据库中提取数据的速度。

26加大缓存

cer\bin\Cerini(根据版本不同是安装目录的数字):

SortMemory=5120

(这里 SortMemory 单位是 2kbytes,5120代表 2k x 5120 = 10M)(技巧:一般 SortMemory 取空闲内存的十分之一到八分之一大小)

27修改cognos configuration中的参数来优化

在cognos configuration中有很多参数可以优化来提高整体软件的运行效率,比如增加内存、增加查询缓存

28分布式部署

分布式部署可以大大提升Cognos服务器的负载能力,同时容错保护功能可以使服务器更为稳定的运行,很好的支持大用户量的并发使用。

2013-07-08 0

答案对人有帮助,有参考价值1

曾力 - Cognos讲师、Cognos独立顾问、数据仓库架构师 2013-07-08 回答

3报表设计优化

Cognos报表作为一个工具,在非cube模式下,最终我们执行报表查询的时候,我们的报表发送到数据库进行查询的本质还是sql,所以,在我们制作一张报表的时候,我们要尽可能的利用fm,rs当中的功能,优化报表最终执行生成的SQL实现整个报表的优化。而CUBE模式下,我们更多要考虑配置、存放和数据库大小所造成的影响,下面我会细细说来。

2013-07-08 0

答案对人有帮助,有参考价值1

曾力 - Cognos讲师、Cognos独立顾问、数据仓库架构师 2013-07-08 回答

31 FM建模优化

311手写SQL定制查询主题

右键点击查询主题的菜单项Edit Definition…可以进入SQL语句编写框,调整查询主题的SQL语句。默认情况下,这里的SQL语句为Cognos SQL类型。如果需要编写应用数据库可以直接运行的本地SQL需要将这里的SQL类型进行设置。点击右上方的Options按钮,选择SQL Settings标签页,选择SQL Type为Native。这个时候,我们手写SQL就非常注重这个SQL的优化,尽量避免SELECT ,用EXISTS替代IN,多使用DECODE来进行判断,条件语句注意点等常用SQL优化策略,编写对应的SQL

312尽量使用特定数据的数据库函数

在菜单项Actions中选择Specify Package Function List…指定报表定制中可以使用的数据库函数列表。将除应用数据库意外的其他数据库类型从Selected function sets中选到Available function sets中,尽量使用特定数据库的自带函数可以提高查询效率。

313表关联设定

在建立表关联尽量避免使用外关联关系(包括左外关联、右外关联、全外关联)。外关联的使用会使数据库的查询压力骤增,从而影响前端报表的生成。在星型结构、雪花型结构的数据仓库模型中,尽量按照一对一、一对多的关联关系设定维表与实事表之间的关联,Cognos Server会依照这里的关联关系自动优化提交给数据库的SQL语句。如果关联关系中出现了环状连接关系,可以通过别名表或是快捷键的方式解决环状连接问题

314Edit Governors查询性能设置

在菜单项Project中选择Edit Governors,可以设置查询的查询性能

Report table limits 该属性设置报表中运行SQL所涉及的TABLE数量

Data retrieval limits 该属性设置报表中运行SQL返回结果的数量

Query execution time limits 该属性设置报表中运行SQL的执行时间

Large text items limit 该属性设置报表中运行SQL返回大文字块的字符数量限制

2013-07-08 0

答案对人有帮助,有参考价值1

曾力 - Cognos讲师、Cognos独立顾问、数据仓库架构师 2013-07-08 回答

32 RS报表调优

321报表函数的使用

在报表函数的使用上,尽可能使用应用数据库能够解析的本地数据库函数,函数列表中的通用函数,在处理时会将函数放在报表服务器进行运算,从而增大了报表服务器的性能开销。

322 观察查询的SQL

我们选择查询页面,GENERATE SQL/MDX观察这个报表生成的SQL并进行不断优化,

33332 RS报表调优

321报表函数的使用

在报表函数的使用上,尽可能使用应用数据库能够解析的本地数据库函数,函数列表中的通用函数,在处理时会将函数放在报表服务器进行运算,从而增大了报表服务器的性能开销。

322 观察查询的SQL

我们选择查询页面,GENERATE SQL/MDX观察这个报表生成的SQL并进行不断优化,

333查询字段、查询表顺序调整

根据数据库的优化策略,可能需要将查询字段的顺序进行调整,可以在Data Items窗口中进行设置。查询SQL语句中,From关键字后面的表顺序是按照select关键字后出现的字段顺序进行设置的。在为表顺序进行设置时,属性为Identifier或Attribute的字段比属性为Fact的字段在为表排序时的优先级要高,即,先以Identifier、Attribute字段的出现顺序为表进行排序,如果没有上述两类字段,才以Fact字段的出现顺序为表进行排序。

334聚合前后设置过滤条件

将过滤条件的Application属性设置为After aggregation或Before aggregation可以调整过滤条件在聚合前或是聚合后生效。After aggregation生成过滤条件的SQL语句使用的是关键字having,而Before aggregation生成过滤条件的SQL语句使用的是关键字where。

335取消报表自动分组提高明细报表查询速度

如果报表要展现明细数据,不想使用任何汇总,我们可以到此报表对应的查询中将自动分组属性定义为否。修改地方:对象的属性Auto Group & Summarize可以设置当前SQL语句的查询中是否加入distinct、sum、group by这样的关键字。默认情况下,该属性设置为Yes,可以根据查询情况关掉此开关项,减少SQL语句的复杂度。

336自动排序设置

在Query的Auto-sort属性中可以为查询设置是否自动排序。如果选择是,则会在生成的SQL语句中自动加入Order By关键字,排序字段将自动根据数据项的属性进行设置(如果查询字段的usage属性为Attribute、Identifier则排序,如果为Fact则不排序);如果选择否、则不排序;如果选择最小,则根据数据项的排序属性进行排序设置。默认值为最小。

337报表Processing设置

在Query的Processing属性中可以为查询设置SQL的处理设置。Cognos Report Studio会将报表的所有设置首先转换为Cognos SQL提交给报表服务器,服务器在进行必要处理后,会将SQL语句转换为应用数据库本地执行的SQL语句,进行数据库处理。为提高报表的处理速度,要尽可能的将报表的处理运算放在数据库进行,以保证其运行速度。将该属性设置为Database only会将报表页面生成的Cognos SQL不经报表服务器处理全部转换为数据库能够执行的本地数据库SQL,如果将该属性设置为Limited Local,则将报表页面生成的Cognos SQL先进行必要的报表服务器运算,然后再将剩余的部分提交给数据库进行本地SQL的处理。默认值为Framework中为Datasource对象的设置的queryProcessing属性。

338使用With子句

在Query的Use SQL With Clause属性中可以为查询设置是否使用With子句。部分数据库例如Oracle支持With关键字,当查询中嵌套子查询时,可以通过With子句的使用,减轻报表服务器对Cognos SQL的处理,从而提升报表的运行性能。如果将该属性设置为Yes,则允许使用With关键字,查询中生成的Native SQL将出现With子句;如果将该属性设置为No,虽然拒绝使用With关键字。默认值为Framework中Edit Governors下的Use WITH clause when generating SQL属性设置。

339报表服务器本地缓存设置

在Query的Use Local Cache属性中可以为查询设置是否使用本地缓存。如果将该属性设置为Yes,则启用服务器的本地缓存,服务器将为查询结果保存在session中,当用户在浏览器内再次打开同一张报表时,查询结果将取自缓存,从而减轻了数据库的负载压力;如果将该属性设置为No,则禁用服务器的本地缓存,查询结果全部取自数据库的实时数据。默认值为Framework中Edit Governors下的Allow usage of local cache属性设置。

我用的是finereport,比这个方便

在逻辑层里面,建维度

建一个产品维度,一级是产品系列,二级是产品类型,三级是产品,

地区维度,一级省,二级市,三级县。

在维度里面指出维度列对应的表的字段就可以了。然后在做报表的时候只要托维度就可已了。

以上就是关于cognos怎么处理大数据全部的内容,包括:cognos怎么处理大数据、关于cognos报表的问题、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10202283.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存