首页 » 测绘 » 闲聊cassandra

闲聊cassandra

语言涉及:Java、Scala、Python、Shell、Linux等。

以下的问题基于Cassandra开发者和用户使用以上描述的策略的经验**你的表处理时间序列数据吗?**如果是,DTCS也许是你最好的选择。

根据定理,分布式系统只能满足三项中的两项而不可能满足全部三项4。

简介Cassandra在2008年7月被Facebook开源。

作者介绍周明耀,2004年毕业于浙江大学,工学硕士。

主要用于读操作时,如果有更新操作在进行,可以作为预commit的记录来读取。

在上面例子中,可以用年龄创建索引,但是更好的解决方案是创建物化视图,或者根据有序的年龄创建一个冗余表。

如果留空,将默认使用服务器的机器名e)native_transport_port:默认的CQL本地服务端口,本地的cql客户端与服务器交互的端口2、Changingthelocationofdirectories(相关的文件目录)a)data_file_directories:数据文件存放的目录,一个或多个b)commitlog_directory:提交信息的日志文件存放的目录c)saved_caches_directory:缓存存放的目录运行配置完cassandra后,启动cassandra很简单,$CASSANDRA_HOME/bin目录下双击cassandra.bat即可,那么cassandra就启动起来了,那么我们怎么与cassandra进行交互了?启动cqlsh.bat即可:双击$CASSANDRA_HOME/bin目录下的cqlsh.bat,接下来你就可以随心所欲的与cassandra交互了cassandra基本操作官方文档:http://cassandra.apache.org/doc/latest/cql/index.html1、查询全部的keyspace:describekeyspaces;(或desckeyspaces;)2、创建一个keyspace:CREATEKEYSPACEIFNOTEXISTSmyCasWITHREPLICATION=;class:副本配置策略(总共有三种):SimpleStrategy(RackUnawareStrategy):副本不考虑机架的因素,按照Token放置在连续下几个节点。

Cassandra读*必须为每个读取操作提供行键*协调器使用行键确定第一个副本*使用具有复制因子的复制策略来确定所有其他适用的副本*请求的一致性级别确定协调器在响应客户端之前等待的回复数量*如果连接级别为QUORUM,复制因子为3,则协调器将等待至少两个节点的成功答复。

和其他数据库比较,有几个突出特点:模式灵活:使用Cassandra,像文档存储,你不必提前解决记录中的字段。

究竟Twitter这次策略改变是NoSQL运动的一次挫折还是前进中的一段小插曲?我们拭目以待。

对一个需要高可用的系统,它必须由多台联网的计算机构成,并且运行于其上的软件也必须能够在集群条件下工作,有设备能够识别节点故障,并将发生故障的中端的功能在剩余系统上进行恢复。

Cassandra的设计很大程度受AmazonDynamo的影响,具体可参见《Dynamo:Amazon’sHighlyAvailableKey-valueStore》。

counter|计数器类型|值不能直接设置,而只能递增或递减不能用作主键的一部分;如果使用计数器,则除primarykey列之外的所有列都必须是计数器用户自定义类型如果内置的数据类型无法满足需求,可以使用自定义数据类型。

这种机制,相当于缓存写回机制(Write-backCache),优势在于将随机IO写变成顺序IO写,降低大量的写操作对于存储系统的压力。

事实上,在一个节点上运行Cassandra是没啥用的,虽然我们可以这么做,并且这可以帮助我们了解它的工作机制,但是你很快就会意识到,需要多个节点才能真正了解Cassandra的强大之处。

Cassandra商业化公司DataStax对cqlsh进行了较为详尽的介绍,可以进一步参考:cqlshcommands下面将对cqlsh的常见用法进行简要介绍。

取消注释initial_token并将其设置为1或多节点集群的生成标记的值。

*listen_interface:监听地址,它与listen_interface两个属性设置一个就可以了。

除非两个节点可以互相通信,才能既保证C又保证A,这又会导致丧失P性质。

CommitLog记录每次写请求的完整信息,此时并不会根据主键进行排序,而是顺序写入,这样进行磁盘操作时没有随机写导致的磁盘大量寻道操作,对于提升速度有极大的帮助,号称最快的本地数据库LevelDB也是采用这样的策略。

Cassandra集群中的所有节点的功能都完全一样,所以不存在一个特殊的主机作为主节点来承担协调任务。

如果一个节点停止工作,在它停止之前重新提交commitlog恢复memtable写。

如果一个二级索引用来查询数据,而没有限定一个特定的分区键,该查询会有很高的读延迟,因为所有节点都会被查询到。

Token:在Cassandra,每个节点都对应一个token,相当于hash环中的一个节点地址。

*已经创建云数据库Cassandra实例。

注意,Birthdate_Emps实际上是一个帮助我们快速执行查询的索引,且这个索引有很强的可扩展性,因为它是分布到各个cassandra节点上的。

发表评论