这次我有幸参加了51CTO举办的2013年大数据峰会,这次大会的主题是大数据的运维(第一天)以及大数据的分析(第二天)。
大数据到底是啥意思呢?从字眼上就是很多很大量的数据,可以叫做海量数据。
当数据很小时,你可以用一台机器顶住数据访问压力,再大时你可以加内存换SSD硬盘,或者采购性能很强劲的小型机,通过硬件去解决。
从架构层出发,于是就发展到了读写分离,同时有多台Slave备机提供读取业务,这样就降低了数据库的负载。
随着数据的增长,发现依靠读写分离也解决不了高负荷高并发的访问,Slave备机延时很大,于是又发展到了对表的水平切分,依靠表的主键取模,把数据平均分散到不同的小表,再分布到各台机器上,可以看做是迁移数据,我之前写过《一篇用户信息表水平切分》的博文,有兴趣的可以去访问:
http://hcymysql.blog.51cto.com/5223301/1179880
但这个有一个弊端,就是开发需要更改他们的代码,增加路由访问策略,要知道每张小表是分布到哪台机器上,对开发人员并不是透明的,而对于DBA来说,每次都需要通过手工去拆分,比较繁琐。
下面就进入了会议的正题,首先是新浪微博,他们的解决方案是通过数据库前端CACHE层,用redis做缓存,采用nosql型数据库(非传统关系型数据库),降低数据库的负载。他们没有采用memcache,是考虑到数据可以持久化的保存在磁盘上,解决了服务重启后数据不丢失的问题,且存储的数据类型较多。
下面是淘宝,他们的开源软件Oceanbase海量数据平台(数据库中间件),其原理也是通过对主键的取模,把一张大表拆分成N张小表并存储到各台服务器上,前端应用访问海量平台,经过海量平台处理,把请求发送到后端MySQL数据库上,MySQL完成数据查询,再经过中间件,将结果送回客户端。这样对开发来说是透明的,代码层加上API接口,开发不需要知道每张小表具体放在哪台服务器上,DBA也减少了繁琐的水平拆表的工作。
目前应用在收藏夹、直通车报表、天猫评价等OLTP和OLAP在线业务,线上数据量已经超过一千亿条。
更多介绍请参考官网:
http://alibaba.github.io/oceanbase/
第二天,主要介绍了数据分析与挖掘,当数据总量将达到1.8万亿GB,对这些海量数据的分析已经成为一个非常重要且紧迫的需求。Hadoop基于MapReduce在可伸缩性、健壮性、计算性能和成本上具有无可替代的优势,目前已成为当前互联网企业主流的大数据分析平台。
目前淘宝,百度,暴风影音,360安全卫士都采用hadoop做海量数据分析。
关键词:MySQL、nosql、hadoop已成为当今互联网行业最流行、最前端的技术。
本文转自hcymysql51CTO博客,原文链接:http://blog.51cto.com/hcymysql/1188630 ,如需转载请自行联系原作者