下面给出了3个表的CQL。两者具有相同的列结构,但在设置主键方面有所不同。
表1:没有复合主键
CREATE TABLE tab1
(
key1 text,
key2 text,
key3 text,
key4 text,
data1 text,
data2 text,
data3 int,
PRIMARY KEY(key1,key2,key3,key4));
CREATE TABLE tab2
(
key1 text,
key2 text,
key3 text,
key4 int,
data1 text,
data2 text,
data3 text,
PRIMARY KEY((key1,key2),key3,key4));
CREATE TABLE tab3
(
key1 text,
key2 text,
key3 text,
key4 int,
data1 text,
data2 text,
data3 text,
PRIMARY KEY((key1,key2,key3),key4));
select data1,data2,data3 from tab3 where key1='value1' and key2='value2' and key3='value3' and key4 > 1000 and key4 < 1000000 ;
哪些设计具有更好的读/写性能?
如果您需要支持key4上的范围查询,那么它需要是一个集群列,这样就排除了tab1。因为您总是为key3指定一个精确的值,所以不需要将其设置为集群列,所以tab3是比tab2更好的选择。在partition键中保留key3将更均匀地划分集群周围的数据。
我在Cassandra中有以下列系列,用于将时间序列数据存储在少量非常“宽”的行中: 在CQL外壳上,我能够运行如下查询: 从本质上讲,我修复了复合列名称的第一个组成部分的值(minute_of_day),并希望根据第二个组成部分的不同值(event_id)选择一组不连续的列。由于“IN”关系被解释为相等关系,因此这工作正常。 现在我的问题是,我如何在没有CQL的情况下以编程方式完成相同类型的复合
我有一个卡桑德拉集群,使用以下方法创建: 我使用的Eclipse版本如下: 现在,我编写了以下实体: 因为该表使用复合主键,所以我必须使用下面提到的结构:http://docs.spring.io/spring-data/cassandra/docs/1.0.2.RELEASE/reference/html/cassandra.core.html 所以我的活动密钥类是这样的: 我的控制器是这样的:
我们有这个Cassandra集群,想知道当前的性能是否正常,我们可以做些什么来改善它。 集群由位于同一数据中心的3个节点组成,每个节点的总容量为465GB,堆容量为2GB。每个节点有8个内核和8GB或RAM。不同组件的版本为 工作量描述如下: 空格键使用org.apache.cassandra.locator。SimpleStrategy布局策略和复制因子为3(这对我们非常重要) 工作负载主要由写
Cassandra修复无法在节点1上运行,出现以下错误。我之前错误地并行启动了多个修复会话。我发现有一个错误https://issues.apache.org/jira/browse/CASSANDRA-11824已经解决了同样的情况。但我已经在使用cassandra 3.9,请确认运行nodetool scrub是否是唯一的解决方法?在运行scrub之前,我们需要记住什么注意事项,因为我需要直接
我们一直在使用Spark RDD API(Spark 2.0)来处理在Cassandra.Note中建模的数据,这些数据在Cassandra中建模以实现高效的读写。 然而,现在还有SparkSQLAPI,Spark DataFrame API,它也是一种替代的数据访问方法-http://spark.apache.org/docs/latest/sql-programming-guide.html
需要一些关于cassandra压力测试的帮助。我已经从datastax网站安装了cassandra压力2.1工具。我想以10:1的比例使用15个线程进行读写压力测试。不知何故,我无法让它工作。我能够成功地分别进行读写测试。 我正在使用的命令:./cassandra-压力混合比率(write=1, read=10)n=10000 cl=ONE-端口节俭=9160-架构keyspace="Keyspa