麻烦从以下几个方面做个比较:
1. 并发性能 ?
2.事务回滚性能,TD可以直接放弃回滚,DB2不可以?
3.稳定性,TD稳定性是否明显高于DB2,db2 DPF BUG很多?
4.成本 ?
欢迎讨论。。。。。
我们曾经做个多次PoC测试DB2 DPF与Teradata的性能,总体来说,DB2的性能还是领先的。我想从多个层面来分析一下你提出的这个问题。
首先先说相同点,DB2 DPF和Teradata都是Share nothing的MPP架构,在对数据hash分区的处理上,两者基本使用了同样的技术。
再说说不同点。
1. Teradata支持列式存储,DB2目前也在开发列式存储功能,但还只支持单机(10.5版本的BLU功能),对于DPF的支持应该不远了。不管有没有列存储功能,从我们PoC的结果来看,列存储也并不是适用于所有的场景,只有在宽表的场景里,列存储才比较有优势。
2. 数据库质量上,我想DB2要更胜一筹,在DBA领域里,大家比较公认的一个事情就是DB2的优化器是最优秀的,这一点可能还是因为DB2是最早的数据库产品,初期有一大批优秀的科学家参与研发,所以最核心的优化器表现最为优异。
3. DB2是一个全系列的产品,不只有MPP架构的DPF,还有Share everything架构的pureScale,以及单机版本ESE,即使在数据仓库领域使用的DPF功能,也是可以进行正常的增删改查操作,不像某些列式MPP数据库不支持增删改。不管架构如何,DB2对应用来讲都是透明的。
4. TD成本高,这个也是大家公认的
基于以上的分析,我们比较倾向于IBM的DB2数据库,从长远角度来看,DB2仍然是传统关系型数据库中不错的选择。
补充两点:
DB2的并发性非常好,金融机构用的比较多,并发性肯定没有问题的。
放弃回滚,DB2也可以支持,要设置table的not logged属性就可以了。但放弃回滚就意味着出问题的时候,表会被标记为drop pending状态,只能将其删除。不过数据仓库里面很少会有回滚吧,数据加载用load是不需要回滚的,查询语句也不需要回滚。
收起给你点参考
我现在所在的运营商,之前是大部分分析业务都在TD上跑,但是今年决定将部分不是最重要的业务开始网DB2 DPF上迁了,目前还处于Ing中。
原因有:1、成本高 2、太封闭了,现在没有驻场,故障处理不急时
原因1是主要的,但是就是因为太封闭了,所以维护成本高。
1、并发性-----没对比过,但是主要DPF好好设计(物理设计,即存储,主机CPU内存配置,逻辑层(表设计,sql,索引)等做好的话,应该不差
2、DB2不可以放弃回滚,这个真的很蛋疼;这边就是SQL写得烂,所以有时候回滚需要2-3个小时。
3、就在我写这个的时候,听说TD宕了,呵呵,今年应该是宕第四次了把;dpf bug多吗?我没遇到过
4、成本方面应该分前期成本和后期成本,也要分硬件成本。如果都买一样的硬件配置,那DPF总体成本应该要低,因为TD的维护费用真是他妈太贵了
收起首先,楼上所说的我都表示十分认同.相同的观点就不重复了.
1.并发性能
由于没有第一手PoC数据,没法真正的说哪个更好,不过至少两者是相当的,在同一数量级上的.实事求是的讲,从口碑上来说,必须承认TD更胜一筹.尤其在分析型专属数据库这个类别上(GreenPlum,Teradata,Vetica,Netezza),TD具有压倒性的市场占有率.楼上也提到,从数据hash分区到SQL处理(对应DPF的Table Queue)上来说,技术上没有特别的区别.
DB2的DPF使用的是基于TCP的FCM进行通信,使用的都是通用的网卡和交换机进行集群数据交换.但是TD在网络部分使用BYNET,这也是TD所谓的秘密武器.使用高度客户化的网络通讯协议,给了TD很大的优化空间,另外TD的SQL优化器和BYNET能够配合,能够根据优化器的内部特性对数据进行更智能的传输.
我们必须承认TD的早期优势还是很大的,但是随着硬件的进步,比如万兆网络使用和普及,高处理能力的服务器,各家DB的分析处理速度都提升到一个更高的水平,基本已经能满足用户业务的需求,TD的优势被迅速缩小,甚至在某些PoC中被超过,也就不稀奇了.BYNET虽好,但也把TD绑在了一体机这一棵树上.
2.No Comment.
3.虽然楼上有客户现身说法,TD今年宕机了几次,不过我个人认为,作为一个成熟的商用产品,差别应该没那么大.提升整个系统的稳定性,应该考虑高可用的实施方案,Teradata的高可用方案了解不多,但是考虑到TD的封闭特性,高可用方案的选择面应该不太大.但是DB2 DPF的方案可选的就太多了,可以选择基于OS的,比如Power上的PowerHA,也可以选择不基于OS的TSA,数据层面上,既可以选则在存储层面备份,还可以选择在文件系统层面进行镜像(GPFS FPO),还可以选Q Req,CDC之类的基于日志的备份工具.
4.大家都说TD的成本高,高到什么程度?网传宇宙行的DW系统,原来是TD,每年维护费1.5亿,最近被换掉了.不是TD不好,问题是值这么多钱么?虽然TD现在也推出了SQL-H(AsterDB),基于Hadoop的解决方案,但是还是不敢革自己的命啊.
最后一句,这不是一个选择Teradata和DB2 DPF的问题,而是选择上一个封闭的一体机系统,还是选择一个可以随意更换组件的开放系统?
收起TD和DB2,我们这里都用过。 个人觉得:
1、TD工程实施简单,DB2对集成商要求较高,实施负杂。
2、TD维护对DBA要求简单,DB2相对复杂一些。DB2由SQL导致的事务日志满,回滚起来只能等,实际生产中,有时候需要等很长时间。
3、成本来说,TD是一体的,主机、存储、数据库软件、bynet交换机,磁带库、备份软件都在里面了,整体看起来比较贵。 DB2平台主机、存储加起来的话,也不便宜,不过可以不一定全是IBM的,这样客户会灵活一些。另外DB2软件还要看买多少license,他们是按PVU买的,买够了的话也是非常大的一部分费用,这要看公司多少预算,IBM能不能接受了。
以上个人观点,仅供探讨。
收起1.db2 dpf,teradata都属于dss类型的数据库。就dss类型的应用,teradata具有无以伦比的性能优势,而且teradata支持标准的sql语句。
2.所有事务都遵守ACID,要么成功,要么失败。dpf不具有你所说的放弃回滚。db2是标准的关系型数据库。
3.teradata在数据仓库领域比较成熟,系统稳定性不必担心。
4.至于成本,treadata是dpf的n倍。
收起