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

当前的大数据平台在处理结构化数据时大都仍然以提供SQL语法为主流。兼容SQL的好处是很明显的,SQL的应用非常广泛,会SQL的程序员很多,如果继续采用SQL则可以避免许多学习成本。支持SQL的前端软件也很多,使用SQL的大数据平台很容易融入这个现成的生态圈中。大数据平台打算替代的传统数据库也是SQL语法的,这样兼容性会很好,移植成本相对较低。

但继续使用SQL也有缺点,最大的问题就是难以获得大数据计算最需要的高性能。

我们在前面的文章中提到过,SQL中缺乏一些必要的数据类型和运算定义,这使得某些高性能算法无法描述,只能寄希望于计算引擎在工程上的优化。传统商业数据库经过几十年的发展,优化经验已经相当丰富,但即使这样仍有许多场景难以被优化,理论层面的问题确实很难在工程层面解决。而新兴的大数据平台在优化方面的经验还远远不如传统数据库,算法上不占优,就只能靠集群更多的机器获得性能提升。另外,SQL还是一种描述性语言,不擅长指定执行路径,而想获得高性能常常需要专门优化的执行路径,这又需要增加许多特殊的修饰符来人为干预,那还不如直接用过程性语法更为直接,这也会妨碍用SQL写出高性能的代码。

SQL发明之初的计算机硬件能力还比较差,要保证实用性,SQL的设计必须适应当时的硬件条件,这就导致了SQL很难充分利用当代计算机的硬件能力,具体来说就是大内存、多线程和集群。SQL中的JOIN是按键值对应的,而大内存情况下其实可以直接用地址对应,不需要计算HASH值和比对,性能可以提高很多;SQL的数据表无序,单表计算时还容易做到分段并行,多表关联运算时一般就只能事先做好固定分段,很难做到同步动态分段,这就无法根据机器的负载临时决定并行的线程数量;对于集群运算也是这样,SQL在理论上不区分维表和事实表,JOIN运算简单地定义为笛卡尔积后过滤,要实现大表JOIN就会不可避免地产生占用大量网络资源的HASH Shuffle动作,在集群节点数太多时,网络传输造成的延迟会超过节点多带来的好处。

如果我们设计新的代数体系和运算模型,就可能克服SQL的这些缺点,一方面更好地描述高性能算法,另一方面能充分利用当前的硬件资源,从而获得更高的性能。

不过,这样一来,对外的接口也就不再是SQL语法了,不能再兼容以往的代码了。

顺便提一句,新的运算模型并不是指当前业内的NoSQL,NoSQL并不是为高性能计算设计的,事实上它以牺牲计算能力为代价而换取了可横向扩展的能力,对于复杂大数据计算的需求而言是个倒退。

有没可能让高性能和兼容性共存呢?比如采用新的内核模型,然后基于它去解释SQL语法,或者能将SQL代码自动移植到新体系下。

理论上是可能的,解释或移植SQL是有不少工作量,但并不是非常困难。不过,这样做只能获得语法的兼容性,并不能得到高性能。高效的代码要针对运算模型的特征去编写,而SQL语法中并没有体现这些信息,一定要把SQL移植过来,仍然会面临前述的工程层面优化问题,没办法做得最优效果。事实上,两种均采用SQL的数据库,要让其特有的语法能够互相解释和移植,在不影响性能的前提下都是很难做到的。新兴的大数据厂商都愿意提供这种可移植的技术以降低老数据库的移植成本,但并没有多少成功者。

那么,结论是什么呢?

对于中短期目标的产品,那么继续采用SQL是合理的,这将有利于产品的快速应用,性能主要依靠硬件能力或更大规模的集群来提升。而面向长期目标的产品,那就有必要采用取代关系代数体系的运算型,为获得高性能,不能也不必再提供兼容SQL的方案了,需要忍受漫长的健全生态圈过程。

原文发布时间为:2017-8-8

本文作者:蒋步星

本文来自合作伙伴“数据蒋堂”,了解相关信息可以关注“数据蒋堂”微信公众号

时间: 2024-10-25 16:58:06

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

数据蒋堂 | SQL用作大数据计算语法好吗?

当前的大数据平台在处理结构化数据时大都仍然以提供SQL语法为主流.兼容SQL的好处是很明显的,SQL的应用非常广泛,会SQL的程序员很多,如果继续采用SQL则可以避免许多学习成本.支持SQL的前端软件也很多,使用SQL的大数据平台很容易融入这个现成的生态圈中.大数据平台打算替代的传统数据库也是SQL语法的,这样兼容性会很好,移植成本相对较低. 但继续使用SQL也有缺点,最大的问题就是难以获得大数据计算最需要的高性能. 我们在前面的文章中提到过,SQL中缺乏一些必要的数据类型和运算定义,这使得某些

如何使用Big SQL访问大数据使用详解

在大数据技术推广.使用过程中,一个很大的挑战就是如何使用目前企业用户广泛使用的标准 SQL 来访问基于 Hadoop 平台的大数据,使用企业原有应用来访问大数据. 现在,使用大数据技术,通常使用 Hive.Pig 及 Java 程序来访问大数据,只能支持标准 SQL 的子集,需要用户学习新的编程语言,改写企业原有的应用,为了解决上述问题,IBM 推出了 Big SQL,它使用标准的 SQL 来访问基于 Hadoop 平台的 InfoSphere BigInsights,并提供标准的 JDBC.O

