当前位置: 首页 > 知识库问答 >
问题:

为CQL3中的cassandra“table”选择正确的模式

施刚毅
2023-03-14

我们试图在表中存储特定profile_id的大量属性(使用CQL3),但无法考虑哪种方法是最好的:

a.创建表mytable(profile_id,a1 int,a2 int,a3 int,a4 int...a3000 int)主键(profile_id);

b.创建许多表,例如。创建表mytable_a1(profile_id,value int)主键(profile_id);创建表mytable_a2(profile_id,value int)主键(profile_id);...创建表mytable_a3000(profile_id,value int)主键(profile_id);

c.创建表mytable(profile_id,a_all text)主键(profile_id);只需在a_all中存储3000个“列”,例如:insert into mytable(profile_id,a_all)值(1,“a1:1,a2:5,a3:55,....a3000:5”);

我们尝试了第一种方法,查询总是超时,有时甚至杀死cassandra节点。

共有1个答案

钱星华
2023-03-14

答案是使用集群列。集群列允许您创建动态列,可以用来保存属性名(col name)和属性值(col value)。

桌子应该是

create table mytable ( 
    profile_id text,
    attr_name text,
    attr_value int,
    PRIMARY KEY(profile_id, attr_name)
)

这允许您添加插入,如

insert into mytable (profile_id, attr_name, attr_value) values ('131', 'a1', 3);
insert into mytable (profile_id, attr_name, attr_value) values ('131', 'a2', 1031);
.....
insert into mytable (profile_id, attr_name, attr_value) values ('131', 'an', 2);

希望能有所帮助。

 类似资料:
  • 我有SQL声明 关系为1-N:用户可能有许多文件。 这有效地选择了第二个10元素页面。 问题是这个查询限制/偏移了一个连接的表,但我想限制/偏移第一个(

  • 选择正确的directory实现类——存储模块 在配置集群时,数据存储模块是众多模块中不需要过多关注的一个模块,但是却是非常重要的一个模块。它允许用户控制索引数据的存储方式:持久化存储(在硬盘上)或者临时存储(在内存中)。ElasticSearch中绝大部分的存储方式都会映射到合适的Apache Lucene Directory类(http://lucene.apache.org/core/4_5

  • 为了优化存储,在任何情况下均应使用最精确的类型。例如,如果列的值的范围为从1到99999,若使用整数,则MEDIUMINT UNSIGNED是好的类型。在所有可以表示该列值的类型中,该类型使用的存储最少。 用精度为65位十进制数(基于10)对DECIMAL列进行所有基本计算(+、-、*、/)。参见11.1.1节,“数值类型概述”。 使用双精度操作对DECIMAL值进行计算。如果准确度不是太重要或如

  • 校验者: 翻译者: @李孟禹 通常,解决机器学习问题的最困难的部分可能是找到恰当的的评估器(estimator)。 不同的评估器更适合不同类型的数据和不同的问题。 下面的流程图是一些粗略的指导,可以让用户根据自己的数据来选择应该尝试哪些评估器。 点击下图的任何评估器,查看其文档。

  • 我需要一个查询来列出 Spark 中唯一的复合分区键。 CASSANDRA: 中的查询非常快,但是将相同类型的数据过滤器放在 RDD 或 Spark 中.sql相比之下检索结果的速度非常慢。 例如 其中表格格式如下: Spark不是在其查询中使用cassandra优化吗? 我如何有效地检索此信息?

  • 也许我错过了什么,如果是这样原谅我的无知。 在这里,我们有什么: 我们在Kafka集群中使用TLS身份验证侦听器(这可以更改,我们可以添加新类型的侦听器) 当从Java代码连接到Kafka主题时,我使用为Kafka用户生成的SSL证书 如果我决定避免使用SSL证书,原因有两个: < li >我将仅从受信任的OpenShift cluster PODs连接到Kafka主题 < li >为了避免在生产