查看原文
其他

系列:知名互联网公司都在使用哪些数据库? | 第二弹

2017-04-26 老鱼 老鱼笔记

本篇为《知名互联网公司都在使用哪些数据库?》系列第二篇,本期内容将为你揭秘新浪网,新浪微博、58到家、京东、美团外卖、本来生活网的数据库应用情况及选型理由。


如果你想了解蚂蚁金服,去哪儿,百度外卖,魅族,腾讯在使用哪些数据库,请阅读第一篇(点击传送门)


文 | 老鱼


大数据已经成为国家战略,而大数据首先所面临的问题就是大数据的存储问题,这就绕不开数据库,因为数据库就是用来存储数据的应用软件。任何数据库,都有其优缺点, 无论是传统关系型数据库还是NoSQL数据库又或者NewSQL数据库。因此,到底选择哪个数据库,对企业而言这个决策过程都非常复杂。


就数据库实际应用水平而言,互联网公司显然走在了前列,它们都在使用哪些数据库?分别对应哪些业务场景,为什么会是这样选择?了解的人却并不多。为此,老鱼在DTCC 2017中国数据库技术大会召开前夕,走访了多家知名互联网公司并采访了其技术负责人或DBA,为大家一一揭秘。


(特别说明:部分受访者所属部门局限,因此,以下所列企业业务线对应数据库并不全面,仅列出主要应用数据库,供参考。)


互联网公司都在使用哪些数据库?

它们分别对应哪些业务场景?

为什么会是这样选择?选型理由是什么?

新浪网


采访对象:赵景波,新浪数据库平台高级DBA。


主要负责新浪数据库平台Redis自动化运维、kafka运维等相关方面工作。热爱Redis、MySQL等开源DB内部原理的探究。


目前新浪网数据库平台共有9个主要IDC、1200+服务器、7k+实例、1000+亿 hits/天、总存储容量1PB+。


大部分的时候我们的选型是这样的:如果业务场景比较适合MySQL,我们就选择MySQL作为存储,毕竟MySQL是一个很成熟的产品,其插件式的引擎特性也能满足大多数场景要求,同时其社区相当的活跃,人才储备也是最丰富的。那什么条件下会考虑除MySQL外其他数据库呢?比如业务对响应时间要求极高,或者业务场景就是简单的kv存储模型,亦或业务希望schemaless类型的数据库便于业务快速开发迭代等等,此时我们就会考虑一些其他的数据库,这也就是目前我们平台不仅仅只是提供MySQL服务,同时也提供MongoDB、Redis、Memcached、Hbase等服务的原因。


拿我们的内部服务发布系统来说,早年发布的新闻都是用MySQL存储,随着业务发展,个性化的需求与日俱增,业务表结构变更(添加字段)的需求也越来越多,而此时MySQL这种固定schema的存储模型不能满足业务快速开发迭代的需求,因此最近我们把发布系统的新闻数据从MySQL全部迁移到了MongoDB这种schemaless数据库上,给开发带来的收益还是很明显的,而我们运维方便其实也没增加太多成本,因为新版本的MongoDB还是相对很稳定的,运维还是相对比较省心。同时新闻推荐push等业务对部分接口的响应时间要求很高,那此时显而易见的我们会 推荐业务采用Redis或者Memcached这种内存KV缓存来解决业务的需求。


新浪微博


采访对象:肖鹏,微博研发中心微博数据库平台技术副总监。


主要负责微博数据库相关的管理和服务支撑工作。工作范围包括MySQL、Redis、Mmemcached、MCQ、HBase、Hadoop等软件的可用性保障、架构设计、性能优化以及自动化运维支撑平台的研发。


由于我们较为重视缓存层的建设,故在缓存层我们有比较多的选择,包括Memcached、Redis、pika以及我们内部定制的RedisCounter,这些软件基本满足如下的场景


- Memcached ,常规类缓存选择

- Redis, 负载数据结构选择

- Pika,海量缓存数据选择

- RedisCounter,计数类场景选择


