大数据分组怎样才会更快一些_大数据新手教程

大数据分组怎样才会更快一些_大数据新手教程分组是数据库的常见运算,无论数据如何准备,通常都需要将所有数据遍历。建立索引这时是不起作用的,存储格式才是决定遍历效率的主要因素。数据库中数据的存放虽然是二进制格式的,但普遍IO性能差,库内遍历快,…

大数据分组怎样才会更快

分组是数据库的常见运算,无论数据如何准备,通常都需要将所有数据遍历。建立索引这时是不起作用的,存储格式才是决定遍历效率的主要因素。数据库中数据的存放虽然是二进制格式的,但普遍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 /*+ Parallel(8) */ client,sellerid,count(orderid),sum(amount) from orders group by client,sellerid

这个SQL执行耗时:210秒。

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

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

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

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/7857.html

(0)
上一篇 2023-03-12
下一篇 2023-03-12

相关推荐

  • Redis 教程_redis的使用

    Redis 教程_redis的使用Redis 教程 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。 Redis是一个开源的使用ANSI…

    2023-03-31
    112
  • 边缘云应用场景_场景实现上云

    边缘云应用场景_场景实现上云在地图或地理信息有关的场景里,地址关键词的检索尤其重要。比如打开百度地图,想要查询某个位置的信息“北京市海淀区清华东路17号中国农业大学”,往往我们输入的是关键词“中国农业大学”而不是精确到街道的详细

    2023-06-02
    103
  • Mysql 表锁_mysql临键锁

    Mysql 表锁_mysql临键锁一.分类: 二.创建示例表: create table mylock( id int not null primary key auto_increment, name varchar(20) )e…

    2023-02-27
    125
  • mybatis通用功能代码生成工具「终于解决」

    mybatis通用功能代码生成工具「终于解决」mybatis操作数据库的过程中,如果只考虑单表操作,mapper和dao层基本80%的都是固定的,故而可以使用工具进行生成,文末提供自己编写的工具(基于mysql存储过程):作者其实就是使用(myb

    2023-05-14
    93
  • 把短视频上传到其他平台,怎么转换格式?

    把短视频上传到其他平台,怎么转换格式?**把短视频上传到其他平台,怎么转换格式?**小编最近在人民日报公众号上看到一段短视频,是关于一个网友把一名闪送员接到一个单子把药品送上长城,还背着受伤的女孩走了一段路的内容。在网上这个短视频也被转…

    2023-03-05
    106
  • 路由器什么牌子好?推荐自用的猎人路由

    路由器什么牌子好?推荐自用的猎人路由  相信很多人和我一样对网络的依赖程度很高,闲暇时候喜欢刷刷短视频,看看电影玩玩游戏什么的,这些活动都离不开一个良好的网络环境的支持,在家用环境中,直白一点也就是路由器的好坏很大程度上决定了网络环境…

    2023-02-22
    95
  • Mysql默认配置文件[通俗易懂]

    Mysql默认配置文件[通俗易懂]Mysql默认配置文件 [client] port = 3306 socket = /tmp/mysql.sock [mysql] prompt=”MySQL [d]> ” no-auto-reha…

    2023-04-01
    122
  • 袋鼠云ceo_袋鼠云公司

    袋鼠云ceo_袋鼠云公司近日,国内领先的数字化技术与服务提供商——袋鼠云宣布完成过亿元C+轮融资,本轮融资由源星昱瀚基金、国中资本、深创投投资。 本轮融资资金将主要用于袋鼠云核心产品的研发、产品生态体系建设和市场营销推广等方

    2023-06-12
    108

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注