广告
返回顶部
首页 > 资讯 > 数据库 >大数据分组怎样才会更快
  • 246
分享到

大数据分组怎样才会更快

大数据分组怎样才会更快 2018-11-16 08:11:30 246人浏览 猪猪侠
摘要

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

大数据分组怎样才会更快

分组是数据库的常见运算,无论数据如何准备,通常都需要将所有数据遍历。建立索引这时是不起作用的,存储格式才是决定遍历效率的主要因素。数据库中数据的存放虽然是二进制格式的,但普遍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脚本有使用和获得它的方法。

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

您可能感兴趣的文档:

--结束END--

本文标题: 大数据分组怎样才会更快

本文链接: https://www.lsjlt.com/news/6707.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • 大数据分组怎样才会更快
    分组是数据库的常见运算,无论数据如何准备,通常都需要将所有数据遍历。建立索引这时是不起作用的,存储格式才是决定遍历效率的主要因素。数据库中数据的存放虽然是二进制格式的,但普遍IO性能差,库内遍历快,外部取数都很慢。 下面用Oracle来举...
    99+
    2018-11-16
    大数据分组怎样才会更快
  • 大数据批量键值查询怎样才会更快
    一般选择数据库来存放数据,并借助数据表的索引来加快检索速度。利用索引查找数据,即使数据总量达到有10亿,对于单条记录的查找效率大约在数十毫秒(复杂度为LogN)。但是,如果需要查询的键值很多,比如多达几千甚至几万的时候,如果每次都独立查找,...
    99+
    2016-08-06
    大数据批量键值查询怎样才会更快
  • 怎样使用Java来快速载入大数据数组?
    Java是一门强大的编程语言,拥有许多优秀的特性和工具。在处理大数据数组时,Java也提供了一些高效的方案来帮助开发者快速载入和处理数据。本文将介绍如何使用Java来快速载入大数据数组。 一、使用Java NIO(New IO)来载入大数据...
    99+
    2023-06-26
    load 大数据 数组
  • 大数据中分组报表怎样实现折叠伸缩效果
    这篇文章将为大家详细讲解有关大数据中分组报表怎样实现折叠伸缩效果,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在业务系统中分组统计是比较常见的数据分析形式,但当数据项较多,或分组的层级过多时...
    99+
    2023-06-04
  • 怎么快速学会Go的切片和数组数据类型
    这篇文章主要介绍“怎么快速学会Go的切片和数组数据类型”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么快速学会Go的切片和数组数据类型”文章能帮助大家解决问题。什么是数组数组是属于同一类型的元素的...
    99+
    2023-07-05
  • 大数据报表怎么快速分页呈现
    今天就跟大家聊聊有关大数据报表怎么快速分页呈现,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在说明这个问题的处理方法前,先了解下是什么原因导致的大数据量报表呈现慢的问题。一般不外乎这...
    99+
    2023-06-03
  • sql分组后怎么查询最大的数据
    在SQL中,可以使用聚合函数和GROUP BY子句来进行分组,并使用ORDER BY和LIMIT子句来查询最大的数据。 假设有一个名...
    99+
    2023-10-25
    sql
  • 大数据处理的未来趋势,PHP和NumPy并发编程会发挥怎样的作用?
    随着大数据时代的到来,数据量的爆炸式增长给数据处理带来了巨大的挑战。传统的数据处理方式已经无法满足大数据的需求,因此并发编程成为了大数据处理的必要选择。在并发编程中,PHP和NumPy都是非常优秀的工具,它们的结合可以发挥出更加强大的作用...
    99+
    2023-09-16
    大数据 numy 并发
  • R语言怎样实现对数据框按某一列分组求组内平均值
    小编给大家分享一下R语言怎样实现对数据框按某一列分组求组内平均值,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!可使用aggregate函数如:aggregate(...
    99+
    2023-06-14
  • 分布式图数据库 Nebula Graph 中的集群快照实践是怎样进行的
    今天就跟大家聊聊有关分布式图数据库 Nebula Graph 中的集群快照实践是怎样进行的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.1 需求...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作