《数据蒋堂》

数据蒋堂》的作者蒋步星,从事信息系统建设和数据处理长达20多年的时间。他丰富的工程经验与深厚的理论功底相互融合、创新思想与传统观念的相互碰撞,虚拟与现实的相互交织,产生出了一篇篇的沥血之作。此连载的内容涉及从数据呈现、采集到加工计算再到存储以及挖掘等各个方面。大可观数据世界之远景、小可看技术疑难之细节。针对数据领域一些技术难点,站在研发人员的角度从浅入深,进行全方位、360度无死角深度剖析;对于一些业内观点,站在技术人员角度阐述自己的思考和理解。蒋步星还会对大数据的发展,站在业内专家角度给予预测和推断。静下心来认真研读你会发现,《数据蒋堂》的文章,有的会让用户避免重复前人走过的弯路,有的会让攻城狮面对扎心的难题茅塞顿开,有的会为初入行业的读者提供一把开启数据世界的钥匙,有的甚至会让业内专家大跌眼镜,产生思想交锋。

联合发布平台

数据讲堂 - 文章列表

内存数据集产生的隐性成本

内存数据集产生的隐性成本

发布时间:2018-12-04 Tag:,

当我们要对数据做一些非常规的复杂运算时,通常要将数据装入内存。现在也有不少程序设计语言提供了内存数据集对象及基 […]

应对报表没完没了的五个步骤

应对报表没完没了的五个步骤

发布时间:2018-11-27 Tag:,,,,

报表的业务稳定性天生很差,业务开展过程中会催生出许多新的查询统计需求,这就造成了没完没了的报表,这是个无法被消 […]

“后半”有序的分组

“后半”有序的分组

发布时间:2018-11-20 Tag:,,

上一期我们说了前半有序的数据,这次我们来看看“后半”有序的情况。 回顾一下前半有序的说法:我们要把数据集T按字 […]

前半有序的大数据排序

前半有序的大数据排序

发布时间:2018-11-13 Tag:,,

最近碰到这么一个案例,情况可以简化总结成这样:数据库中有表T,其中有两个重要的字段a和b,a是一个时间戳,精确 […]

如何将数据热导出到文件

如何将数据热导出到文件

发布时间:2018-11-06 Tag:,

随着时间推移,数据库中数据量会越来越大,如果把查询分析都挂到数据库上,有可能会影响到生产系统的正常运行。所以, […]

时序数据从分表到分库

时序数据从分表到分库

发布时间:2018-10-30 Tag:,,,,

这里的时序数据泛指一切随时间推移而不断增长的数据,比如通话记录、银行交易记录等。 对于数据库来讲,时序数据并没 […]

BI系统的前置计算

BI系统的前置计算

发布时间:2018-10-23 Tag:,

某机构上了一套分布式数据仓库,历史数据逐步装进了仓库,然后,基于数据仓库构建了BI系统(主要是多维分析)。刚开 […]

性能优化是个手艺活

性能优化是个手艺活

发布时间:2018-10-18 Tag:,,

大数据的技术本质就是高性能,性能优化也是程序员们的永恒话题。 这里说的性能优化,主要是指在程序员的努力下能达到 […]

数据分布背后的逻辑

数据分布背后的逻辑

发布时间:2018-10-09 Tag:,,

在分布式数据库及大数据平台中,数据如何分布到多台机器中是个很关键的问题。因为很多运算是数据密集型的,如果数据分 […]

为什么我们需要C程序员

为什么我们需要C程序员

发布时间:2018-08-28 Tag:,

再说一个招聘的话题。 大家可能知道,润乾的软件产品主体都是Java写的,几乎没有别的语言。但是,我们在招聘算法 […]

从一道招聘考题谈起

从一道招聘考题谈起

发布时间:2018-08-28 Tag:,

润乾研发部在招聘时有一个笔试题: 1/2,1/5,1/20,1/64,1/125都可以写成有限小数,而1/3, […]

报表工具的SQL植入风险

报表工具的SQL植入风险

发布时间:2018-08-14 Tag:,

所有的报表工具都会提供参数功能,主要都是用于根据用户输入的查询条件来选取合适的数据。比如希望查询指定时间段的数 […]

