刚学习cassandra,有没有办法使用CQL插入UUID,即
create table stuff (uid uuid primary key, name varchar);
insert into stuff (name) values('my name'); // fails
insert into stuff (uid, name) values(1, 'my name'); // fails
Run Code Online (Sandbox Code Playgroud)
你能做点什么吗?
insert into stuff (uid, name) values(nextuid(), 'my name');
Run Code Online (Sandbox Code Playgroud) 是什么区别UPDATE和INSERT对Cassandra的执行CQL什么时候?
它看起来似乎没有区别,但现在文档说它INSERT不支持计数器UPDATE.
是否有"首选"方法?或者是否有人应该使用另一个?
非常感谢!
鉴于TimeUUID方便地允许您now()在CQL中使用,是否有任何理由您不会继续使用TimeUUID而不是普通的旧UUID?
假设我有一个列族:
CREATE TABLE update_audit (
scopeid bigint,
formid bigint,
time timestamp,
record_link_id bigint,
ipaddress text,
user_zuid bigint,
value text,
PRIMARY KEY ((scopeid, formid), time)
) WITH CLUSTERING ORDER BY (time DESC)
Run Code Online (Sandbox Code Playgroud)
使用两个二级索引,其中record_link_id是高基数列:
CREATE INDEX update_audit_id_idx ON update_audit (record_link_id);
CREATE INDEX update_audit_user_zuid_idx ON update_audit (user_zuid);
Run Code Online (Sandbox Code Playgroud)
根据我的知识,Cassandra将创建两个隐藏列系列,如下所示:
CREATE TABLE update_audit_id_idx(
record_link_id bigint,
scopeid bigint,
formid bigint,
time timestamp
PRIMARY KEY ((record_link_id), scopeid, formid, time)
);
CREATE TABLE update_audit_user_zuid_idx(
user_zuid bigint,
scopeid bigint,
formid bigint,
time timestamp
PRIMARY KEY ((user_zuid), scopeid, …Run Code Online (Sandbox Code Playgroud) 我想知道如何使用Cassandra实现分页.
我们说我有一个博客.该博客每页最多列出10个帖子.要访问下一篇文章,用户必须单击分页菜单才能访问第2页(帖子11-20),第3页(帖子21-30)等.
在MySQL下使用SQL,我可以执行以下操作:
SELECT * FROM posts LIMIT 20,10;
Run Code Online (Sandbox Code Playgroud)
LIMIT的第一个参数从结果集的开头偏移,第二个参数是要获取的行数.上面的示例从第20行开始返回10行.
如何在CQL中实现相同的效果?
我在Google上找到了一些解决方案,但所有这些解决方案都需要"以前查询的最后结果".它适用于将"下一个"按钮分页到另一个10结果集,但如果我想从第1页跳到第5页怎么办?
我正处于需要更改复合主键的情况,如下所示:
旧主键:(id,source,attribute_name,updated_at);
我想要的新主键:(source,id,attribute_name,updated_at);
我发出了以下(mysql like)命令:
ALTER TABLE general_trend_table
DROP PRIMARY KEY,
ADD PRIMARY KEY(source, id, attribute_name, updated_at);
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
错误请求:第1:38行输入'PRIMARY'没有可行的选择
任何想法如何解决这个问题?更具体地说我想知道有没有办法改变cassandra中的主键?
我正在研究分布式数据库.我试图生成一个唯一的ID将作为列族主键的卡桑德拉.
我阅读了一些关于使用Java进行此操作的文章,UUID但似乎存在碰撞的可能性(即使它非常低).
我想知道是否有办法根据时间生成一个唯一的ID?
如何使用CQL 3获取Cassandra中键空间中所有列族的列表?
我正在尝试重命名通过CQLSH创建的表.例如,将表"AAA"重命名为"BBB".找不到任何命令.有任何想法吗?
使用[cqlsh 3.1.6 | Cassandra 1.2.8 | CQL规范3.0.0 | 节俭协议19.36.0]
我正在尝试重新构建一个SQL数据库Cassandra,以便我可以找到与SQL查询等效的Cassandra.我使用CQL 3和Cassandra v1.2.我在cassandra中对db设计进行了建模,以便它支持子句和非规范化表的顺序以支持连接操作.但是,当谈到DISTINCT,SUM()和GROUPBY等价时,我在海上
SELECT a1,MAX(b1) FROM demo1 group by a1.
SELECT DISTINCT (a2) FROM demo2 where b2='sea'
SELECT sum(a3), sum(b3) from demo3 where c3='water' and d3='ocean'
Run Code Online (Sandbox Code Playgroud)
在过去的几天里,这就像我的工作一样.在Cassandra中有没有办法,我可以建模db模式来支持这类查询?我无法想象卡桑德拉的任何方式.如何使用Cassandra实现此类查询?
我读到Cassandra上的hive层可能会使这些查询起作用.我只是想知道这是否是在Cassandra中支持此类查询的唯一方法..?请建议任何其他可能的方法..