前端图表如果处理大量数据该怎么办

作者&投稿:吴善 (若有异议请与网页底部的电邮联系)
给前端传了1万条数据,前端怎么处理才不至于页面卡顿~

前端只有“玩命”处理才能不卡顿……
这个负担是由后端造成的,什么要前端去承担呢?用户不可能一次浏览一万条数据,那么就完全应该分页处理。每次只返回几十条数据,大家是不是都轻松了?

使用遍历+json的方法轻松解决。如果是还需要创建标签,则搭配document.createElement使用。

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

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

(1)维度id,维度层次id等关键减缩字段建立索引建立、维护。
(2)根据数据量的大小,按时间等进行分区优化。
(3)高速缓冲表MQT的使用
(4)表空间、缓冲池设置等
(5)数据库性能优化

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

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

2.2Cognos自带tomcat配置调优
(1)可修改TOMCAT配置文件CRN_ROOT\tomcat.\conf\server.xml。其参数集中在行:
可以对maxProcessors(最大进程数)/AcceptCount(最大连接数) ConnectionTimeout(连接超时)进行修改
(2)文件路径:CRN_ROOT\tomcat.\conf\web.xml
可以对session-timeout进行修改.

2.3Cognos sever配置文件优化
2.3.1 reportservice.xml优化
文件路径:CRN_ROOT\ webapps\p2pd\WEB-INF\services\ reportservice.xml
注:修改文件后,重启服务后配置生效。
包括以下参数 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请求等待同步时间)

2.3.2 batchreportservice.xml
文件路径:CRN_ROOT\ webapps\p2pd\WEB-INF\services\ batchreportservice.xml
注:修改文件后,重启服务后配置生效。
包括以下参数 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请求等待同步时间)

2.3.3 CQEConfig.xml
主要是与数据库参数设置,文件路径:CRN_ROOT\configuration\ CQEConfig.xml.sample
注:将CQEConfig.xml.sample文件名修改为CQEConfig.xml后,重启服务后配置生效。
可以修改以下参数:Timeout(应用数据库连接超时设置) PoolSize(应用数据库连接池最大连接数设置) queryReuse(查询缓冲设置)
2013-07-08 0
分享
答案对人有帮助,有参考价值1

曾力 - Cognos讲师、Cognos独立顾问、数据仓库架构师 2013-07-08 回答
2.3.4 ppds_cfg.xml
主要进行缓存和日志参数设置,文件路径:\cognos\c8\configuration\ ppds_cfg.xml
注:重启服务后配置生效。
可以修改以下参数:ReadCacheSize(可减少用户访问时服务器的磁盘IO。提高访问速度。) pcQueryLogFile(建议生产环境关闭该日志的跟踪,一般默认也是关闭状态)

2.4 Cognos content store优化
2.4.1优化内容库连接服务
内容库最好外配为db2 oracle等数据库,不要用自带的derby.因为项目中的日志信息会非常多,严重影响内容库的效率。
Cognos Administration,在系统下选择选择对应的服务,选择ContentManagerService的属性,设置相应的连接参数信息。

2.4.2日志优化
适当开启各个cognos服务的日志级别,越高级的级别对应更详细,更明确的日志,但也会影响整个系统的效率。
这是一把双刃剑,需要适当调整。日志级别设置得越高,就越降低系统性能。通常情况下,您可以将级别设置为
“最小”或“基本”来收集错误,或设置为“请求”来收集错误和警告。

2.5提高访问数据库速度
Cognos和数据库间参数在cer\bin\cogdm.ini文件中,(根据版本不同是安装目录的数字,根据连接的数据库不同,是对应数据库名称的关键字)
以oracle数据库为例,参数在cogdmor.ini文件中,打开这个文件查找字符串Fetch Number of Rows=去掉这行前面的分号,将10改成2000;
这样这行就成了Fetch Number of Rows=2000,表示是每次从数据库取2000条数据。其他数据库基本上都有类似的配置。用以提高从数据库中提取数据的速度。

2.6加大缓存
cer\bin\Cer.ini(*根据版本不同是安装目录的数字):
SortMemory=5120
(这里 SortMemory 单位是 2kbytes,5120代表 2k x 5120 = 10M)(技巧:一般 SortMemory 取空闲内存的十分之一到八分之一大小)

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

