商讯信箱
用户名: @
密  码:   注册|忘记密码
登录
个人用户经销商
您的位置:首页 > 技术频道 > 正文


【IT168 专稿】主持人:大家好,今天我到分论坛就感觉很开心,因为我们今天的阵容非常强大,而且老朋友非常多,这位是Sybase技术总监卢东明先生,这位是冯春培先生,这位是淘宝网的首席DBA。总之,非常多的熟悉的面孔,今天的分论坛不像上午那样,我们不做那样的演讲,大家会做一些探讨性、互动性强的一些讨论,包括我关注Sybase的一些话题也想得到一些答案,首先请专家给我们做一些介绍和发言,然后大家有什么问题向他们提出来,我们做一个互动性讨论。

我们有请卢先生为我们做一个发言。

卢东明:大家好,很高兴又回到IT168,我也很荣幸这一年里面跟大家在ITPUP上就Sybase的一些技术,包括一些商务智能、数据仓库等技术有一些交流,今天也想讲一个比较新颖的话题,今天片子比较有趣,有很多图,主要的要点是看看能不能跟大家分享一个很重要的信息,就是“商业智能呼唤革命性的技术”,现在越来越多的企业进入商务智能之后,我们怎么样带领大家把它做好。

最近跟很多大的企业聊了很长时间,给我的感觉就像坐在钱堆上的孩子一样,他们很有钱,但是他们不知道怎么样去用钱,不知道怎么样把企业里头真正的黄金都挖出来,坐在宝贵的数据上,坐在宝贵的黄金上,他们现在不一定能发挥企业最大的潜力,怎么样在竞争中取胜,这个给很多企业都提出了一个最直接的挑战,就是商务智能,他们都在认识到商务智能是能把企业所有的黄金挖掘出来的最好的武器。

像中移动、国家电网、国内的各家国有的甚至一些海外进来的金融机构,都在倡导做商务智能、精英分析,商务智能给大家带来的直接挑战就是数据量的显著的、成倍数的膨胀,各种各样的数据,不光是企业的业务数据,也包括非结构化的数据等等,在这样一个数据膨胀的形成下,它们会遇到很多挑战,数据膨胀、数据爆炸、性能下降等等的挑战,有一个很有趣的地方就是,大家都是数据库论坛,其实数据库这个库字就把大家定在这儿了,实际上我们是在玩儿存储的,怎么样把数据存储下来,怎么样通过一些运算把数据里面的信息,把数据转化成信息、转化成价值和黄金。

从最早的时候,数据的存储是通过纸带,慢慢变成磁带、磁盘,磁带到磁盘有一个跳跃,能够随机地定位,到了硬盘数据多了,容量大了。现在硬盘已经跟一个硬币差不多大小,可以集成很多的信息,但是有一个非常重要的要点希望大家能够看到,也就是说所有的ETB,有效的传输带宽,一个磁盘它的有效传输带宽到底是在上升还是在下降,什么叫做有效的传输带宽呢,也就是分到每一个单位到底有多大的带宽传输给外边,整体效能要发挥出来,中间有很多通讯的,也就是说你把数据存进去了这个没有问题,但是能不能在CPU想用这些数据的时候能够以最快的速度给CPU,过去二十五年里面磁盘的容量增长了一万倍,非常恐怖的数字,但是我们市面上我们市面上能够买到一个TB的盘,以前10兆已经算是很大的硬盘了。我二十多年前接触计算机的时候十兆的硬盘、五兆的硬盘,容量增加了一万倍,其实传输率只增长了100倍,也就是说最终真正有效的传输带宽是下降的而不是上升了。

在座的都是DBA,我们拿数据来说一些话,做一个更精确的论证,比如说十年前,我们不推二十五年前了,十年前一般的硬盘是5GB,现在是500G,十年增加了100倍,但是单个盘的IO传输率仅仅增长了二十倍,从3MB/秒变成了60MB/秒,过去10TB要用2000块盘,现在二十个盘就够了。但是反过来总的IO的吞吐量,如果每个盘都有3兆的传输率,这两千块盘可以提供每秒六G的传输速度,但是现在反而下降了,也就是说如果有10个TB的数据仓库,要做运算的时候涉及到这十个TB,原来只需要花半个小时,现在需要两个半小时。也就是为什么现在随着数据膨胀,我们的计算机系统甚至比以前的系统某种程度上来说还要慢。