而数据存储层就比较常规了,由于MySQL一贯的稳定性和表现,我们大部分持久化存储都选择了MySQL,在MySQL上我们默认选择innodb引擎,而对于大存储需求的我们会选择TokuDB引擎。


另外,我们还会对于部分适合的业务选择HBase进行持久化存储,由于分布式便利的扩容方式,对于超大存储需求的成本可以得到有效的控制。目前除了存储离线数据外,我们也在尝试让HBase存储在线数据,并提供在线服务支持。


京东


采访对象:朱健,京东大数据处理高级工程师。


2015年加入京东广告部,参与广告部反作弊系统、广告日志系统、实时统计和BI相关的工作。京东之前,在雅虎北京全球研发中心,负责广告流量反作弊相关的工作。


我们在广告实时效果系统中使用到了Redis、HBase和MySQL。面对广告数以十万计的曝光流量,需要一个高吞吐量、低延迟的数据库才能满足实时统计广告指标的需求,Redis和Redis在这方面都非常出色的,但是Redis不支持累加,所以对于变动的数据存放在Redis中,然后历史数据转储到Redis中。但是k-v系统有维度爆炸的问题,所以对于数据量不太大但是维度组合变化多的实时指标统计,我们有部分业务线使用MySQL。


MySQL在离线OLAP系统中使用过HIVE和Greenplum。HIVE其实不算数据库,是MapReduce+HDFS的抽象,非常稳定,可以处理超大规模数据,用来构建我们的日报系统,但是缺点是太慢。后来为了做到低延时的OLAP,满足广告指标实时查询的目的,MySQL引入了Greenplum。目前来看,Greenplum比较适合中等规模的大数据(百T级)。


58到家


采访对象:沈剑,58到家架构师。


在百度做过几年即时通讯后端,2011年加入58同城,任高级架构师,技术委员会主席,2015年调到58到家,现在负责企业,支付,营销、客户关系等多个后端业务部门。


和绝大部分互联网公司的存储选型类似,58到家目前的固化存储使用的是MySQL,几个很重要的原因:


一个是技术成熟,开源设计活跃,在业内使用广泛,并在在生产环境经过很大数据量、并发量、扩展性的验证;


二个是研发、测试、运维人员相对更好招聘;最主要的,它能够解决业务的各类需求。


美团外卖


采访对象:王兴星,美团外卖商业技术负责人。


前搜狗PC&无线算法负责人。2016年初加入美团外卖,从0到1搭建商业变现技术体系。


美团外卖从2013开始,目前已经单日突破1000万单,是最主要的O2O应用。


使用内部定制优化的数据库Cellar,广告业务对可用要求较高,同时针对不同规模数据,存储的方案也有所差异,针对量较小平响要求较低的使用全内存方案,针对数据量较大平响要求不太高可以采用内存+SSD的方案,同时为了整体可用性考虑,还需要一套房机房的方案。


本来生活网


采访对象:范学蠡,本来生活网BI总监。


曾在Daum负责研发,后进入贝塔斯曼负责多个数据项目。


本来生活网主要使用了MySQL、MongoDB 、SQL Server、HBASE、Hive。核心业务依然是SQL Server集群。大量写入比如用户行为采用Hbase。MySQL主要用户BI系统的集市层。


END

延伸阅读

《DBA的名义》:数据库领域会不会改朝换代?

老鱼看会:低调才是最牛逼的炫耀!

Oracle第2代IaaS 不仅是富2代还是创2代!

知名互联网公司都在使用哪些数据库?(1)

为何开源越来越火,9个原因告诉你真相!

一杯茶一本书 读懂"双11"8年技术保卫战

公众号

laoyubiji

老鱼,10年企业级老编一枚,采访过上百位CEO/CTO,你若有故事,欢迎联系!

欢迎订阅老鱼笔记

✬如果你喜欢这篇文章,欢迎分享到朋友圈✬

评论功能现已开启,灰常接受一切形式的吐槽和赞美☺

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存