2.8分布式部署
分布式部署可以大大提升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 回答
3.1 FM建模优化
3.1.1手写SQL定制查询主题
右键点击查询主题的菜单项Edit Definition…可以进入SQL语句编写框,调整查询主题的SQL语句。默认情况下,这里的SQL语句为Cognos SQL类型。如果需要编写应用数据库可以直接运行的本地SQL需要将这里的SQL类型进行设置。点击右上方的Options按钮,选择SQL Settings标签页,选择SQL Type为Native。这个时候,我们手写SQL就非常注重这个SQL的优化,尽量避免SELECT *,用EXISTS替代IN,多使用DECODE来进行判断,条件语句注意点等常用SQL优化策略,编写对应的SQL.

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

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

3.1.4Edit 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 回答
3.2 RS报表调优
3.2.1报表函数的使用
在报表函数的使用上,尽可能使用应用数据库能够解析的本地数据库函数,函数列表中的通用函数,在处理时会将函数放在报表服务器进行运算,从而增大了报表服务器的性能开销。

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

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

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

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

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

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

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

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

3.3.8使用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属性设置。

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


EPLAN端子图表,设备连接图表等
这个是软件自带的,导出报表时有多种格式可以选择

什么原则强调了调查和处理科研不端
内容解读 该规则明确,科研诚信案件是指根据举报或其他相关线索,对涉嫌违背科研诚信要求的行为开展调查并作出处理的案件。违背科研诚信要求的行为,是指在科学研究及相关活动中发生的违反科学研究行为准则与规范的行为,包括:抄袭、剽窃、侵占他人研究成果或项目申请书。编造研究过程,伪造、篡改研究数据、图表...

关于科研不端行为的处理原则
当科研不端行为被举报时,承担相关工作的研究机构、学术期刊、专业组织和机构应当采取行动,严肃处理,而不是回避问题,对学术不端行为宽容。科研不端行为包括但不限于以下几种情况:1. 抄袭、剽窃和侵占他人研究成果。2. 编造研究过程,伪造或篡改研究数据、图表和结论。3. 虚构同行评审专家及评审意见。...

uni问题:APP端Echarts图表不显示
结果:APP端图表成功显示 THERE 知识总结 总结一:问题复盘 uni中非web端运行在V8引擎中,不支持web端的window、document、navigator等浏览器的API,只支持标准ES语法。不能直接通过document操作dom,只有借助renderjs才能在视图层操作dom,从而进行Echarts实例初始化。总结二:renderjs简介 总结三:Echarts示例...

企业日报周报月报怎么解决?教你如何一秒制作日报月报
个性化设计:根据层级设计不同报表,利用图表直观展示生产健康状况。报表分发:使用多平台展示,如PC端、移动端,甚至电视看板,同时支持定时自动发送。通过以上步骤,你可以全程掌握数据采集、报表制作和分发流程,告别Excel的烦恼,迈向高效办公。现在就试试FineReport,让你的日报、周报、月报制作如行云流水般...

axure专业级图表\/地图可视化元件库Axhub Charts Pro
图表库一览 Antv G2: 新增数据轮播、延迟加载、滑块交互、中继器交互等Antv L7 地理可视化:新增流向图、3D柱状图、深圳点图Antv G6 关系图表:紧凑树、桑基图、环形弧线图Antv F2 移动端图表:专为移动设备设计的图表,数据可视化轻松上手ECharts 动态图表:包括迁徙地图、热点地图、动态数据渐变等...

制造业如何进行质量数据分析?教程,内含大量分析图表!
4、分析报表通过大屏、PC端和移动端进行展示,并以一系列标准格式自动分发报表。5、为客户提供企业BI项目整体规划的咨询方案:质量分析及预测、运营分析及预测、高层管理驾驶舱。四、方案是如何落地实施的 1、工序质量分析-指标分析 实现合格率、成品率、成功率、产出合格重量、产出量、投入量、缺陷重量、...

如何进行大数据分析及处理?
另外一个方面也是因为有这些数据挖掘的算法才能更快速的处理大数据,如果一个算法得花上好几年才能得出结论,那大数据的价值也就无从说起了。3. 预测性分析。大数据分析最终要的应用领域之一就是预测性分析,从大数据中挖掘出特点,通过科学的建立模型,之后便可以通过模型带入新的数据,从而预测未来的数据...