所以说硬盘正在变成磁带,越来越慢了,反过来,存储的开销,大家都知道,越来越大,在整个系统里面占的比例越来越大,现在很多搞IT的人,谈到自己的数据库都会有这样的感觉,它很老实,也很能吃苦,也很爱我,可是我要的是能给我挑虱子的,这是两个猴子的谈话,结合我们的IT,我们会发现我们的数据库的确很老实、也很吃苦,每天在那儿算,但是是不是我们要的呢?其实不是,因为我们数据的膨胀是急速增长的,我们如果没有一个突破性的手段的话,我们就没有办法真正解决你想解决的问题。

想像彭祖一样活到800岁可能是一个梦想,但是将人的寿命延长到200岁也许并不遥远,几年前科学家发现一个INDY基因,果蝇的寿命从37天到了110天,我们如果要突破的话,是需要在基因上、数据库底层进行改变,如果没有这个变化的话,我们只能让数据库更能吃苦一点,你们是不是也在寻找数据仓库、海量的数据性能突破的基因呢,我想每个人心里都有这样的愿望。

这个其实就反映到两类不同的应用上,一类是OLTP,还有一类是OLAP,这两类应用的特性实际有很大的不同,我这边用红的标出来的应该说是最难突破的,比如说OLTP是以删除、修改为主的操作,而OLAP是查询、复杂运算为主的操作,事务量一个多一个少,单个事务查询时间很难突破。比如用户做股票,有的证券公司打出来说,如果我60秒之内没有找到你的单子的话不收佣金。对一个并发度高来说,也是一个很难突破的地方,怎么样应付几千个并发,在抢单子的时候能够找到数据。更难的是数据量从几行变成几千亿行的时候怎么样处理,有没有很好的手段,这是这两类应用非常不一样的地方。

最后有两个需要注意,一个是OLTP里面,大家通常是往三范式方向走,减少数据重复,提高效率。但是在OLAP大家反而往相反的方向走,因为要尽可能用多维的模型,让数据一次查询中越快越好,而不在数据的节省,所以说为什么有很多发现数据膨胀好多倍。这也是比较难处理的地方。还有一个特点是在查询的时候,OLTP所有字段都能给,而OLAP只在几个字段能给。

我们可以用几幅照片来表现一下OLTP和OLAP,OLTP就像钱一样散着,但是数据仓库是非常多的钱在一块,海量的数据,我现在问你一个问题,这里边一共多少钱,这就是很典型的OLAP的操作,或者一百块钱有多少捆,100的、20的、50的、10的做一个统计。如果钱全部散在这儿的话,我想DBA也不要做了,再吃苦耐劳也不要了,但是整理起来,按列放,你就会发现,好像数起来也不难,每一沓一万的话还是能数出来的,实际上数据仓库里面也有这样的东西。Sybase就有一个突破,让大家在海量数据里面以非常快的速度查到你要的数据,Sybase提出一个全新的理念就是列式存储,就好象刚才的人民币按列堆在那儿以后,我已经分好了你去查,其实很容易,不是需要几千几夜才能查出来的东西。那么相比之下,传统的所有数据库都是按行存的,刚才已经解释清楚了,按行存有很多优势,一个信息进来我们可以很快地找到位置。也就是当我做一个统计的时候,势必要把所有的信息扫描,等等很多遇到的问题就会出来。

那么列式是怎么样做呢,就好象我现在进来的人在门口进行一个分析,所有戴眼镜的人全坐在这边,男士后边女士前边,这样数的时候你说戴眼镜的在哪我光看这边就知道了。列式存储就是帮你做这样的工作,在数据进来的时候把它按列排放,进行了有机的存储,这个时候你就会发现,我对数据进行了有效的排放以后,你再进行查询的时候,你就会发现我只会读那几个列,一扫就能够扫出来,这就是列式存储的革命性所在,这个革命性给大家带来的其他的优势是什么呢?是压缩,数据能够得到大量的压缩,刚才说了列式有一个优势是说查询的时候节省大量的IO,不需要去查找跟我无关的列,减少了90%的IO,但是这还不算,在一个列的情况下,我可以根据这个列的数据类型,根据它的数据类型可以对它进行很有效的压缩,比如说这一个列上一共只有几十种值,随着它重复了几十万遍,比如说中国的省份不超过三十几个,但是把人口算出来有十几亿,但是我不需要算十几亿的省的名字,IQ会把它代码化,把北京、天津这样的名字变成代码,真正在数据列里面存的是那些代码,运算的时候可以成千倍地提高效率。

