1. 了不起的阿里!10多年“不务正业”后,这个部门击败美国万亿巨头
不是西风压倒东风,而是东风压倒西风!
最近, 马来西亚电商巨头PrestoMall宣布,公司已抛弃甲骨文数据库,转而采用阿里云自主研发的POLARDB云数据库。
为什么要和阿里云POLARDB云数据库牵手?效率更高,成本还更低!
事实上,早在去年12月初,PrestoMall已经完成数据库向阿里云POLARDB的整体迁移,迁移后PrestoMall的整体业务运转流畅,IT成本还下降了40%以上。
而相比于阿里的POLARDB云数据库,甲骨文提供的传统数据库太贵了,也太落后了。
作为马来西亚的第二大电商巨头,PrestoMall这几年发展迅速,3年来的营收增长超过250%,线上流量更是井喷式上涨;这时,PrestoMall却发现一个悲哀的现实:老迈的甲骨文数据库已经有些支撑不起公司的业务发展了,长此以往,公司的整体业务会因为数据库管理落后而拉大和第一大电商lazada的差距。
而已经被阿里收购的商lazada的IT数据为什么运转得那么出色?lazada的整体业务全部搬到阿里云上了啊!
为此, PrestoMall决心跳出甲骨文这个大坑,经过多次考察后,最终选择了和阿里云POLARDB云数据库合作。
因为对于PrestoMall这样的电商巨头而言,阿里POLARDB云数据库的优势非常明显:它采用存储计算分离、软硬件一体化设计,天生是为满足电商业务等大规模业务场景而来的:2019年双11当天,POLARDB创下了每秒8700万次的数据库处理峰值新记录。
在刚刚过去的第十届中国数据库技术大会上,荣获世界 科技 大奖的阿里云POLARDB再次获选“年度最佳创新产品”,实力吊打甲骨文数据库。
PrestoMall此时弃甲骨文数据库而就阿里POLARDB云数据库,不失为一种明智的选择。
如今, 时代的发展如风驰电掣,仿佛就在昨天,甲骨文还是那么的无敌于天下!
上世纪70年代,此前一直为中央情报局设计Oracle数据库的拉里·埃里森创立了“软件开发实验室”,随后,因为那篇著名的数据库论文,拉里·埃里森就以甲骨文数据库为公司的数据库命名。
公司迁入硅谷后,甲骨文的业务获得高速增长,客户中就包括埃里森此前的老雇主中情局。1984年左右,甲骨文进军全球十多个发达国家和地区,并于1986年上市,上市当年,甲骨文的年收入达到5500万美元。
1988年,甲骨文的营收超过1亿美元,成为全球第四大软件巨头。几年后,创始人拉里·埃里森成为仅次于比尔盖茨的世界第二富人。
2000年,世界软件领域的基本格局还是微软、IBM、甲骨文三足鼎立。 到了2013年,甲骨文一举超越IBM,成为仅次于微软的全球第二大软件巨头。
当时,全球所有的互联网巨头,都离不开甲骨文的数据库,比如说,阿里巴巴,它是甲骨文在亚洲的最大客户。
甲骨文业务上的成功也为拉里·埃里森带来巨大的财富,他花在购买游艇、私人飞机上的资本高达数十亿美元, 这哥们平时都是驾着米格29战斗机上班,够拽酷了吧?
2018年的福布斯全球富豪榜上,拉里·埃里森以4200亿美元的身家排在全球第7,个人财富是马云、马化腾的1.5倍。
但是最近这几年,因为拉里·埃里森对云计算的短视,全球数据库市场的形势开始急转直下。
在甲骨文数据库称霸全球时,谷歌、亚马逊、阿里巴巴先后开始 探索 云计算技术。
面对对手们的积极转型,拉里·埃里森还是不以为意,因为甲骨文在数据库方面的优势太大了,像马云所说的:“拿着望远镜也找不到对手”。拉里·埃里森还口出狂言:云计算?我完全搞不懂这些家伙在说些什么,简直是一派胡言!
当别人积蓄全力准备反戈一击、立志取代甲骨文的时候,拉里·埃里森还陶醉在过去的旧梦中不愿醒来,人世间最恐怖的事,莫过于此了!
而正是拉里·埃里森在云计算方面的迟钝和轻视,给了其他友军脱颖而出的机会,追不上形势的甲骨文则开始由盛转衰。
多年后,亚马逊AWS成为全球最大的云计算公司,在亚洲,“不务正业”的王坚领导下的阿里云也在2013年研发出能完美驾驭5000台服务器的“飞天系统”,这意味着偌大的阿里巴巴集团从此再也不需要甲骨文数据库了。
2016年左右,拉里·埃里森终于回过神来,开始布局云计算,但为时已晚:亚马逊AWS已绝尘而去,微软、阿里云在全球范围也在无情吞食甲骨文数据库的市场份额。与此同时,因为公司业务向云计算的全面转型,甲骨文不得不在营收大幅下滑的情况下,还要在全球范围里大规模裁员,以集中优势资源提升云计算业务。
在此过程中,甲骨文不断被一个个重要客户抛弃,最后,连股神巴菲特也决定放弃它了。
2018年下半年,巴菲特曾买入了价值21亿美元的甲骨文股票,但是在持有其股票仅几个月后,巴菲特就将甲骨文股票悉数抛出,这样的操作对于巴菲特是非常罕见的,说明连巴菲特已经看衰甲骨文了:我们知道巴菲特买股票有一个鲜明的特点,买了后就长期持有,从不考虑短期持有,比如说可口可乐,苹果等股票,有些都是长期持有达数十年的。
甲骨文这些年的经历也说明: 这是一个其兴也勃焉、其亡也忽焉的裂变时代,在这个不断变化的时代,你要么优秀,要么出局!
未来,大数据、云计算、AI将成为驱动 社会 发展的核心引擎,那些在自主 科技 的尖端跳舞的公司:亚马逊AWS、阿里云、华为5G、特斯拉新能源车.....它们将以自己的勇气重塑这个世界。
同时,那些看不到未来已来的人,将被这个时代狠狠抛弃!
作者:电商君
2. 数据库开发工具有哪些
您好!作为资深数据库管理开发人员,我使用 Navicat 作为数据库管理开发工具,原因是它比较其他工具更稳定、安全、好用!
Navicat Premium 是一套可创建多个连接的数据库管理工具,用以方便管理 MySQL、Oracle、PostgreSQL、SQLite、SQL Server、MariaDB 和 MongoDB 等不同类型的数据库,它与阿里云、腾讯云、华为云、Amazon RDS、Amazon Aurora、Amazon Redshift、Microsoft Azure、Oracle Cloud 和 MongoDB Atlas等云数据库兼容。你可以创建、管理和维护数据库。Navicat 的功能足以满足专业开发人员的所有需求,但是对数据库服务器初学者来说又简单易操作。Navicat 的用户界面 (GUI) 设计良好,让你以安全且简单的方法创建、组织、访问和共享信息。
另外,目前他们应该也在支持国产阿里 OceanBase 数据库。并且会在不久的将来支持Redis。
3. Oracle和OceanBase的主要性能参数对比有哪些
第一,我们要知道,阿里的OceanBase是分布式数据库,分布式数据库相比传统的集中式数据库有先天的优势,性能优于集中式数据库是必然的结果,理论上来讲,分布式数据库是传统集中式数据库性能的数倍甚至数十倍,但是我们看到的仅仅是两倍的性能,可以说,从这一点上来看,阿里的分布式数据库没有体现出分布式数据库的优势,或者说,阿里的分布式数据库技术还有很大的上升空间。 第二,从成本的角度来考虑,OceanBase的测试结果构建在近4亿元系统的之上,平均每笔订单成本6.25元人民币。Oracle 11g的测试结果构建在3000万美元的基础上,平均每笔订单成本7元人民币。似乎打个平手,但这里面就很值得玩味的了,Oracle无论是硬件还是软件,都是基于自家生产,成本本来就很高,而阿里云是基于PC Server,操作系统使用的免费的linux,成本理应很低,而现在的硬件成本相比2011年要便宜不止数倍的价格。资源使用效率上,OceanBase平均8928笔/核/2.5GHz,Oracle 11g平均17361笔/核/1.65GHz。这样算下来的话,阿里的资源使用效率要远远低于Oracle, 且成本比Oracle高出很多。这就像我们的GDP一样,总量领先,人均还有很大的差距,所以对于国内的软件人来说,还需谦虚谨慎,继续努力。 说到此,孰优孰略,相信你心里应该有个数了4. 阿里出品otter-同步数据量6亿涉及200+个数据库实例之间的同步
otter已在阿里云推出商业化版本 数据传输服务DTS, 开通即用,免去部署维护的昂贵使用成本。DTS针对阿里云RDS、DRDS等产品进行了适配,解决了Binlog日志回收,主备切换、VPC网络切换等场景下的同步高可用问题。同时,针对RDS进行了针对性的性能优化。出于稳定性、性能及成本的考虑,强烈推荐阿里云用户使用DTS产品。DTS产品使用文档
阿里巴巴B2B公司,因为业务的特性,卖家主要集中在国内,买家主要集中在国外,所以衍生出了杭州和美国异地机房的需求,同时为了提升用户体验,整个机房的架构为双A,两边均可写,由此诞生了otter这样一个产品。
otter第一版本可追溯到04~05年,此次外部开源的版本为第4版,开发时间从2011年7月份一直持续到现在,目前阿里巴巴B2B内部的本地/异地机房的同步需求基本全上了otte4。
名称:otter ['ɒtə(r)]
译意: 水獭,数据搬运工
语言: 纯java开发
定位: 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库. 一个分布式数据库同步系统
原理描述:
1. 基于Canal开源产品,获取数据库增量日志数据。 什么是Canal, 请点击
2. 典型管理系统架构,manager(web管理)+node(工作节点)
a. manager运行时推送同步配置到node节点
b. node节点将同步状态反馈到manager上
3. 基于zookeeper,解决分布式状态调度的,允许多node节点之间协同工作.
5. 阿里巴巴使用什么MPP数据库
数据库和搜索引擎这块是属于阿里的核心机密,也是盈利关键,如果不是内部核心人员的话是很难弄清楚的
6. 阿里办公电脑用的什么
用来存储的大数据库,也就是网络云盘。云电脑其实是利用云计算技术在远程虚拟出一个和个人电脑相同的主机,用户网络访问时,能获得和使用个人电脑相同的使用体验。
7. 业务通知用什么数据库存储比较好
业务数据,包括用户,订单等数据,要求数据严格准确和一致
规模如果是在千万级,或者不超过10亿级,80%选用MySQL来存储
规模如果再10亿-万亿,目前HBASE为主
以上两种是免费数据库,但对于Oracle,DB2,SQL Server付费数据库(巨贵),主要使用在银行和电信,因为对数据一致性,准确性,容灾备份要求更严格。
因为商业数据库的昂贵,互联网公司一般用不起,感兴趣可以了解下10年前阿里发起的去IOE的故事,即去掉IBM,Oracle,EMC,代替以开源软件再次开放的系统,开创新数据新时代。
日志数据,包括用户所有线上行为数据,浏览,搜索,点击等,存储在HDFS上
这类数据,相比订单和支付数据,规模要成10倍-1000倍增长。比如,我浏览10个店铺宝贝才转化一个订单数据。但该类数据,不会要求太多性能和苛刻的准确性,甚至可以容忍丢小部分日志数据。这部分数据,会放到HDFS上来存储。即一种分部式文件存储系统,存储成本很低,如果查询的话,就可以直接使用hive等工具,写SQL查询。
8. 阿里云分布式数据库服务DRDS谁使用过 简单讲讲!
淘宝开源的TDDL和cobar的结合,放到了阿里云上就是DRDS,是商品,服务,可以购买使用的。可以在阿里云官网上注册免费试用。
=====================================================
随着互联网时代的到来,计算机要管理的数据量呈指数级别地飞速上涨,而我们却完全无法对用户数做出准确预估。我们的系统所需要支持的用户数,很可能在短短的一个月内突然爆发式地增长几千倍,数据也很可能快速地从原来的几百GB飞速上涨到了几百个TB。如果在这爆发的关键时刻,系统不稳定或无法访问,那么对于业务将会是毁灭性的打击。
伴随着这种对于系统性能、成本以及扩展性的新需要,以HBase、MongoDB为代表的NoSQL数据库和以阿里DRDS、VoltDB、ScaleBase为代表的分布式NewSQL数据库如雨后春笋般不断涌现出来。
本文将会介绍阿里DRDS的技术理念、发展历程、技术特性等内容。
DRDS设计理念
从20世纪70年代关系数据库创立开始,其实大家在数据库上的追求就从未发生过变化:更快的存取数据,可以按需扩缩以承载更大的访问量和更大的数据量,开发容易,硬件成本低,我们可以把这叫做数据库领域的圣杯。
为了支撑更大的访问量和数据量,我们必然需要分布式数据库系统,然而分布式系统又必然会面对强一致性所带来的延迟提高的问题,因为网络通信本身比单机内通信代价高很多,这种通信的代价就会直接增加系统单次提交的延迟。延迟提高会导致数据库锁持有时间变长,使得高冲突条件下分布式事务的性能不升反降(这个具体可以了解一下Amdahl定律),甚至性能距离单机数据库都还有明显的差距。
从上面的说明,我们可以发现,问题的关键并不是分布式事务做不出来,而是做出来了却因为性能太差而没有什么卵用。数据库领域的高手们努力了40年,但至今仍然没有人能够很好地解决这个问题,Google Spanner的开发负责人就经常在他的Blog上谈论延迟的问题,相信也是饱受这个问题的困扰。
面对这个难题,传统的关系数据库选择了放弃分布式的方案,因为在20世纪70~80年代,我们的数据库主要被用来处理企业内的各类数据,面对的用户不过几千人,而数据量最多也就是TB级别。用单台机器来处理事务,用个磁盘阵列处理一下磁盘容量不够的问题,基本上就能解决一切问题了。
然而,信息化和互联网的浪潮改变了这一切,我们突然发现,我们服务的对象发生了根本性变化,从原来的几千人,变成了现在的几亿人,数据量也从TB级别到了PB级别甚至更多。存在单点的单机系统无论如何努力,都会面对系统处理能力的天花板。原来的这条路,看起来是走不下去了,我们必须想办法换一条路来走。
可是,分布式数据库所面对的强一致性难题却像一座高山,人们努力了无数个日日夜夜,但能翻越这座山的日子看来仍然遥遥无期。
于是,有一群人认为,强一致性这件事看来不怎么靠谱,那彻底绕开这个问题是不是个更好的选择?他们发现确实有那么一些场景是不需要强一致事务的,甚至连SQL都可以不要,最典型的就是日志流水的记录与分析这类场景。而去掉了事务和SQL,接口简单了,性能就更容易得到提升,扩展性也更容易实现,这就是NoSQL系统的起源。
虽然NoSQL解决了性能和扩展性问题,但这种绕开问题的方法给用户带来了很多困扰,系统的开发成本也大大提升。这时候就有另外一群人,他们觉得用户需要SQL,觉得用户也需要事务,问题的关键在于我们要努力地往圣杯的方向不断前进。在保持系统的扩展性和性能的前提下,付出尽可能小的代价来满足业务对数据库的需要。这就是NewSQL这个理念的由来。
DRDS也是一个NewSQL的系统,它与ScaleBase、VoltDB等系统类似,都希望能够找到一条既能保持系统的高扩展性和高性能,又能尽可能保持传统数据库的ACID事务和SQL特性的分布式数据库系统。
DRDS发展历程
在一开始,TDDL的主要功能就是做数据库切分,一个或一组SQL请求提交到TDDL,TDDL进行规则运算后得知SQL应该被分发到哪个机器,直接将SQL转发到对应机器即可(如图1)。
图1 TDDL数据库切分
开始的时候,这种简单的路由策略能够满足用户的需要,我们开始的那些应用,就是通过这样非常简单的方式完成了他所有的应用请求。我们也认为,这种方案简单可靠,已经足够好用了。
然而,当我们服务的应用从十几个增长到几百个的时候,大量的中小应用加入,大家纷纷表示,原来的方案限制太大,很多应用其实只是希望做个读写分离,希望能有更好的SQL兼容性。
于是,我们做了第一次重大升级,在这次升级里,我们提出了一个重要的概念就是三层架构,Matrix对应数据库切分场景,对SQL有一定限制,Group对应读写分离和高可用场景,对SQL几乎没有限制。如图2所示。
图2 数据库升级为三层架构
这种做法立刻得到了大家的认可,TDDL所提供的读写分离、分库分表等核心功能,也成为了阿里集团内数据库领域的标配组件,在阿里的几乎所有应用上都有应用。最为难得的是,这些功能从上线后,到现在已经经历了多年双11的严酷考验,从未出现过严重故障(p0、p1级别故障属于严重故障)。数据库体系作为整个应用系统的重中之重,能做到这件事,真是非常不容易。
随着核心功能的稳定,自2010年开始,我们集中全部精力开始关注TDDL后端运维系统的完善与改进性工作。在DBA团队的给力配合下,围绕着TDDL,我们成功做到了在线数据动态扩缩、异步索引等关键特征,同时也比较成功地构建了一整套分布式数据库服务管控体系,用户基本上可以完全自助地完成整套数据库环境的搭建与初始化工作。
大概是2012年,我们在阿里云团队的支持下,开始尝试将TDDL这套体系输出到阿里云上,也有了个新的名字:阿里分布式数据库服务(DRDS),希望能够用我们的技术服务好更多的人。
不过当我们满怀自信地把自己的软件拿到云上的时候,却发现我们的软件距离用户的要求差距很大。在内部因为有DBA的同学们帮助进行SQL review,所以SQL的复杂度都是可控的。然而到了云上,看了各种渠道提过来的兼容性需求,我们经常是不自觉地发出这样的感叹:“啊?原来这种语法MySQL也是可以支持的?”
于是,我们又进行了架构升级,这次是以兼容性为核心目标的系统升级工作,希望能够在分布式场景下支持各类复杂的SQL,同时也将阿里这么多年来在分布式事务上的积累都带到了DRDS里面。
这次架构升级,我们的投入史无前例,用了三年多才将整个系统落地完成。我们先在内部以我们自己的业务作为首批用户上线,经过了内部几百个应用的严酷考验以后,我们才敢拿到云上,给到我们的最终用户使用。
目前,我们正在将TDDL中更多的积累输出到云上,同时也努力优化我们的用户界面。PS:其实用户界面优化对我们这种专注于高性能后端技术的团队来说,才是最大的技术挑战,连我也去学了AngularJS,参与了用户UI编。
DRDS主要功能介绍
发展历史看完了,下面就由我来介绍一下目前我们已经输出到云上的主要功能。
【分布式SQL执行引擎】
分布式SQL引擎主要的目的,就是实现与单机数据库SQL引擎的完全兼容。目前我们的SQL引擎能够做到与MySQL的SQL引擎全兼容,包括各类join和各类复杂函数等。他主要包含SQL解析、优化、执行和合并四个流程,如图3中绿色部分。
图3 SQL引擎实现的主要流程
虽然SQL是兼容的,但是分布式SQL执行算法与单机SQL的执行算法却完全不同,原因也很简单,网络通信的延迟比单机内通信的延迟大得多。举个例子说明一下,我们有份文件要从一张纸A上誊写到另外一张纸B上,单机系统就好比两张纸都在同一个办公室里,而分布式数据库则就像是一张纸在北京,一张纸在杭州。
自然地,如果两张纸在同一个办公室,因为传输距离近,逐行誊写的效率是可以接受的。而如果距离是北京到杭州,用逐行誊写的方式,就立刻显得代价太高了,我们总不能看一行,就打个“飞的”去杭州写下来吧。在这种情况下,还是把纸A上的信息拍个照片,【一整批的】带到杭州去处理,明显更简单一些。这就是分布式数据库特别强调吞吐调优的原因,只要是涉及到跨机的所有查询,都必须尽可能的积攒一批后一起发送,以减少系统延迟提高带来的不良影响。
【按需数据库集群平滑扩缩】
DRDS允许应用按需将新的单机存储加入或移出集群,DRDS则能够保证应用在迁移流程中实现不停机扩容缩容。
图4 DRDS按需进行平滑扩缩
在内部的数据库使用实践中,这个功能的一个最重要应用场景就是双11了。在双11之前,我们会将大批的机器加入到我们的数据库集群中,抗过了双11,这批机器就会下线。
当DRDS来到云上,我们发现双11其实不仅仅只影响阿里内部的系统。在下游的各类电商辅助性系统其实也面对巨大压力。在双11前5天,网聚宝的熊总就找到我说,担心撑不过双11的流量,怕系统挂。于是我们就给他介绍了这个自动扩容的功能怎么用,他买了一个月的数据库,挂接在DRDS上。数据库能力立刻翻倍,轻松抗过了双11,也算是我印象比较深刻的一个案例了。
因为我们完全无法预测在什么时间点系统会有爆发性的增长,而如果在这时候系统因为技术原因不能使用,就会给整个业务带来毁灭性的影响,风口一旦错过,就追悔莫及了。我想这就是云计算特别强调可扩展能力的原因吧。
【小表广播】
小表广播也是我们在分布式数据库领域内最常用的工具之一,他的核心目的其实都是一个——尽可能让查询只发生在单机。
让我们用一个例子来说明,小表广播的一般使用场景。
图5 小表广播场景
图5中,如果我想知道买家id等于0的用户在商城里面买了哪些商品,我们一般会先将这两个表join起来,然后再用where平台名=”商城” and buyerID = 0找到符合要求的数据。然而这种join的方式,会导致大量的针对左表的网络I/O。如果要取出的数据量比较大,系统延迟会明显上升。
这时候,为了提升性能,我们就必须要减少跨机join的网络代价。我们比较推荐应用做如下处理,将左表复制到右表的每一个库上。这样,join操作就由分布式join一下变回到本地join,系统的性能就有很大的提升了,如图6所示。
图6
【分布式事务套件】
在阿里巴巴的业务体系中存在非常多需要事务类的场景,下单减库存,账务,都是事务场景最集中的部分。
而我们处理事务的方法却和传统应用处理事务的方案不大一样,我们非常强调事务的最终一致性和异步化。利用这种方式,能够极大地降低分布式系统中锁持有的时间,从而极大地提升系统性能。
图7 DRDS分布式事务解决套件
这种处理机制,是我们分布式事务能够以极低成本大量运行的最核心法门。在DRDS平台内,我们将这些方案产品化,为了DRDS的分布式事务解决套件。
利用他们,能够让你以比较低的成本,实现低延迟,高吞吐的分布式事务场景。
DRDS的未来
阿里分布式数据库服务DRDS上线至今,大家对这款产品的热情超出了我们的预期,短短半年内已经有几千个申请。
尽管还在公测期,但是大家就已经把关系到身家性命的宝贵在线数据业务放到了DRDS上,我能够感受到这份沉甸甸的信赖,也不想辜负这份信赖。
经过阿里内部几千个应用的不断历练,DRDS已经积累出一套强大的分布式SQL执行引擎和和一整套分布式事务套件。
我也相信,这些积累能够让用户在基本保持单机数据库的使用习惯的前提下,享受到分布式数据库高性能可扩展的好处。
在平时的DRDS支持过程中,我面对最多的问题就是,DRDS能不能够在不改变任何原有业务逻辑和代码的前提下,实现可自由伸缩和扩展呢?十分可惜的是,关系数据库发展至今,还没有找到既能保留传统数据库一切特性,又能实现高性能可扩展数据库的方法。
然而,虽不能至,吾心向往之!我们会以“可扩展,高性能”为产品核心,坚定地走在追寻圣杯的路上,并坚信最终我们一定能够找寻到它神圣的所在。
作者简介:王晶昱,花名沈询,阿里巴巴资深技术专家。目前主要负责阿里的分布式数据库DRDS(TDDL)和阿里的分布式消息服务ONS(RocketMQ/Notify)两个系统。
9. 为什么阿里百度腾讯用mysql
mysql是免费的,所以很多企业网站都是使用mysql数据库