对Cassandra的架构做了一些了解,没有深入代码级别,有一些细枝末节也没有完全摸清楚。不过在大致流程上,基本上理解。在此做个阶段性的小结。 具体请看PDF   本文为原创文章,转载请注明出处 原文链接:http://www.flyml.net/2016/11/07/cassandra-tutorial-architecture/

2016年11月07日 0条评论 11416点热度 0人点赞 阅读全文

在NoSQL之中,一种很重要的数据库,叫做列式数据库。 下面是百度百科的解释: 列式数据库是以列相关存储架构进行数据存储的数据库,主要适合于批量数据处理和即时查询。相对应的是行式数据库,数据以行相关的存储体系架构进行空间分配,主要适合于小批量的数据处理,常用于联机事务型数据处理。   本文主要想补充说明的是,列式数据库的存储其实也不完全一样的! 一个典型的例子就是HBase 与 Cassandra 但是他们的最小存储单元都是Column(列),并且上层都是列簇,这个是一样的。不一样的地方在于,他们是如何管…

2016年10月30日 2条评论 17230点热度 8人点赞 阅读全文

摘要: 在传统数据库之中,视图是个非常有用的功能,NoSQL一般不具有这种能力。 另外,对于NoSQL来说,如何设计数据模型,通常来说需要一开始就非常明确自己的数据是如何存储的,以此来设计自己的存储方式。 甚至会通过存储多份数据的方式来达到目的。而对于Cassandra来说,Materialized View(物化视图)是非常实用、好用的功能,可以同时比较完美的解决NoSQL的视图缺失与对降低对数据模型扩充能力的设计要求。 原文来源:http://www.flyml.net/2016/10/30/cassandra…

2016年10月30日 0条评论 16252点热度 3人点赞 阅读全文

0. 引言 NoSQL 在设计理念上面就与传统的RDBMS就不一样,因此删除数据的处理方式非常不一样。然而,虽然NoSQL的选择很多,但是在数据删除的处理方式上,各家的处理方法又有很多共通的地方。 本文将带着大家以Cassandra为例,深入了解NoSQL是如何 来删除数据的。 原文链接:http://www.flyml.net/2016/09/18/cassandra-tutorial-dive-deep-into-data-deletion-in-nosql/ 1. Cassandra 删除数据原理 在Cass…

2016年09月18日 0条评论 17652点热度 3人点赞 阅读全文

1.什么是二级索引? 我们前面已经介绍过Cassandra之中有各种Key,比如Primary Key, Cluster Key 等等。如果您对这部分概念并不熟悉,可以参考之前的文章:[Cassandra教程] (四)使用Key的正确姿势  对于Cassandra来说,一级索引就是Primary Key. 因为查询的时候,可以直接根据Key算出token然后直接获取对应的记录。 而二级索引,作为辅助索引就是为了找到一级索引。然后再通过一级索引找到真正的值 原文链接:http://www.flyml.net/2016…

2016年09月16日 0条评论 19894点热度 6人点赞 阅读全文

搜索,一个数据库无法绕过的话题。之前我们已经知道,在Cassandra之中并没类似MySQL的like查询。 要想完成一致的实现like查询,估计就要上Spark进行全表扫描,将like操作放到Spark App来实现。 如果想实现一个不一样(而不是不同)的like查询,可以使用Lucene进行搜索。有两种现成的实现方案: DSE(付费企业版)集成的solr 开源免费的Lucene插件   我们主要使用的是第二个lucene插件。 项目地址:https://github.com/Stratio/cassa…

2016年09月16日 0条评论 12591点热度 2人点赞 阅读全文

1、为什么需要这个? 在向Cassandra中插入一些数据之后,往往想知道插入了多少条记录,这个时候可以通过select count(*) from test_table来进行查询。 当数据比较少的时候,该cql语句能正确得到查询结果,但是当插入的记录条数比较多的时候,非常容易导致超时。在命令行中有下面的提示 OperationTimedOut: errors={}, last_host=127.0.0.1 原文链接: http://http://www.flyml.net/2016/09/13/cassandra…

2016年09月13日 2条评论 32599点热度 1人点赞 阅读全文

0. 引言 在传统的RDBMS 之中, 我们为了提高查询或者SQL效率,都会用到各种Statement. 比如JDBC之中常用的PreparedStatement. Statement的使用在Cassandra会更加广泛。 并且除了PreparedStatement,还有好几种其他的Statement.如下: SimpleStatement BoundStatement / PreparedStatement BuiltStatement BatchStatement 原文链接:http://www.flyml.n…

2016年09月11日 0条评论 14249点热度 5人点赞 阅读全文

0.引言 在MySQL之中,我们经常使用的一个查询语句就是 where in。 在Cassandra之中也有这个查询语句。但是如果我们在where in 之中的需要查询的条件比较多的时候,我们就需要使用Cassandra 提供的异步 IO API (async io)接口。 在本文之中,我们将回答下面3个问题: 1.什么是异步IO 2. 为什么需要使用异步IO替换where in 3. 异步IO 性能如何 原文链接:http://www.flyml.net/2016/09/09/cassandra-tutorial…

2016年09月09日 2条评论 15738点热度 0人点赞 阅读全文

上一篇文章《Java API 简单例子》之中,我们介绍了使用Java API 对Cassandra的简单操作。 本节将开始稍微深入的介绍一些进阶操作。本节将介绍数据库必须要知道的一个概念:数据库连接池(Connection Pool) 文章来源:http://www.flyml.net/2016/09/09/cassandra-tutorial-java-api-connection-pool/ 数据库连接池的原理: 连接复用。通过建立一个数据库连接池以及一套连接使用、分配、管理策略,使得该连接池中的连接可以得到高…

2016年09月09日 0条评论 16465点热度 4人点赞 阅读全文