Cassandra 数据模型 (基于CQL,解决胖列数量限制及灵活性问题)(1.1及以上版本) 文中主要交代Cassandra的编程模型及数据结构。由于Cassandra版本数次更新,网上中文的资料已经有点过时,比较有代表性的比如ebuy那篇文章都已经过时了,于是自己找资料,结合
Cassandra 数据模型 (基于CQL,解决胖列数量限制及灵活性问题)(1.1及以上版本)
文中主要交代Cassandra的编程模型及数据结构。
由于Cassandra版本数次更新,网上中文的资料已经有点过时,比较有代表性的比如ebuy那篇文章都已经过时了,于是自己找资料,结合官方博客写一篇Cassandra模型的文章。
一些名词的介绍:由于技术名词冲突,BigTable里的表对应的是Cassandra里的列族,而BigTable里面列族的概念更类似Cassandra早期实现里的超级列(该功能在Cassandra里已被关闭)。
Cassandra介绍
首先介绍一下Cassandra。
Cassandra是Apache的开源项目,是NoSQL的一种,广泛意义上的列族数据库,分布式,无中心机。其早期实现主要参考了Google的Big Table论文及亚马逊的Dynamo论文中的介绍,可以参考两篇论文来获得Cassandra的设计思想,关于更详细的资料,可以参见wiki及官方文档。
早期实现及最佳实践
前文提到早期实现,那么现在当然与早期区别已经极大了,从数据模型设计到实际使用,基本上已经自成体系了。其中之一最大的改变,就是1.1版本里对数据库操作的改变。
Cassandra的早期实现里,使用的完全是BigTable的数据模型,即列及列族及主键等概念。在ebuy的最佳实践的文中,对该模型的使用做了详细解释,我无意在此引用他人文章,只是简单说一下概念。
最佳实践文章总共分两部分,上部分主要说的是列族数据库中该如何设计数据模型,其中主要讨论的是对关系及部分相关数据的重复储存来减少对数据库的分布式读取,其中对列族数据库数据结构的有个挺有意思的式子,如下:
Map 


posted on
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号