Cassandra 学习七 cassandra研究
https://www.cnblogs.com/bonelee/p/6306079.html
Allow filtering:
如果你的查询条件里,有一个是根据索引查询,那其它非索引非主键字段,可以通过加一个ALLOW FILTERING来过滤实现;
虽然查询非索引非主键字段,但是只要加了ALLOW FILTERING条件,它会先根据索引查出来的值,再对结果进行过滤;
(如果不加ALLOW FILTERING,而又有非索引列,这样是不允许的; 加上ALLOW FILTERING,相当于在结果后再进行过滤。)
二级索引:
二级索引,作为辅助索引就是为了找到一级索引。然后再通过一级索引找到真正的值:二级索引可以用=, 但是不能用 >; 如果不是二级索引,而是allow filtering的列,可以用>, 但是要带上allow filtering
排序:
使用order by的限制。
1: 必须有所有partition key 的 “=” 查询
2:排序必须根据clustering key的顺序进行有序的、 相同的升序和降序排序(当然可以在建表时指定有的升序,有的降序;不管如何要保持建表指定的排序和查询 的排序一致)
3:order by 的查询前面不能有索引查询。 (这个确实是,但是不知道是什么原理)
Cassandra 的 CQL太弱了;
1. CQL语句不能同时包含order by 和 like
要使用like语句,需要建立相关索引
CREATE CUSTOM INDEX seller_name_index ON deallistbylineitem (seller_name)
USING 'org.apache.cassandra.index.sasi.SASIIndex';
you can't use like and order by in same query(https://stackoverflow.com/questions/49247092/order-by-and-like-in-same-cassandra-query);
2. Cassandra CQL不支持NOT in/ !=
3 不支持类似于 limit start, count这样的分页,但是有另外的方法,用token可以实现。
4 where 的查询条件中支持 AND 但是不支持 OR。
5 不支持join
总结:
本连项目打算用cassadra, 研究了一下,发现CQL语句很弱,不适合我们的业务需求;
Cassandra确实很快,但是不适合与稍微复杂的查询;
可以通过集成spark、solr来加强CQL语句的功能
Cassandra 学习七 cassandra研究的更多相关文章
- Cassandra 学习笔记 - 1 - 关于Cassandra
摘要 - Cassandra 的历史 Cassandra能做什么 Apache Cassandra最早是Facebook为了改进他们的Inbox搜索功能,由Avanash Lakshman和Prash ...
- 回望2017,基于深度学习的NLP研究大盘点
回望2017,基于深度学习的NLP研究大盘点 雷锋网 百家号01-0110:31 雷锋网 AI 科技评论按:本文是一篇发布于 tryolabs 的文章,作者 Javier Couto 针对 2017 ...
- MyBatis学习七:spring和MyBatis整合
<\mybatis\day02\16mybatis和spring整合-sqlSessionFactory配置.avi;> MyBatis学习七:spring和MyBatis整合.逆向工程 ...
- SVG 学习<七> SVG的路径——path(1)直线命令、弧线命令
目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...
- day 85 Vue学习七之vue-cookie
Vue学习七之vue-cookie 通过vue如何操作cookie呢 参考链接:https://www.jianshu.com/p/535b53989b39 第一步:安装vue-cookies ...
- (转)MyBatis框架的学习(七)——MyBatis逆向工程自动生成代码
http://blog.csdn.net/yerenyuan_pku/article/details/71909325 什么是逆向工程 MyBatis的一个主要的特点就是需要程序员自己编写sql,那么 ...
- Cassandra学习笔记
CASSANDRA在工作中用过,但是用的项目少,能用却了解的不全面.今天来稍加学习下: http://zqhxuyuan.github.io/2015/10/15/Cassandra-Daily/ ...
- Cassandra学习六 一些知识点
http://www.flyml.net/2016/09/08/cassandra-tutorial-java-api-example/ Cassandra对查询的支持很弱,只支持主键列及索引列的查询 ...
- Cassandra学习五 使用Key的正确姿势
NoSQL一般是反范式的,比如提倡数据冗余,使得不至于写出非常复杂的SQL语句. Cassandra之中一共包含下面5中Key: Primary Key: 用来获取某一行的数据,可以是一列或多列 ...
随机推荐
- dga 分析
02n-0iy6gn3ozzwmyu.7i43n9qil1g1z2-.com0e527eaf_5ec5_4623_9fe9_e459583acd72.com0fmgm1cuu7h1279dghgka0 ...
- 28-THREE.JS 扇形圆形
<!DOCTYPE html> <html> <head> <title></title> <script src="htt ...
- Node大文件处理
之前有个需求要将文件解析再处理,当时直接将整个文件内容读到内存中然后解析,也是没有考虑到大文件的问题,那么要如何解析大文件呢? 输入:文件的内容是多个json,按顺序排列 输出:解析后的json数据 ...
- LeetCode OJ:Maximum Subarray(子数组最大值)
Find the contiguous subarray within an array (containing at least one number) which has the largest ...
- Ganymed实现基本的自动化部署API
Ganymed SSH-2 for Java是一个纯Java实现的SHH2库,官网为http://www.ganymed.ethz.ch/ssh2/,最新的更新时间为2006年10月,在用之前,请仔细 ...
- Azure VM Scalable Sets -- 适用IAAS架构
1. 选择Virtual Machine scale set2. 选择resource manager(或创建最新)3. 基本信息配置4. 配置scale的参数(可伸缩的balance模型):VM最小 ...
- Linux下windows中文文本文件乱码问题
table of content: 乱码问题 用gedit选择正确的字符编码打开文件 文件转码 总结 §乱码 Fedora安装时默认用UTF-8字符编码方式, 这么做有国际化的好处(和很多用utf-8 ...
- 如何用 Java 实现 Web 应用中的定时任务
定时任务,是指定一个未来的时间范围执行一定任务的功能.在当前WEB应用中,多数应用都具备任务调度功能,针对不同的语音,不同的操作系统, 都有其自己的语法及解决方案,windows操作系统把它叫做任务计 ...
- php 中的杂项函数
1.$arr = range(1, 10); print_r($arr); Array( [0] => 1 [1] => 2 [2] => 3 [3] = ...
- flask中cookie和session介绍
flask中cookie和session介绍 一.cookie: 在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.co ...