我的编程空间,编程开发者的网络收藏夹
学习永远不晚

大数据分组怎样才会更快

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

大数据分组怎样才会更快

大数据分组怎样才会更快

分组是数据库的常见运算,无论数据如何准备,通常都需要将所有数据遍历。建立索引这时是不起作用的,存储格式才是决定遍历效率的主要因素。数据库中数据的存放虽然是二进制格式的,但普遍IO性能差,库内遍历快,外部取数都很慢。

下面用Oracle来举个例子,数据如下:

ORDERID        CLIENT SELLERID         AMOUNT       ORDERDATE NOTE

1          287     47       5825   2013-05-31   gafcaghafdgie f ci…

2          89       22       8681   2013-05-04   gafcaghafdgie f ci…

3          47       67       7702   2009-11-22   gafcaghafdgie f ci…

4          76       85       8717   2011-12-13   gafcaghafdgie f ci…

5          307     81       8003   2008-06-01   gafcaghafdgie f ci…

6          366     39       6948   2009-09-25   gafcaghafdgie f ci…

7          295     8          1419   2013-11-11   gafcaghafdgie f ci…

8          496     35       6018   2011-02-18   gafcaghafdgie f ci…

9          273     37       9255   2011-05-04   gafcaghafdgie f ci…

10       212     0          2155   2009-03-22   gafcaghafdgie f ci…

实际数据量已经超过了数据库的最大内存(数据总量为 25G,Oracle 可用的最大内存为 12G)。使用OracleParallel Execution来完成分组汇总,SQL大概这样:

select client,sellerid,count(orderid),sum(amount) from orders group by client,sellerid

这个SQL执行耗时:210秒。

同样的环境、同样的数据,用集算器来处理,耗时约65秒,代码如下:

  A
1 =$(esProcOdbc) select client,sellerid,count(orderid),sum(amount) from orders.btx group by client,sellerid

后者速度快是因为使用了集算器集文件(二进制文件)作为数据存储,正如之前提到的数据存储格式直接影响遍历的性能,关于存储格式、特点、性能排名如下表:

存储格式 特点 性能排名
二进制 占用空间最小,解析最快 1
文本 文本的好处是通用,但性能不好 2
数据库 也是二进制,但普遍IO性能差,库内遍历快,外部取数都很慢 3

处理大量数据时,性能优化的第一步,往往是挑选合适的存储格式。数据库的存储十分宝贵,为了节约存储,提高运算性能,可将单纯用作OLAP场景的那些数据搬到数据库外部,使用更高性能的存储格式存放数据。感兴趣可以参考:性能优化教案—遍历

集算器还很容易嵌入到Java应用程序中,Java如何调用SPL脚本有使用和获得它的方法。

关于集算器安装使用、获得免费授权和相关技术资料,可以参见如何使用集算器

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

大数据分组怎样才会更快

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

大数据分组怎样才会更快

分组是数据库的常见运算,无论数据如何准备,通常都需要将所有数据遍历。建立索引这时是不起作用的,存储格式才是决定遍历效率的主要因素。数据库中数据的存放虽然是二进制格式的,但普遍IO性能差,库内遍历快,外部取数都很慢。 下面用Oracle来举个例子,数据如下: O
大数据分组怎样才会更快
2018-11-16

大数据批量键值查询怎样才会更快

一般选择数据库来存放数据,并借助数据表的索引来加快检索速度。利用索引查找数据,即使数据总量达到有10亿,对于单条记录的查找效率大约在数十毫秒(复杂度为LogN)。但是,如果需要查询的键值很多,比如多达几千甚至几万的时候,如果每次都独立查找,那读取和比较也会累积
大数据批量键值查询怎样才会更快
2016-08-06

怎么快速学会Go的切片和数组数据类型

这篇文章主要介绍“怎么快速学会Go的切片和数组数据类型”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么快速学会Go的切片和数组数据类型”文章能帮助大家解决问题。什么是数组数组是属于同一类型的元素的
2023-07-05

大数据中分组报表怎样实现折叠伸缩效果

这篇文章将为大家详细讲解有关大数据中分组报表怎样实现折叠伸缩效果,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在业务系统中分组统计是比较常见的数据分析形式,但当数据项较多,或分组的层级过多时
2023-06-04

大数据报表怎么快速分页呈现

今天就跟大家聊聊有关大数据报表怎么快速分页呈现,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在说明这个问题的处理方法前,先了解下是什么原因导致的大数据量报表呈现慢的问题。一般不外乎这
2023-06-03

sql分组后怎么查询最大的数据

在SQL中,可以使用聚合函数和GROUP BY子句来进行分组,并使用ORDER BY和LIMIT子句来查询最大的数据。假设有一个名为"table_name"的表,其中有两个字段:字段A和字段B。要按字段A进行分组,并查询每组中字段B的最大
2023-10-25

R语言怎样实现对数据框按某一列分组求组内平均值

小编给大家分享一下R语言怎样实现对数据框按某一列分组求组内平均值,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!可使用aggregate函数如:aggregate(
2023-06-14

编程热搜

目录