性能优化技巧:前半有序时的排序

2021-01-31
阅读 2 分钟
908
在对数据集进行排序运算时,有时会遇到这样一种场景:数据集T已经按字段a有序,而字段b无序,现在我们要将T按a、b排序,我们称之为前半有序(a有序)的排序。此时我们能想到一种优化的排序方法:从T中先取出a值相同的一组记录,再这一组内对b排序。然后再依次取出下一组a值相同的记录,重复这个动作,直到完成T中所有记录...

性能优化技巧:后半有序分组

2021-01-31
阅读 2 分钟
805
什么是后半有序?如果数据集T已经按字段a、b有序,现在我们要将T按b排序或分组时,因为在a值相同的段内,b都是有序的,这种要排序或分组的字段在分段内有序的情况就称为后半有序。

性能优化技巧:有序分组

2021-01-31
阅读 2 分钟
797
通常分组计算都采用hash方案,即先计算分组字段的hash值,hash值相同的记录被分拣到一个小集合里,然后在这个小集合中遍历找分组字段值相同的聚合成一组。分组的复杂度(比较次数),取决于hash函数的重码率。在hash空间比较小时,重码率就高,比较次数就会多,性能会受较大影响。为了提高性能,就需要分配较大的内存来存...

性能优化技巧:大事实表与大维表关联

2021-01-31
阅读 2 分钟
910
在《性能优化技巧:小事实表与大维表关联》中,我们尝试了小事实表与大维表关联时的性能优化方法,该方法利用了小事实表可以装入内存的特点,将关联键汇集排序后到大维表中查找,避免了遍历大维表的动作。如果事实表与维表都大到不能装载到内存时,这个办法就不再有效了,那么,还有什么办法提高性能呢?

性能优化技巧:小事实表与大维表关联

2021-01-31
阅读 2 分钟
819
在主子表关联查询中,有时会遇到这样一种情况:按条件过滤后的事实表数据量很小,能够全部装载进内存或仅比内存略大一点;而要关联的维表数据量很大,比内存要大很多。这种时候,如果维表是按键有序存储时,因为事实表涉及的维表记录较少,可以一次性用二分查找方法找出来,而不必象HASH运算那样遍历这个大维表,从而提...

性能优化技巧:附表过滤

2021-01-31
阅读 1 分钟
773
在《性能优化技巧:有序归并》中我们见证了有序归并算法提升主子表的关联性能,在集算器中,还有进一步提高性能的办法—附表。集算器组表支持主子表保存在同一文件中,先用主表创建组表文件,再在主表上附加上子表,子表必须含有主表的维字段,并通过这个字段进行关联,这样的子表称为附表。

性能优化技巧:有序归并

2021-01-22
阅读 3 分钟
1.1k
在以前的文章中我们介绍过,关系数据库在进行表间关联时是使用HASH分段技术。设两个关联表的规模(记录数)分别是 N 和 M,则 HASH 分段技术的计算复杂度(关联字段的比较次数)大概是 SUM(NiMi),其中 Ni 和 Mi 分别是 HASH 值为 i 的两表记录数,满足 N=SUM(Ni) 和 M=SUM(Mi),这大概率会比完全遍历时的复杂度 NM 要小...

性能优化技巧:维表过滤或计算时的关联

2021-01-22
阅读 4 分钟
1k
在事实表与维表的关联查询时,常常会遇到需要对维表的数据进行过滤或者针对维表做计算的情况,这时可以有两种处理方式:1、先做关联(如果是内存则可以是预关联),再对关联后的事实表进行过滤。就象在《性能优化技巧:预关联》和《性能优化技巧:外键序号化》中做的那样。2、先对维表进行过滤,再与事实表做关联。我们...

多维分析后台实践 3:维度排序压缩

2021-01-22
阅读 3 分钟
1.1k
【摘要】用实例、分步骤,详细讲解多维分析(OLAP)的实现。点击了解多维分析后台实践 3:维度排序压缩实践目标本期目标,是在完成数据类型转化基础上,实现维度排序压缩,进一步提升计算速度。实践的步骤:1、 准备基础宽表:修改上期的代码,完成维度排序压缩存成新组表。2、 访问基础宽表:上期代码不必修改,直接应...