那么压缩了以后你就会发现,最终的数据库的大小和传统的数据相比,可能会从二点几个T到六个T,这个压缩比给大家带来的东西是什么呢,实际上最终是一个钱,因为你到底用多少钱去做事情。05年雅虎的数据仓库是100个T,但是AIELSEN Media是17个T,从这样的你可以看到,原数据的量是差不多的,但是雅虎用了不同的东西,要多六倍来完成。所以跟我们的友商相比,我们的压缩技术非常典型。如果像雅虎那样节省一下,这个嫌是非常可观的。

同样的数据,比如说100GB的仓库,放到IQ里面一个小东西就解决了,但是友商需要一个机柜才可以做下来,10TBIQ用两个机柜,192块硬盘就完成了,但是用Oracle的系统的话需要花3000个硬盘,26个盘柜,可以看到这两套系统相比起来,不管代价还是每年的运营成本都相差非常显著。

右边这套系统估计每年的电费大约是50万美金,维护整个机房的开销,而且这是每年都要花的。

IQ去年年终做了一个全球最大的数据库的测试,一个PB,以前的硬盘是10兆,现在不仅GB不是一个可值得提的数字,TB都很一般了,你说我的数据库里面有一个TB还会听一听,PB就是下一个阶层了,1000个TB存了六万亿条股票信息,这样的数据量很多人要问加载要花多长时间加载,我们花了三个星期的时候,每秒钟300万行数据,把六万亿行数据加载。加载完了以后从一个PB,变成了160个TB左右,也就是说整体数据的压缩率达到了84%。大家可能在座的都是DBA,会觉得这套系统非常贵,这套系统我想国内很多企业都买得起,我想在座的有些人你们的企业数据中心里边按照这个配置都可以够好几套了。
SybaseIQ是去年国内包括国际上第一个把我们的数据库被媒体正式地认可为绿色的数据库,什么意思呢?是指的说它给你带来的价值不光是在产品性能上、不光是产品稳定性和整体解决方案上,而且是在整个的环境保护上、以及节能减排,产品的ROI上都有非常显著的效果,这是国内目前唯一一个绿色的数据库,节省的电费包括存储空间都80-90%以上,给企业的信息是非常清晰的,需要用什么样的代价来开发一个系统、维护一个系统。

IQ上有九种专门为数据仓库列式存储设计的索引,LF、HG等,加速整个复杂查询、海量数据查询的效率。

扩充,可伸缩性,当你的一个硬件系统不能够支持你的查询的情况下,可以通过IQ的多路并法的机制,可以线性地扩展,它把负载全部挪到CPU和内存上,你会发现在添加节点的时候,光线通道不再是一个头疼的瓶颈问题,每次增加CPU和内存的时候,你就会发现效率、并发度就会呈线性增长,几乎完全跟CPU的主频数锁定了。

在整体的架构上,除了IQ充当数据仓库的核心引擎以外,前端的BI的展现工具,后边的建模和原数据管理工具,有的地方我们提供我们的产品,没有我们的产品的时候我们都是开放的接口,像业界的都跟IQ有很好的接口。

速度上会有成倍的增长,TCO上面,经济性,通常一个项目放到IQ上会比传统的行式数据库减少30-70%的存储和开销,扩展性可以支持大量的用户量。

所以回到我今天带给大家的主要信息,也就是商务智能挑战革命性的技术,Sybase IQ是响应这个挑战的最好的工具,目前美国有几家公司是新兴的公司,他们也是在做列式数据库,他们从创投那边拿到钱,都在做列式数据库,这几家中有一家公司后台的主要技术人员和业务人员是什么人呢?是七十年代MIT的资深教授等,这几位大佬在支持它,这些公司的产生从一个侧面来验证现在列式数据库的春天就要来到。现在数据的膨胀程度已经给行式数据库提出了不可解决的问题,列式数据库应运而生,到了蓬勃发展的阶段,我们在技术上有一个前瞻性,很多企业现在选Sybase IQ做他们的数据仓库也是看重了这一点,他们知道几年以后他们的数据量可能会更大,没有办法绑定一个行式数据库走到五年以后。

主持人:感谢卢总的精彩发言,展示了那么美妙的技术。

