|
1.NoSQL是否会干掉SQL?这种辩论之争近乎水落石出了。相信各位亲们都有一个自己的答案,哪些企业选择同时采用SQL与NoSQL?这两种数据库又是如何共融来处理相关业务的?
这个争论的存在本身就挺神奇,NoSQL的高性能很大程度上是牺牲数据的快速一致性实现的。大部分企业仍然使用关系型数据库而且运行良好,只有到一定程度上才会需要使用noSQL。而且现在MySQL也拥有NoSQL的特性,而NoSQL也在做关系型数据库的功能,下面是我从《大型网站技术构架》中读到的内容:
为了保证数据的高可用性,网站通常会牺牲另一个很重要的指标:数据一致性;
①数据持久性(Consistency)
保证数据的写入以及备份,保证灾害发生时数据不会丢失
②数据可访问性(Availability)
用户总是能够访问到数据的,即使其中的一个备份损坏了
③数据一致性(Partition Tolerance)
如果网络出现故障,导致某些备份写入失败,造成不同副本数据不一致。
CAP原理认为,一个提供数据服务的存储系统无法同时满足数据一致性、数据可用性、分区耐受性这三个条件,因此大型的网站系统中,通常会强化分布式存储系统的可用性(A)和伸缩性(P),而在某种程度上放弃一致性(C)。 因此个人认为,NoSQL和SQL要和平共存至少100年吧,我们现在的业务量使用SQL数据库仍然能够满足需求。
2.在NoSQL快速变革的世界里,DBA到底在扮演什么样的角色?是否会像恐龙一样最终消失于这个世界呢?是生存还是死亡?DBA究竟有哪些困境?
在小型公司里面是不存在专职DBA的,都是兼职工作,DBA主要工作是数据库的备份、监控、调优,和网管员在网络方面的任务类似,DBA在NoSQL时代不仅不会消失和死亡,而应该是更加的受欢迎。同时DBA的困惑也来了,需要学习的内容越来越多,而且还在高速增长,更可怕的有新的内容不断涌出。随着NoSQL本身的发展,也在模糊文件系统和数据库系统的边界,于是DBA不得不学习更多的知识,甚至需要“跨领域”学习。
3.NoSQL的Key-Value数据库有哪些?NoSQL的文档数据库又有哪些?到底有哪些区别?
这个就太多了,当做缓存使用的Memcache、Redies,文档型存储的典型代表有MongDB、CoucheDB。
区别就在于应用场景不同,很多键值对的数据库用作缓存,而文档型的多用于存储和分析。
4.从初创企业到新浪微博这样拥有着几百台Redis服务器的大公司,都能看到Redis的身影,为何只有4岁的Redis如今成为了Web开发社区中最火热的内存数据库之一?同作为Inmemory的key-value数据库,Memcached和Redis有哪些不同?
记得当年最大的区别就是Redis支持永久存储,可以保存到磁盘,memcache更常用于各种系统的缓存。相对来说,Redis具有更多更强大的功能,因此性能和效率肯定就不如memcache的高。Redis会占用更多的资源。
5.天猫双十一对阿里搜索事业部来说,就是一场高强度的数字化战争。早在2010年,Hadoop/HBase技术就被引入到里的搜索体系中,用于存储相关的网页、价格和图片信息等。不光如此,连小米、奇虎360也都在使用HBase,HBase究竟有哪些神奇之处?
Hbase相对传统RDB数据库具有更高的容量,而且天生就和Hadoop能够无缝集成,因此高强度、大密度的数据分析就会非常方便。HBase采用的是半结构化甚至是非结构化的数据库存储,记录非常的稀疏。Hbase的多机Master/Slave模式中,Master本身不负责数据处理,而只管指挥(映射),效率也是非常的高。
6.京东每天的库房记录在十亿个数量级,商品图片总共有几十亿张。这些文件基本上都是KB 级别的,关系型数据库不太擅长处理这些海量小文件。京东最早使用的内存键值存储是Redis,而现在转而使用了JimDB,您觉得为何会有这么大的转变?JimDB与Redis又能否兼容?
大的电商同时又是互联网的技术巨头,如果当前技术无法满足需求的时候就需要自己研发适合自己的系统及应用,JimDB京东自主研发的数据库存储系统。大量的小文件对于传统的数据库、文件系统来说是个烫手的山芋,我们的编译服务器十几个SDK就有400多万个文件,机械硬盘直接跑的咔咔的。对于JimDB不是非常了解,在网上看了下介绍,JimDB目前是和Redies完全兼容的。
|
|