数据蒋堂 •
175 引用 •
108 回帖 •
596 关注
博客
关注
-
基于对象 - 事件模式(schema)的数据计算,可以说是商业中最常见的一种数据分析任务。这里说的对象可以是电商系统用户、游戏玩家、银行账号、手机、车辆等等,通常会有个唯一的 ID,对象涉及的 ..
-
八、有序归并 我们再来看同维表和主子表的 JOIN,这两种情况的优化提速手段是类似的。 我们前面讨论过,HASH JOIN 算法的计算复杂度(即关联键的比较次数)是 sum(ni*mi),比全 ..
-
七、进一步的外键关联 我们继续讨论外键 JOIN,并延用上一篇的例子。 当数据量大到无法全部放进内存时,前述的地址化方法就不再有效了,因为在外存无法保存事先算好的地址。 一般来讲,外键指向的维 ..
-
我们再来研究如何利用 JOIN 的特征实现性能优化,这些内容的细节较多,我们挑一些易于理解的情况来举例,更完善的连接提速算法可以参考乾学院上的《性能优化》图书及课程。 六、外键预关联 先看全内 ..
-
五. 解决关联查询 我们重新审视和定义了等值 JOIN 运算,并简化了语法。一个直接的效果显然是让语句书写和理解更容易。外键属性化、同维表等同化和子表集合化方案直接消除了 JOIN 关键字,也 ..
-
四. 维度对齐 我们再回顾前面的双子表例子的 SQL: SELECT Orders.id, Orders.customer, A.x, B.y FROM Orders LEFT JOIN (S ..
-
三. JOIN 的语法简化 我们先看如何利用关联都涉及主键这个特征来简化 JOIN 的代码书写,分别讨论这三种情况。 1. 外键属性化 先看个例子,设有如下两个表: employee 员工表 ..
-
二. 等值 JOIN 的分类 我们来考察下面三种等值 JOIN: 1. 外键关联 表 A 的某个字段和表 B 的主键字段关联(所谓字段关联,就是前一节说过的在等值 JOIN 的过滤条件中要对应 ..
-
[链接]JOIN 系列 [链接] [链接] [链接] [链接] [链接] [链接] [链接] [链接] 连接运算(JOIN)一直是 SQL 中的老大难问题。在关联表稍多一点的时候,代码书写就变 ..
-
BI 和 AI 中都有个 I,对应的英文单词都是 Intelligence,看起来是同一个意思。 其实不然,即使我们只限定商业决策领域中讨论问题,BI 和 AI 中的 I 也有很大的不同。 广 ..
-
某机构上了一套分布式数据仓库,历史数据逐步装进了仓库,然后,基于数据仓库构建了 BI 系统(主要是多维分析)。刚开始,一切都顺利,但随着时间推移,基于中央数据仓库的应用越来越多,几年下来积累了 ..
-
事物是普遍联系的,很多有业务意义的查询也会涉及多个数据表的关联。 BI 类软件通常会提供自助查询功能,有些软件还能支持关联查询,但实际使用的大多数还是单表的,关联查询功能很少被业务人员使用。涉 ..
-
其实没多少! 从早期喊的多维分析到近年来喊敏捷 BI,BI 厂商一直在强调自助能力,宣称可以由业务人员自己随心所欲地分析数据,而用户也常常有强烈的需求,双方一拍即合,很容易形成购买行为。 不过 ..
-
OLAP 这个词从字面上理解是在线分析的意思,也就是由人员面对数据进行各种交互式的分析操作。 但是,现在的OLAP 概念被 BI 软件给严重狭义化了。面向业务分析时说到 OLAP,在技术上经常 ..
-
在结构化数据计算领域,SQL 现在还是应用最广泛的工作语言,不仅被所有关系数据库采用,许多新进的大数据平台也将实现 SQL 作为目标。 对于某种计算技术,人们通常会关心两个效率。一是运算的描述 ..
-
碰到过这么一个案例,情况可以简化总结成这样:数据库中有表 T,其中有两个重要的字段 a 和 b,a 是一个时间戳,精确到秒;b 是用户号;其它字段用来表示用户 b 在时刻 a 发生的事件属性。 ..
-
减少外存(硬盘)访问量一直是提高大数据计算性能的永恒话题,我们也讨论过列存、压缩等直接减少访问量甚至存储量的手段。除了这些存储层面的方法外,在算法和计算实现环节,也可以想办法减少外存的访问量。 ..
-
过滤是个很基本的运算,就是从一个集合中找出满足某些条件的成员构成的子集。SQL 中有 WHERE 和 HAVING 来实现过滤运算(严格地说,困为 SQL 缺乏离散性,WHERE 的运算结果是 ..
-
我们讨论过的常规聚合运算如 SUM/COUNT 和非常规聚合运算如 maxp/top,都是事先设计好的聚合函数。但如果我们想实现一个以前没有定义过的运算怎么办?比如想做连乘运算,显然这也算是一 ..
-
标准 SQL 中提供了五种最常用的聚合运算:SUM/COUNT/AVG/MIN/MAX。观察这几个运算,我们发现它们都可以看成是一个以集合为参数返回单值的函数,我们就先把这个共同点理解为聚合运 ..
-
我们在讨论有序分组时只研究了待分组集合的成员次序对分组运算可能的影响,但既然要考虑集合的有序性,那么结果集也是个集合,它的成员次序是不是也有业务意义呢? 确实有意义,不过重要程度不如原集的次序 ..
-
我们知道,SQL 延用了数学上的无序集合概念,所以 SQL 的分组并不关注待分组集合中成员的次序。我们前面讨论等值分组和非等值分组的时候,也都没有关注过这个问题,分组规则都是建立在成员取值本身 ..
-
有过多年应用开发经验的同学大都会体验过数据库 IO 比较慢的情况,但到底会慢到什么程度,特别是和其它读写数据的手段相比的差距,可能很多人还没有感性认识。 Java 是普遍采用的应用开发技术,我 ..
-
我们研究过分组运算的实质,即将一个集合按某种规则拆分成若干子集。不过,讨论重点在于还原分组运算的步骤,并没有讨论拆分规则,例子中都是用某些分组键值来定义拆分规则,也就是 SQL 中使用的方法。 ..
-
分组是数据库中的常见运算,但未必所有人都能深刻地理解它。 分组运算的实质是将一个集合按照某种规则拆分成若干个子集,也就是说,返回值应当是一个由集合构成的集合,但人们一般并不太关心构成这个集合的 ..