首页 » 测绘 » 10分钟带你操作Cassandra数据库(查改增删)

10分钟带你操作Cassandra数据库(查改增删)

每个节点的commitlog提交日志捕获写操作来确保数据持久性。

用于把数据划归哪个vnodes的算法。

散列是一种用于映射给定键的数据的技术,散列函数生成存储在散列表中的散列值。

为了减少大量SSTable带来的开销,Cassandra会定期进行compaction,简单的说,compaction就是将同一个ColumnFamily的多个SSTable合并成一个SSTable。

**分布式写操作**有可以在任何地方任何时间集中读或写任何数据。

包含特性:1.与Hadoop集成,允许通过MapReduce方式从Cassandra读取数据2.集成行缓存,减轻Cassandra对于其他缓存技术的依赖与Hadoop集成,允许通过MapReduce方式从Cassandra读取数据集成行缓存,减轻Cassandra对于其他缓存技术的依赖**V0.7:**2011年1月,包含特性及优化点:1.二级索引,允许在非主键字段上构建索引2.支持规模较大的行设计,可以包含最多20亿个列3.支持在线模式改变,包括在线集群环境下增加、重命名、移除KeySpaces和列家族4.通过每一列的TTL(time-to-live)特性可以设置列的过期时间5.引入NetworkTopologyStrategy,支持多数据中心部署,允许KeySpace跨数据中心的副本配置6.配置文件从XML转为更可读的YAML格式二级索引,允许在非主键字段上构建索引支持规模较大的行设计,可以包含最多20亿个列支持在线模式改变,包括在线集群环境下增加、重命名、移除KeySpaces和列家族通过每一列的TTL(time-to-live)特性可以设置列的过期时间引入NetworkTopologyStrategy,支持多数据中心部署,允许KeySpace跨数据中心的副本配置配置文件从XML转为更可读的YAML格式**V0.8:**2011年6月,这是一次较大的升级发布,包含特性:1.加入了一个新的数据类型-Distributedcounters,用于计数器的自增引入sstableloader工具,支持批量导入数据2.引入堆外行缓存,允许JVM堆内存以外的本地内存可供使用3.允许多线程执行并行压缩,对SSTable的压缩能力进行限流4.改进内存配置参数,允许更灵活地控制memtables的大小加入了一个新的数据类型-Distributedcounters,用于计数器的自增引入sstableloader工具,支持批量导入数据引入堆外行缓存,允许JVM堆内存以外的本地内存可供使用允许多线程执行并行压缩,对SSTable的压缩能力进行限流改进内存配置参数,允许更灵活地控制memtables的大小**V1.0:**2012年10月,该版本后很多厂商开始在生产环境使用Cassandra。

在过期时间结束的时候,墓碑才有资格作为Cassandra的正常compaction过程被删除。

快速线性性能-Cassandra是线性可扩展性的,即它为你增加集群中的节点数量增加你的吞吐量。

Memtable是一种内存结构,满足一定条件后批量刷新到磁盘上,存储为SSTable。

它最初由Facebook开发,用于储存特别大的数据。

其主要功能比Dynomite(分布式的Key-Value存储系统)更丰富.Cassandra最初由Facebook开发,后转变成了开源项目。

>>CQL是Cassandra提供的一套查询语言数值类型数据类型|含义|描述—|—|—int|32位有符号整型|和Java中的int类似bigint|64位长整型|和Java中的long类似smallint|16位有符号整型|和Java中的short类似tinyint|8位有符号整型|和Java中的tinyint类似varint|可变精度有符号整数|和Java中的java.math.BigInteger类似float|32位IEEE-754浮点型|和Java中的float类似double|64位IEEE-754浮点型|和Java中的double类似decimal|可变精度的decimal|和Java中的java.math.BigDecimal类似文本类型>CQL提供2种类型存放文本类型,text和varchar基本一致数据类型|含义|描述—|—|—ascii|文本|表示ASCII字符串text|文本|表示UTF8编码的字符串varchar|文本|表示UTF8编码的字符串时间类型数据类型|含义|描述—|—|—timestamp|时间|包含了日期和时间,使用64位有符号的整数表示date|日期|time|时间|标识符类型类型|含义|描述—|—|—uuid|128位数据类型|通用唯一识别码CQL中的uuid实现是Type4UUID,其实现完全是基于随机数的timeuuid||Type1UUID集合类型1)set集合数据类型,set里面的元素存储是无序的。

Memtable内存中数据结构数据写入的第二个阶段,MemTable是一种内存结构,当数据量达到块大小时,将批量flush到磁盘上,存储为SSTable。

幸运的是,典型的web应用和企业OLTP应用的查询均是事先知道的,且数目不多,不经常改动,具体可阅读这篇论文:TheEndofanArchitecturalEra(2)我们将压力从查询转移到更新,这是为了支持物化视图(提前计算出查询结果。

,”

但是,如下查询将被拒绝SELECT*FROMusersWHEREbirth_year=1981ANDcountry=FR;因为Cassandra不能保证即使这些查询的结果很小也不会扫描大量数据。

虽然Compcation没有随机的IO访问,但还是一个重量级的操作,一般在后台运行,并通过限制它的吞吐量来控制,`compactionthroughputmbpersec参数可以设置,默认是16M/s。

由于C*是无主的,所以没有单点故障。

**你的系统有磁盘空间限制吗?**LCS处理磁盘空间比STCS更有效率,除了被处理的数据占据之外,它需要大概10%的净空间。

*如果答复的版本不同*最新版本回复给客户端*在旧数据版本的节点上进行了区域修复(导致最新数据版本)读取一致性级别/读取修复>

发表评论