多维分析后台实践 2:数据类型优化

2021-01-22
阅读 6 分钟
967
【摘要】用实例、分步骤,详细讲解多维分析(OLAP)的实现。点击了解多维分析后台实践 2:数据类型优化实践目标本期目标是练习将数据库读出的数据,尽可能转换为有利于性能优化的数据类型,例如:小整数和浮点数。实践的步骤:1、 准备基础宽表:修改上期的代码,完成数据类型优化存为组表文件。2、 访问基础宽表:修改...

性能优化技巧:外键序号化

2021-01-12
阅读 3 分钟
823
在《性能优化技巧:部分预关联》一文中,我们介绍了将维表内存化并预关联的技术,但事实表与维表关联时,仍需进行hash计算和比对,怎么提高这一步的性能呢?我们今天再介绍一种优化技巧:外键序号化。

性能优化技巧:部分预关联

2021-01-12
阅读 3 分钟
747
在《性能优化技巧:预关联》中,我们测试了将数据表事先全部加载进内存并做好关联后的查询性能优化问题,但如果内存不够大,不能将维表和事实表全部装入,那怎么办呢?此时,可以将维表预先装入内存,建好索引,实现维表部分的预关联,省去一半hash计算。

性能优化技巧:预关联

2021-01-12
阅读 4 分钟
1.1k
SQL实现JOIN一般是采用HASH分堆的办法,即先计算关联键的HASH值,再将相同HASH值的记录放到一起再做遍历对比。每一个JOIN都要做一轮这样的运算。

性能优化技巧:TopN

2021-01-12
阅读 3 分钟
1.9k
TopN是常见的运算,用SQL写出来是这样(以Oracle为例):       select from (select from T order by x desc) where rownum<=N这个SQL的运算逻辑从其语句上看,要先做排序(Order by),然后再取出前N条。

性能优化技巧:遍历复用提速多次分组

2021-01-12
阅读 2 分钟
1k
我们知道,大数据运算性能的瓶颈常常是在外存(也就是硬盘)IO上,因为外存访问性能要比内存低一两个数量级。因此,做性能优化时,减少硬盘的访问量有时要比减少CPU计算量更为重要。同一个任务,如果能使用硬盘访问量更少的算法,即使CPU计算量不变甚至略多一点,也会获得更好的性能。

性能优化技巧:有序分组

2020-12-25
阅读 2 分钟
873
通常分组计算都采用 hash 方案,即先计算分组字段的 hash 值,hash 值相同的记录被分拣到一个小集合里,然后在这个小集合中遍历找分组字段值相同的聚合成一组。分组的复杂度 (比较次数),取决于 hash 函数的重码率。在 hash 空间比较小时,重码率就高,比较次数就会多,性能会受较大影响。为了提高性能,就需要分配较大...

SPL 中调用 Python 程序

2020-12-25
阅读 5 分钟
1k
【摘要】      集算器 SPL 集成了对 python 程序的调用,也提供对建模算法接口支持。具体开发要求、使用详细情况,请前往乾学院:SPL 中调用 Python 程序!

集算器 SPL 抓取网页数据

2020-12-25
阅读 10 分钟
1.3k
【摘要】       集算器 SPL 支持抓取网页数据,根据抓取定义规则,可将网页数据下载到在本地进行统计分析。具体定义规则要求、使用详细情况,请前往乾学院:集算器 SPL 抓取网页数据!

高并发账户记录查询

2020-12-17
阅读 4 分钟
1.5k
高并发账户记录查询在银行、互联网企业、通信企业中广泛存在。例如:网上银行、手机银行、电商个人账户查询、互联网游戏账户等等。这类查询有三个共同点:

Python 关联处理

2020-12-03
阅读 10 分钟
956
将两个表或者多个表关联在一起是常见的运算,这时通常使用 SQL join 的方式进行关联并进行后续计算。但有时数据并不存储在数据库,而是以文件的形式存储在文件系统,单纯为了计算而把数据存储到数据库有点得不偿失。

