nosql入门和概述(二)

来源:互联网 发布:数据库存储文件类型 编辑:程序博客网 时间:2024/05/23 10:14

1:3V+3高

       大数据时代的3V:
                海量(Volume)
                多样(Variety)
                实时(Velocity)
        互联网需求的3高
                高并发
                高可扩
                高性能

2:当下Nosql经典应用

        
        当下的应用是sql和Nosql一起使用

        阿里巴巴中文站商品信息如何存放

                           以阿里巴巴中文网站首页的女装/女包包为例

                                 





3:Nosql数据模型简介

              以一个电商客户,订单,订购,地址模型来对比关系型数据库个非关系型数据库
              传统的关系型数据库你如何设计?想必大家都知道开始ER图吧 (这里我们就不画了)
                     nosql你如何设计?
                            什么是BSON?
                                 BOSN()是一种类json的一种二进制形式的储存可是,简称Binary JSON,他和json一样,支持内嵌的文档对象和数组对象  例如用bson设计如下:                         
{
 "customer":{
   "id":1136,
   "name":"Z3",
   "billingAddress":[{"city":"beijing"}],
   "orders":[
    {
      "id":17,
      "customerId":1136,
      "orderItems":[{"productId":27,"price":77.5,"productName":"thinking in java"}],
      "shippingAddress":[{"city":"beijing"}]
      "orderPayment":[{"ccinfo":"111-222-333","txnid":"asdfadcd334","billingAddress":{"city":"beijing"}}],
      }
    ]
  }
}
        两者对比,问题和难点:
                为什么上述情况可以用聚合模型来处理:
                       高并发的操作时不太建议有关联查询的  互联网公司用冗余的数据来避免关连查询的
        大家可以想想关系型数据库你怎么查?
         如果按照新设计的bson,怎么查?有什么好处?

   4: 聚合模型

             kv键值 
                     1:典型介绍
                          新浪:BerkeleyDb+redis
                          美团:redis+tair;
                          阿里百度:memcache+redis;
            文档性数据库(bson格式比较多):典型介绍:COunchDb MongDB

             列族 (顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。)Cassandra,HBase,分布式文件系统
            图形(注意:不是图形的哦  放的是关系比如:朋友圈社交网络,广告推荐系统等。专注于构建关系图谱)Neo4j,InfoGrid

5:在分布式数据库中CAP原理+BASE:

                 CAP:c 强一致性  a:可用性  p:分区容错性
                 CAP理论:CAP理论就是说在分布式存储系统中,最多实现上面亮点,而由于当前网络硬件肯定会出现延迟丢包等问题,所以分区容错性是我们必须要实现的。所以我们只能在一致性和可用性之前进行权衡,没有nosql系统能同时保存着三点
                CA传统的Oracle数据库
                AP大多数网站架构的选择
                cp:Redis Mongodb(注意:分布式架构的时候必须做出取舍 一致性和可用性之间取一个平衡,对于大多数web应用 其实并不需要强一致性。映场次牺牲c获取p,这是目前分布式数据库产品的方向)
                一致性与可用性的抉择
                           数据库事务一致性要求 很多web实时系统并不是严格要求的数据库事务,对读一致性的要求很低,有些场合对写一致性要求不是很高,并且最终实现一致性
                          数据库的写实时性和读实时性需求
                              对于关系型数据库来说,插入一条数据之后立即查询,是肯定可以读出来这条数据的,但对于大多数web应用来说,并不要求这么高的实时性(比如说发一条消息,首先是我自己看到,过几秒甚至十几秒后,我的朋友圈其他人才看得到这条动态是完全可以接受的)
                        对于复杂的sql查询,特别是多变关连查询的需求
                             任何大数据量的web系统,都非常忌讳多个大表的关联查询,以及复炸的数据分析类型的报表查询。
             经典CAP理论:
                       cap核心理论:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求 最多只能同时较好的满足两个 因此,根据cap原理讲nosql数据库分成了满足ca原则 满足cp原则 满足ap原则三大类
                              ca:单点集群 满足一致性,可用性系统,通常在可扩展型上不太强大
                              cp:满足一致性,分区容错性,通常性不是特别高
                              ap:满足可用性  分区容错性,通常对一致性要求地点。
                BASE:
                         base就是为了解决关系型数据库强一致性引起的问题而引用的可用性低而提出的解决方案
                        base其实就是下面三个术语的缩写:
                               基本可用(Basically Available)  软状态(Soft state) 最终一直(Eventually consistent)
                        它的思想就是通过让系统放松对某一时刻数据一致性的要求来换取系统整体的伸缩性和性能上的改观,为什么这么说呢,缘由就在于大型系统往往由于地域分布和极高的性能要求,不可能用分布式事务来完成这些指标,要想获取这些指标,我们必须要采用另外一种方式来完成,这路base就是解决这个问题的方法
         分布式+集群简介:
            分布式系统(distributed system)
 由多台计算机和通信的软件组件通过计算机网络连接(本地网络或广域网)组成。分布式系统是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。分布式系统可以应用在在不同的平台上如:Pc、工作站、局域网和广域网上等。

 nosql入门和概述就说到这里 里面可能会有或多或少的错误 欢迎大家指出 谢谢大家

2 0