数据蒋堂 关注
手机版

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

我们将等值JOIN分成三种情况来分别讨论,分情况相当于加强了条件,我们可以充分利用每种情况下的特征。 1. 外键属性化 先看个例子,设有...

SQL Group

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

JOIN是SQL中用于多表关联的运算,无论从程序员编写还是数据库实现角度来看,JOIN都是SQL中最难的运算。 其实,SQL对JO...

SQL

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

我们讨论过的常规聚合运算如SUM/COUNT和非常规聚合运算如maxp/top,都是事先设计好的聚合函数。但如果我们想实现一个以前没有...

云栖社区 大数据 函数 HTTPS

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

标准SQL中提供了五种最常用的聚合运算:SUM/COUNT/AVG/MIN/MAX。观察这几个运算,我们发现它们都可以看成是一个以集合为参数返回单值的函数,我们就先把这个共同点理解为聚合运算的定义,把集合变成单值,多个值变成一个值,也就...

函数 SQL 日志 排序 表达式 Group

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

遍历可以说是最基本的集合运算了,比如求和、计数、寻找最大最小值等聚合运算,按条件过滤集合、根据集合成员生成另一个新集合,也都是遍历运算。集合化语法要求我们能用很短的语句(经常就只有一句,而不是若干语句构成的一段程序)来描述大部分...

云栖社区 函数 SQL 表达式 数据类型

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

SQL作为最常用的结构化数据计算语言,虽然在做一些细致处理时不太方便,但用于描述基本运算还是比Java等高级语言要简单许多。这是因为SQL是一种集合化的语言,而Java等语言不是。我们下面从SQL的语法上看集合化语言的一些特征,为了方...

算法 java 函数 SQL 表达式 数据结构

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

当前的大数据平台在处理结构化数据时大都仍然以提供SQL语法为主流。兼容SQL的好处是很明显的,SQL的应用非常广泛,会SQL的程序员很多,如果继续采用SQL则可以避免许多学习成本。支持SQL的前端软件也很多,使用SQL的大数据平台很容...

云栖社区 大数据 算法 性能 SQL 数据库 集群 多线程 高性能 兼容性 数据类型

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

在结构化数据处理领域,SQL无疑是应用最广泛的工作语言,不仅被所有关系数据库采用,许多新进的大数据平台也将实现SQL作为目标。但现实是,面对当前纷杂的计算查询需求,SQL在很多方面并不够好用。我们在前面说过SQL的过程性问题,这其实...

大数据 算法 性能 SQL 数据库 排序

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

我们知道,SQL长得很像英语,简单的SQL语句直接可以作为英语读。除了SQL外,其它主要程序设计语言都没有这样,语法中就算有英语单词也仅仅是作为某些概念或操作的助记符而已,写出来的是形式化的程序语句(statement)而不是英语句子...

云栖社区 程序员 性能 SQL 存储过程

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

【数据蒋堂】第14期:计算封闭性导致臃肿的数据库 我们在上一期谈到,数据库的臃肿,也就是过多的中间表以及相关存储过程,是由于其计算封闭性造成的。如果能够实现独立的计算引擎,使计算不再依赖于数据库提供,那么就可以为数据库瘦身了。

云栖社区 hadoop 性能 模块 数据库 存储过程 存储 数据存储

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

许多大型用户的数据库(仓库)在运行多年之后,都会积累出很多的数据表,严重者数以万计。这些数据表年代久远,有些已经忘记建设原因,甚至可能已不再有用,但因为很难确认而不敢删除。这给运维工作带来巨大的负担。

云栖社区 etl 模块 数据库 用户体验 报表 存储过程 存储

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

存储过程移植困难是经常被诟病的,在罗列存储过程的缺点时,这一条几乎从来不会被遗漏。 存储过程的移植确实很困难,一般业务逻辑复杂到需要写存储过程的地步,总会不可避免地用到数据库独有的特性和语法,更换数据库时这部分代码就需要重写。

云栖社区 大数据 函数 c++ 数据库 数据仓库 存储过程

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

存储过程是数据库领域中应用非常广泛的技术,关于它的利弊讨论由来已久,我们这里针对存储过程的两个公认度较高的优点进行剖析,从而更清楚存储过程的潜在风险及应用场景。 存储过程利于界面与逻辑分离! 界面与逻辑分离是现代应用开发的一个基本准...

性能 SQL 数据处理 数据库 报表 存储过程

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

从早期的多维分析(OLAP)到近年来的敏捷BI,BI产品厂商一直在强调自助能力,宣称可以由业务人员自己分析数据,而用户方也常常有强烈的此类需求,双方一拍即合,很容易形成购买行为。但是,BI产品的自助功能真地能让业务用户自己随心所欲地分...

云栖社区 数据库 存储过程 多维分析

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

我们在上一期已经解释了报表应用结构中数据计算层的必要性,以及可以使用报表工具自定义数据源接口来实现计算层。在计算层中要完成一些复杂的计算逻辑,因此要有可编程的能力,而基于自定义接口可以采用报表工具的宿主语言(即用于开发报表工具的程序设...

云栖社区 算法 java 程序员 脚本 开发环境 报表 数据结构

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

在传统的报表应用结构中,报表工具一般都是与数据源直接连接,并没有一个中间的数据计算层。确实,大部分情况下的报表开发并不需要这一层,相关的数据计算在数据源和呈现环节分别处理就够了。不过,在开发过程中,我们发现,有一部分报表的计算即不适合...

云栖社区 性能优化 数据库 排序 报表 存储过程

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

列存是常见的数据存储技术,在许多场景下也确实很有效,因而也被不少数据仓库类产品采用,在业内列存也常常就意味着高性能。 可是,列存真有这么好吗?搜索一下,容易找到的列存缺点一般是针对数据修改的,而对于只读的分析计算任务,却很少能见到较...

大数据 性能 线程 数据仓库 索引 并行计算 磁盘 存储

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

我们都知道内存比硬盘要快得多,大概能快出一两个数量级(价格也要贵这么多)。不过,硬盘的问题并不只是访问速度慢。 硬盘不适合做频繁小量访问 所谓频繁小量访问,是指运算过程中每次获取的数据量很小,而读取的次数很多。

性能 线程 操作系统 多线程 存储

我们需要怎样的OLAP?

被狭义化的OLAP OLAP是商业智能应用中重要的组成部分,这个词从字面上理解是在线分析的意思,也就是由用户,特别是业务人员,面对数据进行各种分析操作。 但是,现在的OLAP概念被严重狭义化了。

OLAP 在线分析 多维分析

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

一英里不是个很长的距离,一立方英里相对于地球也不会让人觉得是个很大的空间。然后我说,这个空间内能装下全世界所有人,你会不会觉到很惊讶?不过这话不是我说的,是美国作家房龙在一本书里写的。 业内有个著名的数据仓库产品,叫Teradata,...

云栖社区 大数据 数据仓库 并行计算 大数据分析 海量数据 Teradata

管理员:
sheeta
8
关注
3
成员
25
文章