河道淤泥清理方案
一般情况下容易将大量河水吸出, 造成后续泥浆处理工作量的增加。 同时, 我国河道内垃圾成分复杂、 大小不一, 容易造成吸泥口堵塞的情况发生。 c. 普通绞吸式清淤: 普通绞吸式清淤主要由绞吸式挖泥船完成。 绞吸式挖泥船由浮体、 铰绞刀、 上吸管、 下吸管泵、 动力等组成。 它利用装在船前的桥梁前缘绞刀的...

为什么eplan端子图表中没有显示接线式跳线?
可能是因为你的端子图表的表格内没有添加属性“端子 \/ 鞍型跳线、插入式跳线和接线式跳线的图形”。所以在生成端子图表时没有显示接线式跳线。

灵武市13942981624: 前端数据不断涌入,后台数据处理较慢,怎么处理这个瓶颈 -
敛蒲天罗: 升级服务器,优化后端代码,优化逻辑. 使用队列机制

灵武市13942981624: 前端使用extjs的gridpanel显示数据,但是数据量大查询时间长时gridpanel中数据就显示不出来了 -
敛蒲天罗: EXTJS 使用ajax回调后台数据 它的请求是有一个默认的超时时间的 超过这个时间 extjs就不会请求数据了 解决方法:优化SQL,分页查询,手动延长超时时间

灵武市13942981624: EXCEL 数据处理处理中数据太多一个图表放不开 如何筛选数据 -
敛蒲天罗: 1.选中数据区域,选择【插入】-【图表】,选择【柱形图】. 2.插入后的柱形图如下,蓝色的系列柱子为【数量】,横轴为【姓名】. 3.这时,在原始数据下面增加如下图黄色区域数据,图表不会自动更新. 4.动态图表解决方案: 选择...

灵武市13942981624: 从前端往服务端传送的数据量大,应该怎么处理 -
敛蒲天罗: EXTJS 使用ajax回调后台数据它的请求是有一个默认的超时时间的超过这个时间 extjs就不会请求数据了解决方法:优化SQL,分页查询,手动延长超时时间

灵武市13942981624: 前端如何做好数据容错 -
敛蒲天罗: 1、数据检查点2、记录数据的更新 我们面向的是大规模数据分析,数据检查点操作成本很高:需要通过数据中心的网络连接在机器之间复制庞大的数据集,而网络带宽往往比内存带宽低得多,同时还需要消耗更多的存储资源(在内存中复制数据可以减少需要缓存的数据量,而存储到磁盘则会降低应用程序速度).所以,我们选择记录更新的方式.但是,如果更新太多,记录更新成本也不低.因此,RDD只支持粗粒度转换,即在大量记录上执行的单个操作.将创建RDD的一系列转换记录下来(即Lineage),以便恢复丢失的分区.

灵武市13942981624: dataTables ajax重绘,重新传参,参数很多 -
敛蒲天罗: dataTables是一种很好用前端表格显示库.当加载大量数据时,可以用Ajax 获取数据来提高效率,增速网页加载速率.下面以一个例子作示范. 首先,需要下载jquery以及dataTables库.这里使用的是版本是jQuery v1.11.3和DataTables 1.10.9.

灵武市13942981624: informix中的数据表写满后该如何处理 -
敛蒲天罗: 1)删除无用的记录2)增加数据库文件的大小

灵武市13942981624: 处理大数据量时后台如何写多线程?一个线程直接返回前端,一个线程继续处理业务逻辑?求代码谢谢 -
敛蒲天罗: class out implements Runnable { private int ticket = 100; public synchronized void run() { while (true) { if (ticket>o) { System.out.println(Thread.currentThread().getName()+"="+"sale..."+ticket--);//若改成this.getName();不行因为接口里没有...

灵武市13942981624: 目前大量的Web图表开发采用前端组件,类似eChart,前端组件要求数据必须传输到前端,此时数据如何保密? -
敛蒲天罗: 通过接口,post请求

灵武市13942981624: 我想做个图表,但表内需要覆盖很多问题应该怎么做? -
敛蒲天罗: &quot用EXCEL就可以做,首先在表一中编辑好数据后,根据要显示的变量选定相应的数据在表二中插入图表就行(\!(如有需要可以联系本人: yxhkjj@163;选定做为新工作表插入\"),然后你在表一中所做的任意改动就会在表二中动态显示出来.如果你是让他显示在网页上,就只能用动态网页技术来实现了

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网