内置的数据无法实现高性能

内置的数据无法实现高性能

发布时间:2018-08-07 Tag:

这里说的“内”, 是指数据库之内。 当数据量变大时,我们常常会感到数据库的性能下降明显,但是,无论怎样优化SQ […]

怎样生成有关联的测试数据

怎样生成有关联的测试数据

发布时间:2018-07-24 Tag:,,,,

在向用户推荐新的数据处理技术,特别是涉及性能优化的场景时,经常会碰到生成测试数据的需求。毕竟,新方案要经过验证 […]

遍历复用

遍历复用

发布时间:2018-07-17 Tag:

减少外存(硬盘)访问量一直是提高大数据计算性能的永恒话题,我们也讨论过列存、压缩等直接减少访问量甚至存储量的手 […]

一些数据压缩手段

一些数据压缩手段

发布时间:2018-07-10 Tag:,,

我们知道,外存(硬盘)的性能远远低于内存,即使是同样复杂度的运算(CPU计算量相同),如果能减少外存的访问量, […]

用HBase做高性能键值查询?

用HBase做高性能键值查询?

发布时间:2018-07-03 Tag:,

最近碰到几家用户在使用HBase或者试图使用HBase来做高性能查询,场景也比较类似,就是从几十亿甚至上百亿记 […]

BI系统中容易被忽视的数据源功能

BI系统中容易被忽视的数据源功能

用户在选购BI解决方案的时候,常常会更关注界面环节的功能指标,比如美观性、操作的流畅性、移动端支持等等。毕竟, […]

这个产品能支持多大数据量?

这个产品能支持多大数据量?

发布时间:2018-06-05 Tag:,,,

经常有用户会问这个问题,你家的产品能处理多大数据量?似乎是这个值越大产品就越牛。 这个问题,其实没多大意义。 […]

最简单的大数据性能估算方法

最简单的大数据性能估算方法

发布时间:2018-06-05 Tag:,,,

大数据的性能是个永恒的话题。不过,在实际工作中我们发现,许多人都不知道如何进行最简单的性能估算,结果经常被大数 […]

大清单报表的打印?

大清单报表的打印?

发布时间:2018-05-29 Tag:,,,

我们谈了大清单报表的呈现方法,其实有时候这些报表还需要打印,比如银行打印流水对账单。 那么,打印是不是也要像呈 […]

大清单报表应当怎么做?

大清单报表应当怎么做?

发布时间:2018-05-29 Tag:,,

在数据查询时,有时会碰到数据量很大的清单报表。用户输入的查询条件很宽泛,可能会从数据库中查出几百上千万行甚至过 […]

大数据技术的4个E

大数据技术的4个E

发布时间:2018-05-15 Tag:

大数据的4个V说法在业界已经尽人皆知,这是指的大数据本身的特征。现在我们来考察一下用于处理大数据的技术应该具有 […]

做基础软件很悲壮?

做基础软件很悲壮?

发布时间:2018-05-08 Tag:

这几天中国数据库界出了一件悲伤的事情,南大通用创始人崔维力先生突然因病去世。我和崔先生神交已久,但却未曾谋面, […]

做基础软件要投入很多钱?

做基础软件要投入很多钱?

发布时间:2018-04-24 Tag:,,

现在有个说法,国家对基础软硬件的投入太少,经常会说微软、Oracle、Intel这些巨头每年的研发费有多少多少 […]

国产操作系统还能怎么做?

国产操作系统还能怎么做?

发布时间:2018-04-24 Tag:,

一家之言,开个脑洞。 操作系统在市场上的关键点,并不在于进程管理、文件系统这些看起来很核心的东西,这些东西真地 […]

国产数据库通通都没戏!

国产数据库通通都没戏!

发布时间:2018-04-24 Tag:,

