【独家】颠覆传统,告诉你一个不同于数据库的计算体系

本文共2282字,建议阅读7分钟 本文为大家解读结构化数据的前沿动态。

[导读]数据库是当前数据分析中最重要的数据存在形式,但受其封闭性和关系代数四十年没有关键性发展等影响,现今很难满足多数据计算量的计算需求。演讲嘉宾蒋步星将针对结构化数据常见的集合和有序运算以及大数据计算等实际业务需求,分析探讨关系代数在描述和实施计算时面临的困难,研究结构化数据的计算特点后提出更有适应性的计算模型,并进一步形成更有开放性的计算能力提交方案,最后再简单分享对新一代数据仓库的展望。

本讲座选自润乾软件创始人蒋步星于2017年3月28日在清华大数据“技术·前沿”系列讲座上所做的题为《颠覆传统,告诉你一个不同于数据库的计算体系》的演讲。

(建议在wifi条件下观看)

蒋步星演讲内容重点分为四个部分。第一个部分主要讲工程方面的问题,就是关系数据库在工程方面不方便的地方,我们应该怎么解决。第二个部分,关系代数理论体系的很多问题,我们用什么办法改进。第三部分,大数据的计算技术。第四部分,展望在这些问题基础上我们设计一个什么样的新的数据库体系。

蒋步星:提及数据库,它不仅仅是做存储,更重要的是计算,特别是数据仓库更涉及计算。数据库需要存储的数据是比较规整的,必须经过设计使其有一定的约束性,以确保数据的合法性,所以它有一定的封闭性。但数据计算无处不在,此时不应把所有的计算都交给数据库来做,而是应该找一个更具开放性且轻量级的计算引擎来实施无处不在的计算。

针对实际中数据多样性和数据源的实时性,库外计算可以真正实践一个ETL过程,ETL是先E再T再L,先清洗再转换再加载;可以减少存储过程;减少冗余的中间表;可以优化执行路径。如果说有独立于数据库之外的计算能力的话,不稳定的数据就可以在数据库外做,可以落地到文件系统。但中间数据仍是需要的,因为数据运算复杂是无法避免的。

数据中心是典型的需要数据库外计算能力的场景。其对外的接口不能随便写入语句执行,需做一些访问的控制、数据的脱敏,所以它对外是一种服务式的结构,其中包括多个数据源可编程的,可集成的混合计算。它是轻量级的可集成的而不是一个很独立的东西,数据库相对来说是一个很独立的进程,集成起来并不是特别方便,这样的一种方式就可以为数据中心服务。

关系数据库的理论基础就是关系代数,它有一种形式化的语言就是SQL,考虑到应用中的实际问题,我们设计了另外一种代数体系-离散数据集。

并不是所有运算都是集合性的,离散性体现在集合成员可以游离在集合外存在;独立运算或及其它游离成员再组合新集合运算。

下面是关于离散性数据应用

然后是有序的计算,这个也是SQL的弱势之处。有序的计算天然是集合化和离散性的结合物,有序的含义并不是一个元素的顺序,它一定要在一个集合里面才有这个意义,单个就没有次序的意义了。主要是关于跨行引用、有序分组、位置利用。

案例分析:一支股票连续上涨多少天。如果是用SQL的分组的思路来做的,它还在上涨我们就跟前面的数据分成一个组,如果它下跌了就起一个新组,然后再看最长的那个分组就算出来了。若是JAVA程序员可能就是先清零,涨了加一,降了就清零,都可以做出来。但通过关系数据库,想出的解决办法很绕,所以这是我的一个招聘考题,尤其是做公司的可以拿回去试试,通过率能达到30% 左右。

其实代数体系设计得好,或者办法好,就是可以少算。接下来涉及高技能计算技术,主要是讲遍历、连接、并行,并行其实主要是解决分段或者是集群问题。

连接其实是关系代数里面最头疼的运算,实际上如果我们换一种思维看,刚才讲离散性的时候也碰到过,把外键指向的记录就认为是那个记录,而不是拿个外键号对应相等,就把它变成指向那条记录的对象。现在关系数据库最快的解决办法,是哈希对应,计算哈希值,然后要比对,哈希值如果有重的就要一个一个比对,如果重的多了还要二次哈希,会造成许多繁琐操作。

不透明的冗余方案:结构化数据计算经常是数据密集型任务; 数据分布后读取压力将由多个节点分担; 每份数据有多个备份,某节点失效后还能由别的节点计算。

