如何处理大量数据并发 *** 作

如何处理大量数据并发 *** 作,第1张

处理大量数据并发 *** 作可以采用如下几种方法:

1使用缓存:使用程序直接保存到内存中。或者使用缓存框架: 用一个特定的类型值来保存,以区别空数据和未缓存的两种状态。

2数据库优化:表结构优化;SQL语句优化,语法优化和处理逻辑优化;分区;分表;索引优化;使用存储过程代替直接 *** 作。

3分离活跃数据:可以分为活跃用户和不活跃用户。

4批量读取和延迟修改: 高并发情况可以将多个查询请求合并到一个。高并发且频繁修改的可以暂存缓存中。

5读写分离: 数据库服务器配置多个,配置主从数据库。写用主数据库,读用从数据库。

6分布式数据库: 将不同的表存放到不同的数据库中,然后再放到不同的服务器中。

7NoSql和Hadoop: NoSql,not only SQL。没有关系型数据库那么多限制,比较灵活高效。Hadoop,将一个表中的数据分层多块,保存到多个节点(分布式)。每一块数据都有多个节点保存(集群)。集群可以并行处理相同的数据,还可以保证数据的完整性。

:

大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

在维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的《大数据时代》中大数据指不用随机分析法(抽样调查)这样捷径,而采用所有数据进行分析处理。大数据的5V特点(IBM提出):Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。

参考资料:网页链接

浅谈一下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,比这个方便

首先我们要了解Java语言和Linux *** 作系统,这两个是学习大数据的基础,学习的顺序不分前后。

大数据

Java :只要了解一些基础即可,做大数据不需要很深的Java 技术,学java SE 就相当于有学习大数据基础。

Linux:因为大数据相关软件都是在Linux上运行的,所以Linux要学习的扎实一些,学好Linux对你快速掌握大数据相关技术会有很大的帮助,能让你更好的理解hadoop、hive、hbase、spark等大数据软件的运行环境和网络环境配置,能少踩很多坑,学会shell就能看懂脚本这样能更容易理解和配置大数据集群。还能让你对以后新出的大数据技术学习起来更快。

Hadoop:这是现在流行的大数据处理平台几乎已经成为大数据的代名词,所以这个是必学的。Hadoop里面包括几个组件HDFS、MapReduce和YARN,HDFS是存储数据的地方就像我们电脑的硬盘一样文件都存储在这个上面,MapReduce是对数据进行处理计算的,它有个特点就是不管多大的数据只要给它时间它就能把数据跑完,但是时间可能不是很快所以它叫数据的批处理。

Zookeeper:这是个万金油,安装Hadoop的HA的时候就会用到它,以后的Hbase也会用到它。它一般用来存放一些相互协作的信息,这些信息比较小一般不会超过1M,都是使用它的软件对它有依赖,对于我们个人来讲只需要把它安装正确,让它正常的run起来就可以了。

Mysql:我们学习完大数据的处理了,接下来学习学习小数据的处理工具mysql数据库,因为一会装hive的时候要用到,mysql需要掌握到什么层度那你能在Linux上把它安装好,运行起来,会配置简单的权限,修改root的密码,创建数据库。这里主要的是学习SQL的语法,因为hive的语法和这个非常相似。

Sqoop:这个是用于把Mysql里的数据导入到Hadoop里的。当然你也可以不用这个,直接把Mysql数据表导出成文件再放到HDFS上也是一样的,当然生产环境中使用要注意Mysql的压力。

Hive:这个东西对于会SQL语法的来说就是神器,它能让你处理大数据变的很简单,不会再费劲的编写MapReduce程序。有的人说Pig那它和Pig差不多掌握一个就可以了。

Oozie:既然学会Hive了,我相信你一定需要这个东西,它可以帮你管理你的Hive或者MapReduce、Spark脚本,还能检查你的程序是否执行正确,出错了给你发报警并能帮你重试程序,最重要的是还能帮你配置任务的依赖关系。我相信你一定会喜欢上它的,不然你看着那一大堆脚本,和密密麻麻的crond是不是有种想屎的感觉。

Hbase:这是Hadoop生态体系中的NOSQL数据库,他的数据是按照key和value的形式存储的并且key是唯一的,所以它能用来做数据的排重,它与MYSQL相比能存储的数据量大很多。所以他常被用于大数据处理完成之后的存储目的地。

