1、其他NoSQL数据存储模式列族数据库null列族数据库(Column Families Database)null为大数据处理而生;null为了解决大数据存储问题,引入了分布式处理技术;null为了提高数据操作效率,针对传统数据库的弱点,采用了去规则去约束化的思路。null主要的列族数据库null Cassandra,Hbase列族数据库实现基本原理null传统关系数据库与列族数据库在磁盘中的存储方式比较1010张三北京通州一丁大街2号138000000001011李四天津和平区马场道3号13900000000以行为单位进行读写以列为单位进行读写列族数据库实现基本原理客户编号姓名地址联系电话发
2、票抬头邮箱1010张三北京通州区一丁大街5号13800000000中国人民银行1011李四天津和平区马场道3号13900000000 1012王五上海浦东区世界大道1号13600000000上海交通信息中心 表某电子商务网站客户基本信息(稀疏矩阵表)列族数据库实现基本原理null列族数据存储逻辑模式命名空间CustomerInf101010111012.行键CustomerID列族名BaseInfs1列族名BaseInfs2列名Name列名Addr列名Call列名InvoiceHeader列名Mail张三时间1李四时间1王五时间1北京.时间1天津.时间1上海.时间113800时间113900时
3、间113600时间1中国人民银行时间1中软集团时间2上海交通信息中心时间时间1列族数据库存储结构基本要素null键空间(Key Space)null列族数据库的顶级数据库结构,是列族数据库的命名空间。null行键(Row Key)null行键用来唯一确定列族数据库中不同行数据区别的标识符。null列族(Column Family)null由若干个列所构成的一个集合叫列族。null列(Column)null列是列族数据库里用来存放单个数值的数据结构。null列的每个值(Value)都附带时间戳(Time Stamp),通过时间戳来区分值的不同版本。关系型数据库和列族数据库的术语对比关系型数据库列
4、族数据库数据库实例(database instance)集群(cluster)数据库(database)键空间(keyspace)表(table)列族(column family)行(row)行(row)列(column,每行所对应的各列均相同)列(column,不同的行所对应的列可以有差别)列族存储特点null擅长大数据处理,体现了更好的可扩展性和高可用性。null对于命名空间、行键、列族需要预先定义,列无须预先定义,随时可以增加。null在大数据应用环境下,管理复杂,必须借助各种高效的管理工具来监控系统的正常运行。null Hadoop生态系统为基于列族的大数据分析提供了各种开发工具。nu
5、ll数据存储模式相对键值数据库、文档数据库要复杂。null查询功能相对更加丰富。null高密集写入处理能力。列族数据库应用示例null Cassandra应用null 2013年,Netflix用Apache Cassandra替代了Oracle。图数据库null图(Graph)null是由若干给定的点及连接两点的线所构成的图形,用来描述某些事物之间的某种特定关系。null节点(Node)代表一个事物实体。null边(edge)表明实体之间的关系,用连接两点的线表示。null节点和边都可以附加属性(Attribute)。北京天津上海重庆郑州广州 图存储实现null图数据库存储结构的基本要素nu
6、ll节点,边,属性null例:可以通过该存储模型,处理某一家全国联网的快递公司的快递派送方案。null图中两个节点之间最短路径是多少?null两个节点之间哪条派送成本最小?null两个节点之间哪条派送速度最快?null哪个节点的邻居节点最多?(是否可以在该出建立中转仓库)null哪个节点是薄弱节点?null在某一时段,哪个节点货物进出量最大?哪个货物进出量最小?北京天津北京火车北站天津火车南站010-88888888张三021-88888888李四110公里40分钟属性节点边图存储特点null处理各种具有图结构的数据。5 2741 2无向图1 2有向图4 131033网络图1A2B3C二分图1
7、 2多重图1 2120加权图1234567891011树图数据示例图存储特点null应用领域相对明确null节点、边、属性三要素特征,使图数据库的应用领域很有鲜明特点:null具有关系的互联网社交,如QQ、微信里的群及成员关系;null基于地图的交通运输,如物流公司用来选择最佳派送路径;null生物领域比较研究,如传染病、蛋白质等相关关系的专业研究;null物联网跟踪,如汽配企业全球范围配件使用跟踪;null游戏开发,如建立玩家与道具的关系;null规则推理,如根据网评决定去哪家餐馆。图存储特点null以单台服务器运行的图数据库为主null一旦图数据库被读到内存,就可以在内存中持续使用。因此在
8、一台服务器里操作图数据库,速度很快。null但受到内存最大容量限制,对图数据库的使用要进行准确测算。null只有少数图数据库具备分布式处理的能力。null Neo4j具备了集群服务功能,意味着该数据库具备了多服务器存储数据的能力。图存储特点null图偏重于查找、统计、分析应用null图存储数据本身非常简单,主要通过节点与节点产生的关系,进行深入查找、统计、分析,以发现有价值的数据规律。图数据库应用示例null Neo4jnull eBay公司用Neo 4j替代了MySQL,用于完成快递查询。其他NoSQL数据存储模式null可在NoSQL官网查阅null http:/NoSQL-databas
9、e.org/null其他数据存储模式null多模式数据库(Multimodal Databases)null对象数据库(Object Databases)null网格和云数据库方案(Grid & Cloud Database Solutions)null XML数据库(XML Database)null多维数据库(Multidimentional Database)null多值数据库(Multivalue Database)null事件驱动数据库(Event Sourcing Database)null时间序列数据库(Time Series Database)null流数据库/实时数据库(St
10、reaming Database/Real Time Database)null NOSQL类型排行前两名数据库主要特点键值数据库Redis、Memcached基于内存数据处理,相对速度最快;数据存储结构最简单,只有Key- Value对形式;对值的查询统计功能支持很弱;由于基于内存数据处理,数据持久性相对弱。Redis具备大数据管理能力(主从管理模式);事务处理能力弱。文档数据库MongoDB、Couchbase MongoDB基于硬盘数据处理,速度比SQL数据库提高10几倍;Couchbase基于内存处理;两者都具有很强的横向扩展能力;文档数据库的值具备复杂文档结构数据的处理能力,查询统计
11、性能相对比键值数据库要强。具备大数据处理能力;无事务处理能力。列族数据库Cassandra、Hbase基于硬盘数据处理,由于主要面向大数据存储,写速度明显比读速度要快,整体读写速度较键值数据库、文档数据库要慢;具有强大的数据查询统计功能;无事务处理能力。图数据库Neo4j、OrientDB基于硬盘的数据处理,侧重图数据查询计算。ACID事务。其他数据库MarkLogic、InfluxDB略主要NoSQL数据库产品的特点NoSQL数据库的优缺点NoSQL键值存储文档存储列族存储图存储null优点null高可扩展性null分布式计算null低成本null架构的灵活性null半结构化数据null没有复杂的关系null缺点null没有标准化,通用性较差null有限的查询功能null最终一致性NoSQL不能看作是关系型数据库的替代品