图书 •
828 引用 •
203 回帖 •
3 关注
博客
关注
-
[链接] [链接]9.3 复写维表 我们来讨论外键关联,先看小维表的情况,也就是可以把维表装入分机内存的情况。 那么,把维表装入哪个分机的内存呢? 在所有分机都装入一份。 集群下的事实表很大, ..
-
[链接] [链接]9.2 集群复组表 对于数据表上的常规运算,使用 fork 写起来有些麻烦,SPL 也提供了集群表和集群游标来简化代码,但情况要比单机复杂一些。 回顾第二章出现的复组表概念。 ..
-
[链接] [链接]9.1 计算与数据分布 数据量很大时,可以采用多台机器来分担计算任务,也就是集群。参与计算的机器称为分机,通常还会有个控制程序,负责管理分配各分机的计算任务并汇总计算结果,称 ..
-
[链接] [链接]8.6 内存标签异动 标签数据可能随时间变化,比如可能每个月会对客户重新贴一次标签,而我们还希望能针对过去某个月的标签情况进行查询,就需要保存住每个时间点的标签信息。而多维分 ..
-
[链接] [链接]8.5 标签位维度 标签维度是指取值只有是与否(或 true/false)两种的枚举维度,比如人员是否结婚、是否上过大学、是否拥有信用卡、…,也称二值维度。标签维度很常见,对 ..
-
[链接] [链接]8.4 布尔维序列 我们在前面使用对位序列提高维表过滤后的关联,这种技术还可以用于提高枚举型维度的切片性能。 所谓枚举型维度,是指维度的取值是事先已经确定的有限的几种值,如性 ..
-
[链接] [链接]8.3 冗余排序 无切片条件的汇总运算总要涉及全量数据。如果没有预先汇总,也没什么办法减少计算量了。但有切片条件时,如果数据能合理组织,就未必要遍历所有数据了。 简单在维度上 ..
-
[链接] [链接]8.2 时间段预汇总 对于时间段上的统计,使用一些技巧后就可以利用预汇总数据了。 假如原始数据表是按日存储的数据,那么我们可以按月做好预预汇总数据,当需要针对一个时间段统计时 ..
-
[链接] [链接]8.1 部分预汇总 多维分析后台的运算本质上就是个分组汇总,前面讲过的分组方法都可以利用。但当数据量非常大的时候,想做到即时响应也不是很容易的事。 预汇总是个容易想到的方法, ..
-
[链接] [链接]7.4 附表 某个事实表可能随意和多个维表建立外键关联,甚至和同一个维表建立多个外键关联,但基于双方主键建立的同维关联和主子关联就没有这么随意。 同维关联是一种等价关系(A ..
-
[链接] [链接]7.3 关联定位 前两节讨论的都是全表遍历。现实的任务中常常会还会关联表做条件过滤,当然我们可以在关联之后再做过滤,但这样会将所有关联表都遍历一次,表很大时就会耗时很多。有时 ..
-
[链接] [链接]7.2 分段归并 面向大数据的有序归并算法有个不太方便的地方,数据要一条条从两个(或更多)游标中读出后比对,这种逻辑下无法直接实现分段并行。因为无法保证两个表的关联键值是在对 ..
-
[链接] [链接]7.1 有序归并 我们已经多次提到过有序归并,比如第二章中讲有序组表的追加时就用到这个算法,它可以用于实现大集合的交并差运算。以并集为例写出来的算法逻辑大体如下: A B C ..
-
[链接] [链接]6.9 单边分堆 我们最后来处理维表和事实表都很大的情况,通常事实表会更大。这种情况无论如何都很难高速计算出来,但仍然要想办法尽量做得快。 是否可以把事实表用游标读出来,分批 ..
-
[链接] [链接]6.8 大维表查找 遍历事实表时用外键查找维表记录,每次只取一条记录;而事实表通常不会按外键字段有序(事实表可能有多个外键,对某一个外键有序就不会对另一个有序,大部分情况是对 ..
-
[链接] [链接]6.7 对位序列 对于已经序号化的外键,我们还可以使用对位序列来处理维表上的过滤。 A 1 =file('product.btx').import@b() 2 =file(' ..
-
[链接] [链接]6.6 索引复用 有时候维表会被先过滤再做关联。比如我们只关心某个产地的产品: A 1 =file('product.btx').import@b().keys@i(id) ..
-
[链接] [链接]6.5 内连接语法 我们知道,事实表的外键不一定总有对应的维表记录,有可能存在无效值。一种很常见的动作是:如果发现外键没有对应的维表记录,则删除这条事实表记录;如果有,则做地 ..
-
[链接] [链接]6.3 外键序号化 从事实表的外键关联维表,本质上是一个查找动作。在事实表较大时无法做到预关联了,如果有办法能提高查找速度那也可以获得好的关联性能。 维表上通常已经建立有哈希 ..
-
[链接] [链接]6.1 外键地址化 我们简单回顾一下外键关联的概念:数据表 T 中字段 F 和数据表 D 的主键 K 关联时,D 称为 T 的外键表,又称维表,T 称为事实表,字段 F 称为 ..
-
[链接] [链接]5.8 索引排序 我们知道索引的本质就是排序,如果我们想把数据表按被查找键排序,是不是可以利用已经建好的索引呢? 很遗憾,大部分情况没有效果。 如果原始数据表并没有按被查找键 ..
-
[链接] [链接]5.7 序号分组与可控分段 SPL 有个内存的序号分组汇总函数 groups@n,对于外存游标也有同样的函数。 如果能够把分组键值简单地计算成序号,那么分组时就不必再计算哈希 ..
-
[链接] [链接]5.6 后半序分组 我们处理了“前半有序”的情况,那么“后半有序”是不是也会可利用的地方? 还是这个帐户交易表,在每个帐户下的数据是按日期排序的,现在我们想统计所有日期下的交 ..
-
[链接] [链接]5.5 前半序分组 还是以帐户、日期的帐户交易表,现在我们想把它换一种次序,将帐户内的交易记录改成按发生日的星期几排序,即把所有周日的交易都排到一起、然后再排周一的、周二、… ..
-
[链接] [链接]5.4 程序游标 继续帐户交易表,现在我们希望找出每月内连续 n 天都有交易的那些交易记录,然后按发生日期的星期几统计交易额度。 后半任务很简单,就是个普通的分组汇总。但找出 ..