Kafka:这是个比较好用的队列工具,队列是干吗的排队买票你知道不数据多了同样也需要排队处理,这样与你协作的其它同学不会叫起来,你干吗给我这么多的数据(比如好几百G的文件)我怎么处理得过来,你别怪他因为他不是搞大数据的,你可以跟他讲我把数据放在队列里你使用的时候一个个拿,这样他就不在抱怨了马上灰流流的去优化他的程序去了,因为处理不过来就是他的事情。而不是你给的问题。当然我们也可以利用这个工具来做线上实时数据的入库或入HDFS,这时你可以与一个叫Flume的工具配合使用,它是专门用来提供对数据进行简单处理,并写到各种数据接受方(比如Kafka)的。

Spark:它是用来弥补基于MapReduce处理数据速度上的缺点,它的特点是把数据装载到内存中计算而不是去读慢的要死进化还特别慢的硬盘。特别适合做迭代运算,所以算法流们特别稀饭它。它是用scala编写的。Java语言或者Scala都可以 *** 作它,因为它们都是用JVM的。

随着互联网行业的不断发展。很多人想要从事互联网方面的工作,现在非常流行的就是大数据,你了解大数据是做什么的吗?学习大数据需要掌握哪些知识?大数据在未来有很大的发展机会,每个岗位需要具备的能力是不同的。下面天通苑电脑培训为大家介绍学习大数据需要掌握的知识。

大数据业务流程有四个基本步骤,即业务理解,数据准备,数据挖掘和分析应用程序。该过程分为三个功能区:大数据系统开发,整个 *** 作系统的构建和维护,数据准备,平台和工具开发。大数据挖掘,负责关键模型应用和研究工作。大数据分析应用程序:两者都是外部需求的访问者也是解决方案的输出,并且天通苑IT培训发现在许多情况下还将承担整体协调的作用。

大数据提取转换和加载过程(ETL)是大数据的重要处理环节。提取是从业务数据库中提取数据。转换是根据业务逻辑规则处理数据的过程。负载是将数据加载到数据仓库的过程中。

数据提取工具实现了db到hdfs的数据导入功能,并提供了高效的分布式并行处理能力。天通苑IT培训发现可以使用数据库分区,字段分区和基于分页的并行批处理将db数据提取到hdfs文件系统中,从而可以有效地按字段解析分区数据。

数据收集可以是历史数据采集或实时数据采集。它可以收集存储在数据库中的结构化数据,或收集非结构化数据,如文本,,图像,音频,视频等。结构变化较大的半结构化数据,天通苑电脑培训认为可以在数据后直接存储在流量状态分析平台上收集完成。

传统数据库处理大数据很困难吧,不建议使用传统数据库来处理大数据。

建议研究下,Hadoop,Hive等,可处理大数据。

如果有预算,可以使用一些商业大数据产品,国内的譬如永洪科技的大数据BI产品,不仅能高性能处理大数据,还可做数据分析。

当然如果是简单的查询,传统数据库如果做好索引,可能可以提高性能。

话说本来我的电脑有个2000的数据库,去年我在那个电脑上新装了一个2005的数据库。前不久我买了台新电脑,装了数据库2008 将在旧电脑上的一个数据库附加到了2008上面。做完项目,将数据库传到空间时,空间数据库是2000的,报错说我的数据库是2005的 现在我想把我的数据库转成2000,但是我的2008数据库的脚本向导里面没有转成2000这个选项,2005的版本又附加不上去。 关于这个问题,上网请教了网友,真实人多力量大,给出了一系列答案,下面就为大家整理的内容,希望可以帮助大家解决SQLServer数据库从高版本降级到低版本的问题。 网友DBA_Huangzj 给出的解决方法: 步骤1: 步骤2: 步骤3:把脚本拖到2000的查询分析器界面,然后点运行,2000以前的我不清楚,但是从2000开始的所有SQLServer版本F5都是运行的意思你不会没用过SQLServer吧?生成完之后 。 步骤4:按照我文章中的那个步骤的截图打开导入导出工具,然后一直点下去,注意在目标服务器那里填写2000的那个实例名,然后到这个地方全选,再点下一步。 步骤5:点完成。 然后基本上就完事了。 但是这里注意,因为你从2008直接降到2000,跨度很大,而且2000~2005是个大跨越,多处很多兼容性的问题,所以不排除你在生成脚本及导数据的时候会存在报错(并且可能性比较大!),如果有,那你要手动去除那些报错的,然后记下来,继续运行不报错的,最后再手动创建那个报错的。 补充一句,比较稳妥的办法是在生成脚本时,先生成表的,也就是在步骤2中的选择对象那里选表,然后生成脚本,成功了,再生成其他比如存储过程等。 以上就是本文的全部内容,谢谢网友的分享,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

以上就是关于如何处理大量数据并发 *** 作全部的内容,包括:如何处理大量数据并发 *** 作、cognos怎么处理大数据、大数据如何入门等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/sjk/10164408.html

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

发表评论

登录后才能评论

评论列表(0条)

保存