大家好,今天我们我们采访的嘉宾是来自阿里的王骞,花名皓庭。他将会在本次的第五届中国数据库技术大会上给我们带来精彩的内容分享,首先给大家简单的介绍一下:阿里巴巴阿里云事业部核心系统研发数据库组的王骞,花名皓庭,目前工作主要是开发数据库平台rds的透明分库分表层,主要研究分布式数据库中间件、分布式数据库等。接下来就给大家带来本期的采访内容。
arron刘:首先请皓庭老师简单介绍一下自己的经历以及从事的工作?
皓庭:大家好,我是来自阿里巴巴的皓庭,我从毕业后一直在淘宝核心系统数据库组(现阿里云数据库组)从事数据库平台相关的开发,包括数据库云平台rds以及可水平扩展的mysql云平台rds_partition,也涉及一些mysql存储引擎及其它分布式数据库相关的开发。
arron刘:我看您主要对分布式数据库中间件这方面的研究很厉害,能不能和我们分享一下您们的数据库中间件?
皓庭:厉害谈不上的,我们的数据库平台rds包含一系列组件和工具,目的在于提供云数据库服务,具备数据库云产品的特点,如高可用/高可靠/数据安全/易用/低成本等。用户通过web页面申请数据库实例,得到一组可访问的数据库地址,之后即可通过这个地址使用数据库,与用户本地搭建的数据库没有区别。用户只需要使用数据库服务,而不用耗费额外的心力进行数据库的运维工作,如备份、迁移、切换等,这一切都由数据库平台自动完成。
arron刘:与同类数据库中间件相比,它具有哪些特性?解决了哪些技术难点?
皓庭:rds是提供云服务的数据库平台,包括如下特性:高可用:数据有多个副本,一个副本实例crash,另一个副本可在短时间内接管服务;高可靠:数据定期备份,并具有多种备份策略;数据安全:用户的sql将通过安全审计通道检查,避免受到sql注入等方面的影响;易用:用户只需要申请实例和访问数据库,而不需要进行额外的运维操作;易维护:运维工作如备份、迁移、切换等,都由rds平台完成,无需用户接入;低成本:用户不用自行准备机器搭建数据库环境,节约了机器成本;慢sql分析与建议:用户运行较慢的sql,rds平台将给出优化建议;
arron刘:您在开发过程中遇到那些难点?是如何解决的?
皓庭:分布式平台:为了避免分布式环境的架构成为开发瓶颈,我们使用了内建分布式环境的erlang作为主体开发语言,实践证明,这个选择是极为正确的,erlang是平台可靠的大保障。
实例管理:我们在给定用户足够带宽的前提下,尽量节省成本,对于不同数据规模的用户,其存储体系也不一样,普通规模数十G数据的用户,可以使用单实例库,大规模数百G数据的用户,可以使用透明分库分表库等。
数据库定制:目前rds支持丰富的就是mysql数据库,我们有自己的mysql源码开发专家,可以在源码级提供定制mysql服务。
数据恢复:用户的一定期限内的数据操作历史将被保留,并可根据用户需要,将操作历史回滚,使数据恢复到指定时间,避免用户数据丢失。
性能优化:我们对中间件平台、mysql数据库、文件系统、网络都进行了大量优化工作,涉及了数个团队。
arron刘:众所周知,传统的数据中心已经在企业中运行了许多年,云时代下新一代数据中心建设的云数据库,您对云数据库的未来发展是怎么看的?
皓庭:我觉得有五点是和云数据库未来发展有关的:1.云数据库具有众多的优点,使得数据库使用的门槛变得极低,因此更多的用户进入云是趋势;2.我们需要提供更多的服务帮助用户无缝接入云服务;3.平台的自动化是我们必须做的工作,否则平台无法承接大量的用户;4.不同的用户有不同的需求,云数据库必须能够应对这些不同的需求,包括数据规模、运维服务、优化建议等;5.云数据库是云生态圈的一部分,他的上游有各类web应用、无线应用等,下游又可接入各类数据分析平台,因此它也是一个灵活多变的角色,云数据库必须不断适应新的环境。
arron刘:能不能简单的给我们介绍一下您们的阿里云RDS平台呢?简单谈谈相关的特点和优势?
皓庭:其实上面都已经提到了,我这里再简单的说一下,阿里云RDS(关系型数据库),意在通过云服务的方式让关系型数据库管理操作更加简单,目前兼容MySQL和SQLServer。在硬件成本方面,RDS采用按需付费,无需托管费用,且不需要运维。同其他云服务类似,RDS也具备部署扩容的特性。基本功能主要包括日常操作:创建、报警、监控;备份恢复:根据用户自定义备份策略进行自动备份,同时对备份数据可进行查看、还原、下载等操作;弹性升级:例如与聚石塔合作,聚石塔是支撑天猫的一个重要服务,在双十一时,可以根据服务的压力,动态调整配置和资源;安全设置:RDS设有白名单,同时还具有防DDOS攻击、数据清洗、密码暴力攻击检测的功能;慢SQL查询:系统会记录下执行时间超过1秒SQL语句。故障恢复:采用双机热备方式,在遇到故障时30秒内完成切换,用户只需要在程序设置好自动重联即可;在线迁移:主要只是将某个实例在线迁移到物理机上,迁移过程中对业务不会造成影响。分布式RDS主要充当数据访问中间件的角色,在RDS上,系统会根据用户自定策略,自动将数据分不到后台的RDS上,中间件访问时会自动做路由。同时支持分布式查询和在线扩容,比如当数据节点不够时,可以自由添加更多的数据节点,这点对于用户来说是透明的。
arron刘:大数据是目前火的话题,您能不能讲讲您是怎么看待大数据的,以及在日常工作中用到了那些处理大数据的技术手段?
皓庭:大数据是互联网应用告诉发展的体现,目前很多公司都遇到了这个问题,解决方法也层出不穷。在数据链条的任何一点,都有解决大数据的方法,以阿里巴巴数据库应用为例:
oltp方面:客户端可以使用tddl中间层进行分库分表,进行数据水平扩容;数据库中间件如rds支持透明数据库分库分表访问;mysql数据库层有NDB引擎;
olap方面:云梯hadoop/飞天oltp都有对数据进行sharding的特点,尽量将事务切分到单个实例上,从而达到天然并发;olap借鉴了mapreduce的思想,使用了容错任务平台处理多副本数据;
这些都是成熟的大数据处理手段,其它公司也有自己的产品,google的spanner是期望一统大数据oltp与olap的数据库,期待它的成功。
arron刘:谈到大数据就不能不谈存储,您能不能给我们分享一下,您们的存储系统呢?简单给我们介绍一下您们的存储引擎概况?
皓庭:实际上我们并没有使用分布式的存储引擎,在目前rds的水平扩展方案中,仍然采用了数据shading,单个用户的数据按id分布在单个实例上,单个实例可以做事务,跨实例会导致分布式事务,也是大数据面对的一个头疼的问题,目前我们暂时没有这方面的应用,但仍然在向着跨实例分布式事务努力。
arron刘:.从您的角度看您认为一个数据库从业者工作中应该做的事情,应该注意的事情,应该杜绝的想法?
皓庭:数据库是一个非常宏大的体系,数据库的任意一个部件,如查询解析器、查询优化器、存储、事务以及云服务/大数据所涉及的分布式等,都够人研究一辈子了,因此我觉得:应该做的事情就是不断学习不断实践,应该注意的事情就是应该做事循序渐进,应该杜绝的想法是遇见困难就绕开。
arron刘:后能不能先提前泄露一些您在这次DTCC大会上将要阐述的议题?
皓庭:我的议题主要是介绍rds透明分库分表方案的一些实践,包括目前的单实例方案和进行中的跨实例方案,以及背后的运维工作。希望到时候可以和大家在现场一起交流沟通!
arron刘:谢谢,谢谢皓庭接受我们的采访,另外在本次的第五届中国数据库技术大会上,皓庭还会有精彩的演讲与大家分享,欢迎大家前来现场一起交流!
CU访谈录:采访阿里皓庭 分享阿里云平台相关技术经验!
分享好友
分享这个小栈给你的朋友们,一起进步吧。
订阅须知
• 所有用户可根据关注领域订阅专区或所有专区
• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询
• 专区发布评论属默认订阅所评论专区(除付费小栈外)