这标题摆明了就是招人骂,一下子把国内做数据库的同行们都得罪了,甚至连自己都没落下(我也算做数据库的,而且当然也 […]

人工智能中的“人工”

人工智能中的“人工”

发布时间:2018-04-17 Tag:,,

自从AlphaGo赢了之后,人工智能就变得非常热门了。不过,大家在关注“智能”时,却很少把注意力放在“人工”上 […]

存储和计算技术的选择

存储和计算技术的选择

发布时间:2018-04-10 Tag:,

前一阵子公司有个售前来沟通某个用户的情况:数据量比较大,又涉及很多复杂的关联计算,在数据库中用SQL计算性能很 […]

区块链技术的一些疑问

区块链技术的一些疑问

发布时间:2018-04-03 Tag:

下面是我在学习了解区块链技术过程中产生的疑问,思考问题的过程中也会让自己对这项技术理解得更深刻。我不算初学者( […]

数据蒋堂新一年

数据蒋堂新一年

发布时间:2018-04-03 Tag:

时光匆匆,《数据蒋堂》已经走过一年。在这里,也庸俗地感谢一下读者们的一路相伴! 老实说,这一年写这玩意儿有点难 […]

【数据蒋堂】第48期:Hadoop中理论与工程的错位

【数据蒋堂】第48期:Hadoop中理论与工程的错位

发布时间:2018-03-27 Tag:,,

Hadoop是当前重要的大数据计算平台,它试图摒弃传统数据库的理念,重新构建一套新的大数据体系。但是,这并不是 […]

【数据蒋堂】第47期:Hadoop - 一把杀鸡用的牛刀

【数据蒋堂】第47期:Hadoop – 一把杀鸡用的牛刀

发布时间:2018-03-20 Tag:

Hadoop是个庞大的重型解决方案,它的设计目标本来就是大规模甚至超大规模的集群,面对的是上百甚至上千个节点, […]

【数据蒋堂】第46期:大数据集群该不该透明化?

【数据蒋堂】第46期:大数据集群该不该透明化?

这好像是个多余的问题,大部分大数据平台都把集群透明化作为一个基本目标在努力实现。 所谓集群透明化,是指把一个多 […]

【数据蒋堂】第45期:大数据计算语法的SQL化

【数据蒋堂】第45期:大数据计算语法的SQL化

发布时间:2018-03-06 Tag:,,,

回归SQL是当前大数据计算语法的一个发展倾向。在Hadoop体系中,现在已经很少有人会自己从头来写MapRed […]

【数据蒋堂】第44期:谈谈临时性计算

【数据蒋堂】第44期:谈谈临时性计算

发布时间:2018-02-27 Tag:,,,,,

临时性计算,顾名思义,是指临时发生的一些计算需求。这种计算在日常数据处理中很常见,我们举一些例子: 应对业务部 […]

【数据蒋堂】第43期:报表开发的现状

【数据蒋堂】第43期:报表开发的现状

发布时间:2018-02-22 Tag:,,,,

报表开发,看起来只是数据呈现环节的事务,并不起眼,但仔细想想,它涉及的工作范围却非常广。如果把查询和交互分析也 […]

【数据蒋堂】第42期:RDB与NoSQL的访问性能

【数据蒋堂】第42期:RDB与NoSQL的访问性能

发布时间:2018-02-12 Tag:,,,,

我们继续从软件角度上看外存数据源的性能,来考察数据库的性能特点,在这篇文章中,我们只关心数据的访问性能,而不涉 […]

【数据蒋堂】第41期:文件的性能分析

【数据蒋堂】第41期:文件的性能分析

我们以前讲过硬盘的性能特征,主要是针对硬件层面进行分析的,现在我们来考虑软件层面的差异。 理论上讲,软件可以穿 […]

【数据蒋堂】第40期:倍增分段技术

【数据蒋堂】第40期:倍增分段技术

发布时间:2018-01-23 Tag:,

区块分段方案能够满足我们设定的4个目标。不过,除了处理区块标记的麻烦外,这个办法对于列存也不是非常适合。 数据 […]

【数据蒋堂】第39期:数据分段讨论

【数据蒋堂】第39期:数据分段讨论

发布时间:2018-01-16 Tag:,,

现代计算机一般都有多CPU核,而日益广泛应用的固态硬盘也有较强的并发能力,这些硬件资源都为并行计算提供了有力的 […]

【数据蒋堂】第38期:JOIN延伸 - 维度其它应用

【数据蒋堂】第38期:JOIN延伸 – 维度其它应用

发布时间:2018-01-09 Tag:,,,

明确维度定义后,还可以换一种更清晰的方式来审视数据库的结构。 这是我们常见的E-R图: E-R图是个网状结构, […]

【数据蒋堂】第37期:JOIN延伸 - 维度查询语法

【数据蒋堂】第37期:JOIN延伸 – 维度查询语法

发布时间:2018-01-03 Tag:,,

有了维度定义后,我们就可以来梳理前面讲过的简化JOIN语法了。 先定义字段维度: 维度字段的维度为其本身; 外 […]

【数据蒋堂】第36期:JOIN延伸:维度概念

【数据蒋堂】第36期:JOIN延伸:维度概念

发布时间:2017-12-25 Tag:,,

谈到数据分析时常常会用到维度这个词,针对数据立方体的钻取、旋转、切片等操作都是围绕维度进行的,几乎所有的数据分 […]

【数据蒋堂】第35期:JOIN提速 - 有序归并

【数据蒋堂】第35期:JOIN提速 – 有序归并

发布时间:2017-12-18 Tag:,,,,

我们再来看同维表和主子表的JOIN,这两种情况的优化提速手段是一样的。 设两个关联表的规模(记录数)分别是N和 […]

【数据蒋堂】第34期:JOIN提速 - 外键指针的衍生

【数据蒋堂】第34期:JOIN提速 – 外键指针的衍生

发布时间:2017-12-12 Tag:,,,

我们继续讨论外键JOIN,并延用 上一篇 的例子。 当数据量大到无法全部放进内存时,前述的指针化方法就不再有效 […]

【数据蒋堂】第33期:JOIN提速 - 外键指针化

【数据蒋堂】第33期:JOIN提速 – 外键指针化

发布时间:2017-12-07 Tag:,,

我们再来看重新定义JOIN后如何能够提高运算性能,先看外键式JOIN的情况。 设有两个表: products商 […]

【数据蒋堂】第32期:JOIN简化 - 意义总结

【数据蒋堂】第32期:JOIN简化 – 意义总结

发布时间:2017-11-28 Tag:,,

蒋步星《JOIN运算的简化与提速》系列技术文章。 【数据蒋堂】第29期:JOIN运算剖析 【数据蒋堂】第30期 […]

【数据蒋堂】第31期:JOIN简化 - 维度对齐

【数据蒋堂】第31期:JOIN简化 – 维度对齐

发布时间:2017-11-21 Tag:,,

蒋步星《JOIN运算的简化与提速》系列技术文章。 【数据蒋堂】第29期:JOIN运算剖析 【数据蒋堂】第30期 […]

【数据蒋堂】第30期:JOIN简化 - 消除关联

【数据蒋堂】第30期:JOIN简化 – 消除关联

发布时间:2017-11-15 Tag:,,

近期,蒋步星在「天善智能」直播分享了《JOIN运算的简化与提速》,视频地址:https://edu.hello […]

【数据蒋堂】第29期:JOIN运算剖析

【数据蒋堂】第29期:JOIN运算剖析

发布时间:2017-11-07 Tag:,,

10月19日,蒋步星在「天善智能」直播分享了《JOIN运算的简化与提速》,视频地址:https://edu.h […]

【数据蒋堂】第28期:迭代聚合语法

【数据蒋堂】第28期:迭代聚合语法

发布时间:2017-10-30 Tag:,,,,

我们讨论过的常规聚合运算如SUM/COUNT和非常规聚合运算如maxp/top,都是事先设计好的聚合函数。但如 […]

【数据蒋堂】第27期:非常规聚合

【数据蒋堂】第27期:非常规聚合

发布时间:2017-10-24 Tag:,

标准SQL中提供了五种最常用的聚合运算:SUM/COUNT/AVG/MIN/MAX。观察这几个运算,我们发现它 […]

【数据蒋堂】第26期:再谈有序分组

【数据蒋堂】第26期:再谈有序分组

发布时间:2017-10-12 Tag:,,

细心的读者可能会发现,我们在讨论有序分组时只研究了待分组集合的成员次序对分组运算可能的影响,但即然要考虑集合的 […]

【数据蒋堂】第25期:有序分组

【数据蒋堂】第25期:有序分组

发布时间:2017-10-10 Tag:,

我们知道,SQL延用了数学上的无序集合概念,所以SQL的分组并不关注过待分组集合中成员的次序。我们在前面讨论过 […]

【数据蒋堂】第24期:非等值分组

【数据蒋堂】第24期:非等值分组

发布时间:2017-10-10 Tag:,

 前一期 【数据蒋堂】第23期:还原分组运算的本意 我们在上一期研究了分组运算的实质,即将一个集合按某种规则拆 […]

【数据蒋堂】第23期:还原分组运算的本意

【数据蒋堂】第23期:还原分组运算的本意

发布时间:2017-09-19 Tag:,,,

分组是SQL中常见的运算,但未必所有人都能深刻地理解它。 分组运算的实质是将一个集合按照某种规则拆分成若干个子 […]

【数据蒋堂】第22期:有序遍历语法

【数据蒋堂】第22期:有序遍历语法

发布时间:2017-09-19 Tag:,,

前一期 【数据蒋堂】第21期:常规遍历语法 我们继续讨论遍历运算的语法规则。 5. 序号的引用 SQL延用了数 […]

【数据蒋堂】第21期:常规遍历语法

【数据蒋堂】第21期:常规遍历语法

发布时间:2017-09-05 Tag:,,

遍历可以说是最基本的集合运算了,比如求和、计数、寻找最大最小值等聚合运算,按条件过滤集合、根据集合成员生成另一 […]

【数据蒋堂】第20期:从SQL语法看离散性

【数据蒋堂】第20期:从SQL语法看离散性

发布时间:2017-08-21 Tag:,,,

所谓离散性,是指集合的成员可以游离在集合之外存在并参与运算,游离成员还可以再组成新的集合。从离散性的解释上可以 […]

【数据蒋堂】第19期:从SQL语法看集合化

【数据蒋堂】第19期:从SQL语法看集合化

发布时间:2017-08-21 Tag:,,

SQL作为最常用的结构化数据计算语言,虽然在做一些细致处理时不太方便,但用于描述基本运算还是比Java等高级语 […]

【数据蒋堂】第18期:SQL用作大数据计算语法好吗?

【数据蒋堂】第18期:SQL用作大数据计算语法好吗?

发布时间:2017-08-08 Tag:,,

当前的大数据平台在处理结构化数据时大都仍然以提供SQL语法为主流。兼容SQL的好处是很明显的,SQL的应用非常 […]

【数据蒋堂】第17期:SQL的困难源于关系代数

【数据蒋堂】第17期:SQL的困难源于关系代数

发布时间:2017-07-31 Tag:,,

在结构化数据处理领域,SQL无疑是应用最广泛的工作语言,不仅被所有关系数据库采用,许多新进的大数据平台也将实现 […]

【数据蒋堂】第16期:SQL像英语是个善意的错误

【数据蒋堂】第16期:SQL像英语是个善意的错误

发布时间:2017-07-25 Tag:,,

我们知道,SQL长得很像英语,简单的SQL语句直接可以作为英语读。除了SQL外,其它主要程序设计语言都没有这样 […]

【数据蒋堂】第15期:开放的计算能力为数据库瘦身

【数据蒋堂】第15期:开放的计算能力为数据库瘦身

发布时间:2017-07-18 Tag:,

【数据蒋堂】第14期:计算封闭性导致臃肿的数据库 我们在上一期谈到,数据库的臃肿,也就是过多的中间表以及相关存 […]

【数据蒋堂】第14期:计算封闭性导致臃肿的数据库

【数据蒋堂】第14期:计算封闭性导致臃肿的数据库

发布时间:2017-07-10 Tag:,,

许多大型用户的数据库(仓库)在运行多年之后,都会积累出很多的数据表,严重者数以万计。这些数据表年代久远,有些已 […]

【数据蒋堂】第13期:怎样看待存储过程的移植困难

【数据蒋堂】第13期:怎样看待存储过程的移植困难

发布时间:2017-07-04 Tag:,,

存储过程移植困难是经常被诟病的,在罗列存储过程的缺点时,这一条几乎从来不会被遗漏。 存储过程的移植确实很困难, […]

【数据蒋堂】第12期:存储过程的利之弊

【数据蒋堂】第12期:存储过程的利之弊

发布时间:2017-06-22 Tag:,

存储过程是数据库领域中应用非常广泛的技术,关于它的利弊讨论由来已久,我们这里针对存储过程的两个公认度较高的优点 […]

【数据蒋堂】第11期:不要对自助BI期望过高

【数据蒋堂】第11期:不要对自助BI期望过高

发布时间:2017-06-15 Tag:,,,

从早期的多维分析(OLAP)到近年来的敏捷BI,BI产品厂商一直在强调自助能力,宣称可以由业务人员自己分析数据 […]

【数据蒋堂】第10期:报表的数据计算层

【数据蒋堂】第10期:报表的数据计算层

发布时间:2017-06-06 Tag:,,,

我们在上一期已经解释了报表应用结构中数据计算层的必要性,以及可以使用报表工具自定义数据源接口来实现计算层。在计 […]

【数据蒋堂】第9期:报表应用的三层结构

【数据蒋堂】第9期:报表应用的三层结构

发布时间:2017-05-31 Tag:,

在传统的报表应用结构中,报表工具一般都是与数据源直接连接,并没有一个中间的数据计算层。确实,大部分情况下的报表 […]

【数据蒋堂】第8期:列式存储的另一面

【数据蒋堂】第8期:列式存储的另一面

发布时间:2017-05-26 Tag:,

列存是常见的数据存储技术,在许多场景下也确实很有效,因而也被不少数据仓库类产品采用,在业内列存也常常就意味着高 […]

【数据蒋堂】第7期:硬盘的性能特征

【数据蒋堂】第7期:硬盘的性能特征

发布时间:2017-05-19 Tag:,

我们都知道内存比硬盘要快得多,大概能快出一两个数量级(价格也要贵这么多)。不过,硬盘的问题并不只是访问速度慢。 […]

【数据蒋堂】第6期:我们需要怎样的OLAP?

【数据蒋堂】第6期:我们需要怎样的OLAP?

发布时间:2017-05-12 Tag:,,

被狭义化的OLAP OLAP是商业智能应用中重要的组成部分,这个词从字面上理解是在线分析的意思,也就是由用户, […]

【数据蒋堂】第5期:1T数据到底有多大?

【数据蒋堂】第5期:1T数据到底有多大?

发布时间:2017-05-03 Tag:,

一英里不是个很长的距离,一立方英里相对于地球也不会让人觉得是个很大的空间。然后我说,这个空间内能装下全世界所有 […]

【数据蒋堂】第4期:索引的本质是排序

【数据蒋堂】第4期:索引的本质是排序

发布时间:2017-04-28 Tag:,

索引是经常用到的技术,但有些程序员对索引的原理了解不深,发现数据查询性能有问题立刻就想起建索引,但效果常常也不 […]

【数据蒋堂】第3期:功夫都在报表外-漫谈报表性能优化

【数据蒋堂】第3期:功夫都在报表外-漫谈报表性能优化

发布时间:2017-04-20 Tag:,

应用系统中的报表,作为面向业务用户的窗口,其性能一直被高度关注。用户输入参数后都希望立即就能看到统计查询结果, […]

【数据蒋堂】第2期:非结构化数据分析技术是忽悠

【数据蒋堂】第2期:非结构化数据分析技术是忽悠

发布时间:2017-04-12 Tag:,,

大数据概念兴起的同时也带热了非结构化数据分析。传说一个企业中80%的数据都是非结构化数据,如果按占据空间来算, […]

【数据蒋堂】第1期:多维分析的后台性能优化手段

【数据蒋堂】第1期:多维分析的后台性能优化手段

发布时间:2017-04-05 Tag:,,

多维分析就是针对一个事先准备好的数据立方体实施旋转、切片(切块)、钻取等交互操作的过程,经常也被直接称为OLA […]