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: 用来获取某一行的数据,可以是一列或多列 ...
随机推荐
- Python Falling back to the 'python' engine because the 'c' engine does not support regex separators
环境 Anaconda3 Python 3.6, Window 64bit 书籍 O'Reilly出版的Wes McKinney编的<Python for Data Analysis> 警 ...
- 四十二 Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的mget和bulk批量操作
注意:前面讲到的各种操作都是一次http请求操作一条数据,如果想要操作多条数据就会产生多次请求,所以就有了mget和bulk批量操作,mget和bulk批量操作是一次请求可以操作多条数据 1.mget ...
- ARM的异常处理方式
1.什么是异常? 正常工作之外的流程都叫异常 异常会打断正在执行的工作,并且一般我们希望异常处理完成后继续回来执行原来的工作 中断是异常的一种 2.异常向量表 所有的CPU都有异常向量表,这是CPU设 ...
- Struts10---拦截器
01.创建一个登录界面 <%@ page language="java" import="java.util.*" pageEncoding=" ...
- LeetCode OJ:Next Permutation(下一排列)
Implement next permutation, which rearranges numbers into the lexicographically next greater permuta ...
- HTTPS 性能优化 -- 基于协议和配置的优化
基于协议和配置的优化 1 前言 上文讲到 HTTPS 对用户访问速度的影响. 本文就为大家介绍 HTTPS 在访问速度,计算性能,安全等方面基于协议和配置的优化. 2 HTTPS 访问速度优化 2.1 ...
- 15 分钟学会 Eclipse GMF
背景 坦白说:过去在 Eclipse 里使用 Graphical Editor Framework(GEF)创建图形化编辑器 既慢又痛苦.这个过程包括理解复杂的框架和大量的冗余代码.但也说明 GEF ...
- 星火计划ROS机器人Spark
星火计划ROS机器人Spark 1 http://wiki.ros.org/Robots/Spark 2 https://github.com/NXROBO/spark ---- Spark Spar ...
- ubuntu 上的ruby安装
安装 rbenv git clone git://github.com/sstephenson/rbenv.git ~/.rbenv # 用来编译安装 ruby git clone git://git ...
- MySQL install and setting
Tomorrow is the deadline of DATABASE, I am very nervous because of my project. Today is first day th ...