性能优化技巧:后半有序分组 计算&AI

2020-12-03
阅读 2 分钟
826
什么是后半有序?如果数据集T已经按字段a、b有序,现在我们要将T按b排序或分组时,因为在a值相同的段内,b都是有序的,这种要排序或分组的字段在分段内有序的情况就称为后半有序。

性能优化技巧:前半有序时的排序

2020-12-03
阅读 2 分钟
775
在对数据集进行排序运算时,有时会遇到这样一种场景:数据集T已经按字段a有序,而字段b无序,现在我们要将T按a、b排序,我们称之为前半有序(a有序)的排序。此时我们能想到一种优化的排序方法:从T中先取出a值相同的一组记录,再这一组内对b排序。然后再依次取出下一组a值相同的记录,重复这个动作,直到完成T中所有记录...

字符串和日期时间的处理

2020-12-03
阅读 8 分钟
1k
字符串和日期时间都是基础数据类型。虽然说是基础,使用起来却经常给我们带来麻烦。SPL 提供了丰富而简洁的函数,可以轻松解决字符串和日期时间的难题。去乾学院看个究竟吧!字符串和日期时间的处理

辅助 Excel 的数据计算 add-ins

2020-11-28
阅读 6 分钟
1.3k
Excel 中遇到较复杂的运算,数据分析师常会用 add-ins 辅助解决。本文考察了一些常见的 add-ins,从部署难度、开发难度、流畅程度等方面进行深度对比,并着重考察了数据计算能力,esProc 在这些 add-ins 中的表现相对出色。点击辅助 Excel 的数据计算 add-ins了解详情。

SQL 有序计算

2020-11-28
阅读 7 分钟
1.2k
使用过 SQL 的朋友对计算字段都不会陌生,比如 firstname+lastname,year(birthday),这些计算字段属于行内计算,不管表达式里用到的是单个字段,还是多个字段,使用的数据都在当前记录行内。有行内计算,对应的也就有跨行计算,如:第一名和第二名的差距;从 1 月到当前月份累计的销售额。按照成绩有序,才会有第一名、...

大文件上的结构化数据计算示例

2020-11-28
阅读 5 分钟
943
本文分析大文件计算的实现原理,如过滤、聚合计算、添加计算列、排序、分组聚合、topN 等,以及利用并行计算来提高计算速度,并用 esProc SPL 举例说明如何用简洁的脚本实现大文件计算。请点击大文件上的结构化数据计算示例了解详情

Excel 文件结构化解析示例

2020-11-28
阅读 4 分钟
1.4k
本文介绍如何将各种结构的 Excel 文件解析成结构化数据,如普通行式、复杂表头、自由格式、交叉表、主子表、大文件等,并用 esProc SPL 举例实现。请点击Excel 文件结构化解析示例了解详情

生成各种格式的 Excel 文件示例

2020-11-28
阅读 5 分钟
1.8k
【摘要】本文介绍如何将经各种渠道得来的结构化数据自动生成各种格式的 Excel 文件,如单纯导出数据、导出大量数据、指定显示属性、固定行列填充、动态条件显示属性、分组带明细及统计、交叉统计表等,并用 esProc SPL 举例实现。请点击 生成各种格式的 Excel 文件示例 了解详情

文本文件比对示例

2020-11-21
阅读 4 分钟
1.3k
【摘要】本文介绍两个文本文件进行比对,按照需求找出文件中数据相同或不同时,会遇到的几种情况,并用 esProc SPL 举例实现。请点击文本文件比对示例了解详情在数据处理业务中,有时需要比较两个文本文件内容有哪些相同或不同的数据,本文将介绍文本文件比对的几种情况,如整行比对、关键列比对,同时又分小文件、大文...

文件数据去重示例

2020-11-20
阅读 3 分钟
856
【摘要】本文介绍小文件与大文件在进行数据去重时的几种处理办法,比如按整行或关键列去除重复数据或留下重复数据,并用 esProc SPL 举例实现。请点击文件数据去重示例了解详情