资源描述:
《cassandra 教程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、提纲概述和特点数据模型概念,排序,twitter,rrdRing写操作读操作API性能测试和比较配置说明概述非关系的数据库分布式的Key-Value存储系统一堆数据库节点共同构成的一个分布式网络服务对Cassandra的一个写操作,会被复制到其他节点上去对Cassandra的读操作,也会被路由到某个节点上面去读取特点模式灵活:使用Cassandra,像文档存储,你不必提前解决记录中的字段。你可以在系统运行时随意的添加或移除字段。这是一个惊人的效率提升,特别是在大型部署上。真正的可扩展性:Cassandra是纯粹意义上的水平扩展
2、。为给集群添加更多容量,可以指向另一台电脑。你不必重启任何进程,改变应用查询,或手动迁移任何数据。多数据中心识别:你可以调整你的节点布局来避免某一个数据中心起火,一个备用的数据中心将至少有每条记录的完全复制。数据模型数据模型可以理解为四维或者五维的hashCluster包含多个KeyspaceKeyspace包含多个ColumnFamily,通常对应一个application,如twitterColumnFamily包含多个Column,或者是SuperColumnSuperColumn:包含有多个ColumnColumn最小
3、数据单元,三元组:name,value,timestamp想象成一个name/value对name和value都是byte[]类型的,长度不限例子:"name":"emailAddress","value":"foo@bar.com","timestamp":123456789所有的值都由客户点提供,包括timestamp,所以要求客户端同步;Timestamp的作用是用来解决数据冲突,几乎可以忽略;Column(三元组)SuperColumn我们可以将SuperColumn想象成Column的数组,它包含一个name,以及一
4、系列相应的Column{//这是一个SuperColumnname:“Address",value:{{name:“street”,value:“中关村”,timestamp:1234},{name:“city”,value:“北京”,timestamp:1234},}}Column和SuperColumn都是name与value的组合,只是value部分不一样;SuperColumn的value部分是columns;注意:SuperColumn本身是不包含timestamp的;ColumnFamilyColumnFamily
5、是一个包含了许多Row的结构,类似数据库的Table。每一个Row都包含有Key以及和该Key关联的一系列Column。UserProfile//ColumnFamily{user1:{//keyusername:“x",email:“x@gmail.com",phone:“134666666"},//第一个row结束user2:{//keyusername:“zi",email:"zi@live.com",phone:“1399888888"age:“24”},//第二个row结束}ColumnFamily的类型:Stand
6、ard(column)或Super(Supercolumn)。ColumnFamilySuperColumnfamilyColumnfamilyCassandra和关系数据库的对比:Columnname字段名Columnvalue值Keyprimarykey;rowColumnfamilytableKeyspacedatabaseClusterserver插入:cassandra>setKeyspace1.Standard1['jsmith']['first']='John'Valueinserted.cassandra>s
7、etKeyspace1.Standard1['jsmith']['last']='Smith'Valueinserted.cassandra>setKeyspace1.Standard1['jsmith']['age']='42'Valueinserted.读取:cassandra>getKeyspace1.Standard1['jsmith'] (column=age,value=42;timestamp=1249930062801) (column=first,value=John;timestamp=1249930
8、053103) (column=last,value=Smith;timestamp=1249930058345)Returned3rows.排序注意:在某一个Key的某个CF内的所有Column都是按照它的Name来排序的,不是按照value排序故cassandra表设计