另外,备胎式内存分布就不能和外存一样使用冗余式。

数据库(OLAP)与数据仓库(OLTP)是不同的。OLTP不算特别明显的大数据任务,但并发多,它特别强调事务一致性,有数据结构的多样性。而OLAP业务涉及的数据复杂度也比较高,读数据没有什么一致性。关系数据库其实是把这两种需求合到一起了,实际上并不合适。

用数据仓库,解决实际计算问题。不像计算引擎是个开放的体系,数据仓库虽不能假定数据类型,但在建新的数据仓库时,就可以要求数据组织是另外的样子。把众多数据组织到一起,存储量变小常常意味着性能的提升;把主键都序号化,建成多层,相当于外层的指针化的主键,提高整体效率。

两个小时的精彩演讲落下帷幕,大家针对技术向蒋总提出诸多问题。涉及到OLTP业务,OLAP业务的不一样在于任何一个运算的时候都可能涉及一堆服务器,是简单的分布式。涉及工程上的问题,数据计算、数据库的同样会有进一步的发展等等。

嘉宾简介

蒋步星,润乾软件创始人、首席科学家,清华大学计算机硕士,著有《非线性报表模型原理》等。1989年,中国首个国际奥林匹克数学竞赛团体冠军成员,个人金牌。2000年,创立润乾公司。2004年,首次在润乾报表中提出非线性报表模型,完美解决了中国式复杂报表制表难题,目前该模型已成为报表行业的标准。2014年,经过7年开发,润乾软件发布不依赖关系代数模型的计算引擎——集算器,有效地提高了复杂结构化大数据计算的开发和运算效率。2015年,润乾软件被福布斯中文网站评为“2015福布斯中国非上市潜力企业100强”2016年,荣获中国电子信息产业发展研究院评选的“2016年中国软件和信息服务业十大领军人物”。2017年, 自主创新研发新一代的数据仓库、云数据库等产品即将面世。

整理:王志萌 张东阳

校对:卢苗苗

编辑:文婧

转载须知

如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。

发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。

点击“阅读原文”报名数据派志愿者

本文分享自微信公众号 - 数据派THU(DatapiTHU)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-04-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏带你撸出一手好代码

谈谈代码质量问题

我们编写代码, 假如代码有语法错误,那么编译器将会拒绝通过编译, 假如代码语法正确, 那么编译器会通过编译, 因此, 判断代码是否编写正确, 可以拿代码是否能通...

43290
来自专栏GopherCoder

番外篇:面试总结(1)

21640
来自专栏云计算D1net

用于大数据的嵌入式分析和统计

用于大数据的嵌入式分析和统计已经成为了业内一个重要的主题。随着数据量的不断增长,我们需要软件工程师对数据分析提供支持,并对数据进行一些统计计算。本文概要地...

42740
来自专栏企鹅号快讯

谁适合学Python?学了Python可以做什么工作?

Tips: 目前在很多行业中都在越来越多的应用Python,这也是很多行业学习Python的原因,Python主要的应用领域有哪些呢?今天我们就来详细看一下。 ...

2.1K50
来自专栏章鱼的慢慢技术路

转载:程序员都应该访问的最佳网站

31250
来自专栏机器学习AI算法工程

如何处理 Python 入门难以进步的现象?

问题: 如何处理 Python 入门难以进步的现象? 看视频看呀看呀看, 看完了,基础的都懂了 然后就想写点东西 可是无从下手呀,我以为基础不扎实,又去看视...

42440
来自专栏HansBug's Lab

【作业4.0】HansBug的第四次面向对象课程思考

12630
来自专栏机器学习AI算法工程

微软亚洲研究员:回顾我走过的编程之路

作者: 陈梓瀚(vczh) (很荣幸被华南理工大学软件学院邀请撰写此文,关于毕业那会儿找工作的一些事情) 前些日子被华南理工大学软件学院邀请回去参加一些活动,...

36270
来自专栏牛客网

奉献一波腾讯的面经!

1K00
来自专栏牛客网

2019届校招实习生经历

一直以来都有做开发的想法,个人情况就是了解的东西挺多,但不是特别深入,也没有什么项目经验。面了6家互联网公司,全部凉凉。究其原因,首先是项目经验不足,加上基础(...

31840

扫码关注云+社区

领取腾讯云代金券