提问:我有个统计数据,数据仓库项目80%都是失败的,包括我自己做项目,带项目也好,实际上自己也挺失望的,我也搞不清楚数据仓库的概念是成功的还是失败的,我觉得数据仓库不光是一个存数据的问题,最重要的一个问题是业务问题,我觉得数据仓库本质上是业务问题,一定需要有一些业务专家来做这些东西,比如说做一些业务建模,还有质量的问题,不同业务数据系统数据质量可能存在一些问题,最终得到的结果整合过来以后得到的期望跟用户有一定的差距,再一个问题是从业务数据库到数据仓库本身需要转换,当中发生一些数据的损耗,我觉得这三个问题才是最重要的。发生任何一个问题,做数据仓库都不是成功的。

卢东明:我很同意你的观点,虽然我不一定同意80%都是失败的这样的数据,另外一点数据仓库大家可能会有这样一个感觉是数据仓库失败率比较高,原因有几点,一个是数据仓库跟传统的业务型的项目比起来周期比较长,在它没有成功的时候我们是不是把它叫做失败的,这是有商榷的。就好象大家做车一样,从中国汽车工业开始,在没有做出很成功的车型或者企业的时候,我们是不是把中国的汽车工业称为失败呢,我觉得不应该,大家都还在探索,国际上也不是每个都能成功,但是大家还是看到商务智能越来越有迫切性了。

当然另外你说的ETL或者前端展示也好,它的作用在整个BI系统工程的过程中都占有它的地位,比如我们现在提供的产品,刚才说了,在整体的架构上面,Sybase IQ只是做了一个其中的环节而已,并不是说我们解决了整体的东西,但是每个环节如果都能够有各自的厂商进行突破性的进展,我想可能你会发现整个项目会比现在想象得容易得多,就好象我前两天给人家做演示的时候也讲到一个,我手机上面就有一个Excel的程序,这个东西十年前不可想象的,那个时候要想让企业做一个电子表格的东西,他也会认为这是非常难处理的事情,所以计算机的发展既给大家一个视角,也给大家一个历史观,也就是说计算机永远在处理现在难办的事情。刚才你提到ETL的过程,其实很多技术的进展也对整个体系的应用开发理念提出各种各样的挑战或者是各种新的见解,比如说ETL,好像大家觉得是顺理成章的事情,一个项目有原数据,转换要需要ETL,但是现在你会发现,有很多过程放在数据库里面比放在ETL里面有成几千倍的提高,现在有一个理念叫ELT,就是我抽取出来以后,先放到数据库里面,先L,这个比用ETL工具快不知道多少倍。那么这个概念是怎么提出来的,还是由于列式数据库能够显示出来,如果没有这样的突破的话,我想ELT这个概念也出不来。

所以就像盲人摸象一样,没有人能够看到商务智能是一个整体的大象怎么样走,怎么样运转,所以每个公司都围绕着大象的某一个角度在做事情。

提问:我问一下Sybase IQ的具体技术问题,列式存储压缩的功能默认的情况下就是有的,就是一定会压缩。有些行的数据可能列非常少,基本上都是单列。

主持人:关于列式存储是Sybase的专利技术吗?现在有一些厂商也在开发,这些专利是否是从中借鉴。还有像IBM可不可以借鉴这种技术。

提问:我这边再跟一下,列存储的话,在数据库里面第一行到第一百行,这个值比如都是一的话,可能就这样标一下一到一百是哪个值。还有一个就是Sybase IQETL的性能,因为前端数据库转化到Sybase里面效率会怎么样,因为我们现在都在提倡实时的ETL概念,要求比较高,这块我想问一下,在转换到Sybase IQ的话能够提供什么好办法。

卢东明:一个是压缩技术,IQ里面的压缩技术是自动有的,不需要设定或者是制订才能产生的,所以为什么我们并没有把IQ定位成一个压缩型的数据库而把它定位成列式数据库,也就是它的根本,它的本原第一步是列式数据库,压缩的特性是随着列式数据库而来的,其实压缩这个概念我想大家玩儿DB2的都知道,比如说DB2九版本也做到了某些压缩的功能甚至非常好,但是跟IQ的理念不一样,IQ是每个列自动进行压缩,的确你刚才讲到的,有些数据是不可压缩的,比如说我们举一个例子,刚才讲的一个PB的数据仓库,它的结果无非是这样,股票的代码、时间、当然精确到秒了,然后可能有最高价、最低价、买价卖价,成交价等等,这些价格实际上是不可压缩的数据。只能结果压缩的存储,但是解决不了运算,因为运算的时候还要解压缩再拿回来,这个过程实际上已经证明了是不可行的,通过压缩完了以后存储,产后减少IO,解压回来再运算是不可行的,IQ不是用这种方式去做的,IQ是在时间、交易商这些所谓我们说的基数比较低的字段上,比如说性别、省份、公司、代码等等,这些是属于低级数的,价钱、通话时长,一些属性,这属于高级数的,重复率非常低的,在高级数的信息上面,实际上任何一个数据库都没办法做到压缩。但是IQ能够做到的压缩是在低级数上,如果有一个极端的列,性别,就两个基数,IQ的压缩里可能是几十万倍,所以我们宣称的压缩率,在整个数据库的压缩率,并不是一个几十倍的压缩,因为有些压缩不了。