【大数据新手上路】“零基础”系列课程--如何通过大数据开发套件Data IDE玩转大数据

免费开通大数据服务:https://www.aliyun.com/product/odps 老板每天都要出这些业务数据(销售总额.总交易量.总点击次数.总加入购物车次数.总加入收藏夹次数...),我得想个一劳永逸的方法了- 幸好,我有数加神器大数据开发套件Data IDE,搞定业务工作流调度,每日定时自动执行任务,分分钟输出计算结果. 妈妈再也不用担心我焦头奋战了-- 本教程是一个大数据开发套件Data IDE零基础教程,通过Data IDE将多源异构的数据集导入云端MaxCompute,进行计

2017大数据标准化论坛发布了第一批大数据系统测试结果,阿里云数加获得了大数据系统测试证书。

2017年3月18日, 2017大数据标准化论坛在北京成功召开.本次论坛由工业和信息化部信息化和软件服务业司和国家标准化管理委员会工业标准二部指导,中国电子技术标准化研究院和全国信标委大数据标准工作组共同主办.全国信标委大数据标准工作组组长梅宏院士.工信部信软司李冠宇副司长.国家标准化管理委员会工业二部刘大山副处长.大数据标准工作组高林秘书长.工信部信软司孙文龙处长,贵州.上海.四川.宁夏等产业主管部门领导,以及全国范围内的产.学.研.用300余位代表参加了会议,围绕大数据标准化工作.大数据技术

大数据如何改善社会治理:国外“大数据社会福祉”运动的案例分析和借鉴

一.背景 今年,国务院印发<促进大数据发展行动纲要>明确指出大数据将成为提升政府治理能力的新途径,提出:建立"用数据说话.用数据决策.用数据管理.用数据创新"的管理机制,-,推动政府管理理念和社会治理模式的进步. 与此同时,国外学术界和政府管理部门近年来也发起了一项"大数据社会福祉"(big data for social good)运动.与我国的目标相似,该运动也尝试将大数据技术与社会治理相结合,以数据驱动的方式应对现代社会中面临的一些复杂问题,增进社

大数据巨头入驻中国 Cloudera领跑大数据标准化

ZDNet至顶网服务器频道 12月15日 新闻消息:近年来,随着云计算.移动互联网.物联网等技术的快速发展,数据正呈爆炸式增长,大数据时代已经来临.面对中国市场对大数据解决方案的强劲需求,国际领先的大数据巨头Cloudera公司于12月10日正式宣布在中国设立分公司,将帮助Cloudera提升其在中国的影响力,为中国的用户提供大数据解决方案. 12日,Cloudera在北京召开了媒体见面会,包括Cloudera公司创始人兼首席执行官Mike Olson(欧胜迈).Cloudera全球副总裁大中国

数据实践之美:32位大数据专家的方法、技术与思想. NO.1 数据化运营的方法论体系

NO.1 数据化运营的方法论体系 张子良 网名胖子哥,混迹IT十余载,好读书,不求甚解.经史子集,诸子百家,一样不通.唯喜老庄之道,凡事随心,顺天应时,无所苛求.术业有专攻,金融和互联网领域数据方向,数据架构.数据仓库.BI分析多有涉猎,所憾无一精通,唯有孜孜以求,继续践行. 从大数据,到互联网思维,有人迷失,有人觉醒,迷失者继续凌乱,而清醒者却开始探索其背后的本质.当喧嚣散去,山还是山,商业还是商业,本质未变,变的只是渠道和方法.互联网与大数据时代,如何回归商业的本质,数据化运营也许不是唯一的

大数据时代下,CIO需要挖掘大数据背后的价值

云计算.大数据.移动化的技术浪潮中,创新管理与产品模式不断--云管理.云手机.云电视等陆续推出.在企业级市场,作为企业IT系统的核心基础设施,数据中心的建设.管理与运维也被推至举足轻重的地位. 云计算.大数据.移动化的技术浪潮中,创新管理与产品模式不断--云管理.云手机.云电视等陆续推出.在企业级市场,作为企业IT系统的核心基础设施,数据中心的建设.管理与运维也被推至举足轻重的地位. 大数据时代下,CIO需要挖掘大数据背后的价值,这就要求既要拥有海量数据,又要拥有海量数据的接入设备,以及实时的计

大数据之父舍恩伯格:大数据的核心要义在于共享

8月25日,2016IEBE(上海)国际电子商务博览会暨互联网+科创应用展"智享生态联接未来"高峰论坛在上海举行.大数据之父舍恩伯格出席了本次论坛,他与参会者探讨了大数据时代电子商务未来的发展趋势.他表示:"电子商务是更高效的交易,让两个交易方进行更高效的撮合.大数据给我们最核心的好处是让我们再回到买方和卖方的场景,帮助我们修正对世界的认识." 他同时还提到了大数据时代的一个问题:当数据和数据分析本身被我们进行分析的时候,有的时候,时间成本会更高.此时我们应该怎么办