随笔分类 -  cassandra

1
摘要:参考文档:http://www.datastax.com/documentation/cql/3.0/webhelp/index.html#cql/ddl/ddl_primary_index_c.html#concept_ds_vk2_dyz_zj索引提供了一种手段通过属性来获取 Cassandra中数据而不是分区键。好处是提供了快速的、高效的按照指定条件找出数据的查询。列的值的索引在一个与值分开的、隐藏的表中。Cassandra有很多技术用来防止出现不良的情况——数据可能检索不正确,查询的数据是旧的版本。一、什么时候使用索引Cassandra's built-in indexes a 阅读全文
posted @ 2014-02-07 22:36 内心低调的人 阅读(669) 评论(0) 推荐(0)
摘要:三、集合列CQL 3 引入了一下集合类型:•set•list•map 在关系型数据库中,允许用户拥有多个email地址,你可以创建一个email_addresses表与users表存在一个多对一关系。CQL 3能够处理经典的多个电子邮件地址的使用情况,其他使用的情况下可以通过定义的列达到集合的效果。利用集合来解决多个邮件地址的问题是方便和直观的。 集合类型的另一个用途被证明可以使用音乐服务作为例子。四、往表中增加一个集合 上面说的音乐服务的例子包括给歌曲标记标签。从一个关系的角度看,你可以认为把存储行引擎视为分区,包含了聚集的行。为了给歌曲打标签,使用集合类型set。定义集合通过CREA... 阅读全文
posted @ 2014-02-06 15:01 内心低调的人 阅读(620) 评论(0) 推荐(0)
摘要:参考文档:http://www.datastax.com/documentation/cql/3.0/webhelp/index.html#cql/ddl/ddl_anatomy_table_c.html#concept_ds_qqw_1dy_zj 在一个层次上来说,Cassandra中的表、行和列可以认为和关系型数据库是相同的。在SQL和CQL中你可以定义表(包含已经定义好的行和与之相关的数据类型),你可以创建索引去增加查询效率。 然而,一个重要的不同是因为Cassandra是被设计来分组成为一个分布式的系统,它强调使用逆规范化代替规范化和连接,它提供了了工具(如集合)去支持。一、例子—.. 阅读全文
posted @ 2014-02-05 22:29 内心低调的人 阅读(524) 评论(1) 推荐(0)
摘要:参考文档:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/dml_schema_changes_c.html#concept_ds_rdc_lvr_gk 在Cassandra1.2及之后,大量的模式变化可以同时发生在一个集群中,而节点之间没有任何模式的分歧。例如,如果一个客户端设置一个列为integer而另一个客户端设置为text,一个或另一个动作会立马生效。哪一个动作会生效是不可预料的。 新模式解决方案的设计消除了模式的变化时,新的节点加入集群所造成的延迟。当节点加入.. 阅读全文
posted @ 2014-02-04 19:41 内心低调的人 阅读(325) 评论(0) 推荐(0)
摘要:参考文档:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/dml_config_consistency_c.html 一致性指的是怎样更新到最新并且在所有副本节点上同步Cassandra的一行数据。Cassandra通过提供可以调节的数据一致性扩充了最终一致性的观点,对于任何读取或写入操作,客户端决定请求数据的一致性。 除了可配置的一致性以外,Cassandra通过很多的built-in repair mechanisms去保证数据在各个副本之间的一致性。 提示:你可... 阅读全文
posted @ 2014-02-03 09:15 内心低调的人 阅读(1326) 评论(0) 推荐(0)
摘要:参考文档:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/dml_about_transactions_c.html#concept_ds_j1p_m5x_zj Cassandra不提供完整的符合ACID特性的事务,ACID事务是关系型数据库系统的标准事务行为: •原子性 在事务中每一个步要么成功或者回滚整个事务。 •一致性 一个事务不能使数据库处于不一致的状态。 •隔离性 事务不能相互干扰。 •持久性 事务完成以后,更改便持久地保存在数据... 阅读全文
posted @ 2014-02-02 13:33 内心低调的人 阅读(1936) 评论(0) 推荐(0)
摘要:参考文档:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/dml_about_reads_c.html#concept_ds_vrp_4qx_zj 不像大部分数据库。Cassandra从固态硬盘中平行随机读取数据性能很好,具有极低的延迟。不推荐使用常见的硬盘。Cassandra读和写一样,数据是被key分隔开,去除了很多关系型数据库需要用到的复杂查询。 首先,Cassandra会检查 Bloom filter。每一个SSTable有一个与之关联的 Bloom filte.. 阅读全文
posted @ 2014-02-01 22:47 内心低调的人 阅读(836) 评论(3) 推荐(0)
摘要:参考文档:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/dml_about_hh_c.html Hint机制是Cassandra的特性当一致性不要求时保证了写入的高可用性。但临时故障发生如网络问题,Hint机制显著地提升了反应的一致性。通过配置cassandra.yaml文件,你选择是否启用Hint机制。一、Hint机制是如何工作的 当一个写入发生,应当被写入的副本节点被感应到发生了故障或者没有响应写入请求,协调者会在本地存储一个hint,放入到system.hint.. 阅读全文
posted @ 2014-01-31 01:27 内心低调的人 阅读(1760) 评论(1) 推荐(1)
摘要:参考文档:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/dml_about_deletes_c.html 相比于传统的关系型数据库,Cassandra采用了另一种方式去删除数据。关系型数据库会花时间扫描并删除过期数据或者管理员可能需要每月分区过期数据,例如,让数据库更快一些。在Cassandra中,你不需要移除过期的数据。 关于Cassandra删除数据有两个因素需要记住: •Cassandra并不会立即删除磁盘上的数据。 •已删除的数据可能会再次出现如果不定期运... 阅读全文
posted @ 2014-01-30 00:12 内心低调的人 阅读(1448) 评论(0) 推荐(0)
摘要:参考数据:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/dml_about_inserts_c.html#concept_ds_xvr_knw_zj 插入和更新操作是相同的。当插入和更新发生的时候,Cassandra不会覆盖已经有的行,但是会在memtabel中插入和更新。 任何数目的column可以被同时插入和更新。当往一个表中插入和更新数据的时候,客户端程序会标识那些数据应当被改变。 插入一个已有的行就被认为是upsert。最终,更新的数据会被存储到新的SSTa... 阅读全文
posted @ 2014-01-29 12:33 内心低调的人 阅读(1368) 评论(1) 推荐(0)
摘要:数据参考:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/manage_dml_intro_c.html#concept_ds_g2s_y1w_zj 为了管理Cassandra上的数据,了解Casssandra是如何写入和读取数据、hint机制、一致性和非一致性是等数据库特性非常有必要的。在Cassandra中,一致性指的是如何使一行数据在所有的副本更新到最新数据保持同步。 对于数据的存储和检索,Cassandra提供了客户端工具和应用程序编程接口(API)。一、复制的.. 阅读全文
posted @ 2014-01-28 17:13 内心低调的人 阅读(1099) 评论(0) 推荐(0)
摘要:数据参考:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/dml_manage_ondisk_c.html#concept_ds_rwq_d4x_zj Cassandra使用的数据存储结构类似于日志结构的合并树,不同于典型的关系型数据库使用B-树。存储引擎使用追加模式按顺序写入磁盘中,数据存储是连续的。在各个节点和一台机器的操作都是平行的。因为Cassandra不适用B-tree,并发控制是不需要的。因为写的时候不需要更新以前的数据。 Cassandra对于先进的固态硬.. 阅读全文
posted @ 2014-01-27 20:19 内心低调的人 阅读(438) 评论(0) 推荐(0)
摘要:数据参考:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/architecture/architecturePlanningAbout_c.html 当规划一个Cassandra集群部署时,关于你初始存储的数据的数据量你应当有一个好的想法,并且对于程序的工作量有一个很好的预计。下面是规划集群时需要考虑的: 1、选择企业实现级别的硬件: 根据下列资源选择适当的硬件:CPU、内存、平衡盘、节点的数目和网络 2、规划亚马逊EC2集群: DataStax 提供了Amazo... 阅读全文
posted @ 2014-01-26 16:13 内心低调的人 阅读(383) 评论(0) 推荐(0)
摘要:参考文档:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/architecture/architectureClientRequestsAbout_c.html#concept_ds_xf3_5nl_fk 可以在集群的任意节点上进行读写请求因为在Cassandra中所有的节点都是同等的。 当一个客户端连接到一个节点并发出一个读或写的请求,在那次特定的客户端操作中那个节点作为协调者。协调者的工作就是在客户端和数据实际存储的节点之间充当代理。协调者根据集群的设置(分区器和复制策略).. 阅读全文
posted @ 2014-01-25 22:59 内心低调的人 阅读(381) 评论(0) 推荐(0)
摘要:参考资料:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/architecture/architectureSnitchesAbout_c.html#concept_ds_c34_fqf_fk 一个snitch(告密者)决定应当从哪个数据数据中心和机架写入和读取数据。snitch通知Cassandra关于网络的拓扑情况以保证数据请求能够高效地路由并且允许通过把机器按数据中心和机架分组以便Cassandra放置数据副本。所有的节点关于snitch的配置应当是一致的。Cassan... 阅读全文
posted @ 2014-01-24 21:49 内心低调的人 阅读(848) 评论(0) 推荐(0)
摘要:参考文档:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/architecture/architecturePartitionerAbout_c.html#concept_ds_dwv_npf_fk 一个分区器决定了数据是怎样分布在集群中的节点上的。通常,一个分区器就是一个hash函数去计算每一行键值的hash值——token。每一行数据通过一个键值唯一标识并且在集群中按token分部。 Murmur3Partitioner 和 RandomPartitioner都使用toke.. 阅读全文
posted @ 2014-01-24 00:17 内心低调的人 阅读(1181) 评论(0) 推荐(0)
摘要:参考文档:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/architecture/architectureDataDistributeAbout_c.html#concept_ds_g43_g3f_fk在Cassandra中,数据分配和复制是同时进行的。这是因为Cassandra被设计为一个点对点的系统,数据有多个复制,被分发到一组节点上。数据按照表的形式构建以主键进行标识。主键决定了数据存储在那一个节点上面。Cassandra是一个面向行的数据库,行的副本就称其为复制。当数据第 阅读全文
posted @ 2014-01-22 11:46 内心低调的人 阅读(2215) 评论(0) 推荐(0)
摘要:参考文档:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/architecture/architectureGossipAbout_c.html#concept_ds_elb_tgd_fk一、什么是gossip Cassandra使用一个名为gossip的协议去获得集群中其他节点的位置和状态信息。Gossip是一个点对点的通信协议,在这个协议中,节点之间定期交换状态信息。Gossip协议每隔一秒运行一次,节点和不超过的三个节点交换信息,因此所有的节点能够很快知道集群中其他节点的信. 阅读全文
posted @ 2014-01-21 13:30 内心低调的人 阅读(2044) 评论(0) 推荐(0)
摘要:参考文档:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/architecture/architectureIntro_c.html Cassandra是一个Nosql数据库,是用来通过多节点来处理大数据的,并且没有单点故障。也就说,即使一个节点坏了整个系统仍然能够正常运行。Cassandra架构的前提或者说在设计架构的时候就考虑到系统故障和者硬件故障是可能发生的。为了处理这个问题,Cassandra使用了一个点对点的分布式系统,每个节点都是一样的,数据分布在集群各个节点中,具体. 阅读全文
posted @ 2014-01-20 21:18 内心低调的人 阅读(542) 评论(0) 推荐(0)
摘要:最近想深入研究一下Cassandra,而Cassandra没有中文文档,仅有的一些参考书都是0.7/0.6版本的。因此有个计划,一边学习文档(地址:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html),一边有选择的翻译部分内容并且加上自己的解读。英语一直是我的弱项,因此,也希望借此机会锻炼一下自己的英语。因为一直在网上找不到很好的Cassandra教程,所以希望能有所贡献。出错难免,请大家帮忙指正~也借此机会为自己鼓鼓劲。 阅读全文
posted @ 2014-01-20 17:39 内心低调的人 阅读(270) 评论(0) 推荐(0)

1