提问:打断一下,我理解对于低级数的列,Sybase IQ是不是仍然尝试去压缩。

卢东明:这有一个质的区别,Sybase IQ不是说通过对低级数进行压缩以后再运算的时候进行解压缩,因为对计算机来说,我们统计一下男和女,计算机在乎的是男女还是一二,还是典型的描述,它根本不在乎,计算机拿到一和零去运算和拿到男和女运算是无所谓的,我们显示的时候会说男多少个,女多少个,所以IQ压缩以后已经用比特表示这些数据了,运算又在比特运算,出来的值告诉你,中间运算的过程没有任何解压缩的过程,这也就是为什么在这些低级数上进行运算效率会成倍提高的原因。至于你要找到两个股票,这个股票价格都是九块三毛七分的在哪个时间上,我想任何的数据库都没有办法可走。
如果你要做的是把表里面的东西全部拿出来的话,Sybase IQ的优势不大。BI上的应用更多的是把数据的特征统计出来,或者通过一些算法,把结果统计出来,我要数据没有用,你要几千亿行数据吗,你不要,你只要统计结果。

主持人:IQ应该是一个数据仓库的产品,不是Sybase的数据库。

卢东明:一个谈到专利技术,实际上是这样,我们IQ里面有很多专利技术,但是列式数据库的概念Sybase并没有专利起来,所以很多小的公司在做列式数据库,这个实际上很多公司都看到这个去世了,这个趋势实际上也更加巩固了Sybase IQ在这个领域的领头地位,这几家公司目前在全球的成功用户加起来不超过50个,Sybase IQ的成功用户一千个。刚才也提到IBM有没有可能借鉴或者是有一天也能够做一个列式数据库,这个我没有办法替Oracle和IBM回答,但是它想做必须像Sybase现在这样,Sybase IQ的产品没有基于ASE的前身,是完全不同的产品线,IBM、Oracle如果要超过这个,必须要做一个完全列式的数据库,我不认为会存在一个在行式的基础上做了一个列式的东西统起来还叫Oracle,因为你把数据按行存了,你的开销已经在那儿了,就不存在我能为你节省空间,再做一个列式数据库,至于什么时候他们出这样的产品,这个不是我回答的问题。

另外提到Sybase IQ数据加载的效率怎么样,刚才一个PB的数据仓库我想可以给大家一个非常好的例证,每秒中300万行,我们在国内亲自做的案例,我们做到的数字通常是可以做到五万到十万到几十万行每秒,会经常见的,这跟传统的行式数据库相比,它的效率一般来说还是在十倍以上。但是有一点我要强调的是这个ETL的过程不管你多实时,这个ETL一定是一个批量的方式,列式数据库的优点和缺点都非常清晰,我不喜欢逐行操作,不要把数据按行给我。但是这个缺点非常好规避,你只需要把数据缓存一下。

卢东明:对于历史数据库这方面,IQ有很强的应用,这是一个非常自然而且常见的应用案例,比如说我们在交行、农行包括一些其他的银行,因为整个银监会的要求,他们就会要保留这样的数据,在美国也是,个人的报税记录在美国国税局保留七年,这些数据怎么存,实际上列式数据库本身就已经按列分区了,这是它性能提高的原因,因为我分区了所以才不碰那些不用的数据。如果说一个静态的数据库,进去不再修改了。比如原来的数据库是光纤盘做的,但是我只有每年就碰几次,我可以用一半或者更少的代表做下来。另外出于法律原因,有些公司需要跟主管部门或者证监会、银监会证明恩我这些数据库数据进来以后的确是静态的,我没有做过任何的改动,怎么证明呢,通过硬件来证明,把这些历史数据放到一个只读的存储上,IQ完全可以在只读的存储上进行操作,因为对IQ来说我的操作特性不是沿着磁道一次读500K或者1M。

主持人:我们再次对卢总的演讲表示感谢。 

1 2 3
©版权所有。未经许可,不得转载。
[责任编辑:郑重]
[an error occurred while processing this directive]