我一直在阅读网络上的文章,以了解以下key
类型之间的差异.但这对我来说似乎很难掌握.实例肯定有助于更好地理解.
primary key,
partition key,
composite key
clustering key
Run Code Online (Sandbox Code Playgroud) 是否有一个命令指向cassandra中cql表中存在的所有行,如sql中的那些行?
delete from TABLE
Run Code Online (Sandbox Code Playgroud)
通过文档,我没有找到任何方法在没有where条件的情况下执行删除操作.
DELETE col1 FROM SomeTable WHERE userID = 'some_key_value';
Run Code Online (Sandbox Code Playgroud) 我试图从命令行插入我的CQL表.我能插入一切.但我想知道我是否有时间戳列,那么如何从命令行插入timestamp列?基本上,我想在插入我的CQL表时插入当前时间戳 -
目前,每当我插入下面的CQL表时,我都会硬编码时间戳 -
CREATE TABLE TEST (ID TEXT, NAME TEXT, VALUE TEXT, LAST_MODIFIED_DATE TIMESTAMP, PRIMARY KEY (ID));
INSERT INTO TEST (ID, NAME, VALUE, LAST_MODIFIED_DATE) VALUES ('1', 'elephant', 'SOME_VALUE', 1382655211694);
Run Code Online (Sandbox Code Playgroud)
有没有办法在CQL中使用一些预定义函数来获取当前时间戳,以便在插入上表时,我可以使用该方法获取当前时间戳然后插入上表?
我遇到的问题是我想运行以下命令(我不能):
cqlsh < cql_directory/cql_create_stuff.cql
Run Code Online (Sandbox Code Playgroud)
因为我还没有登录到cqlsh.
所以我登录了:
cqlsh -u 'my_username' -p 'my_super_secret_password'
Run Code Online (Sandbox Code Playgroud)
现在我尝试在cqlsh shell中执行命令,但它只是响应语法错误.
基本上,我如何登录cqlsh并在我的文件系统中运行外部CQL脚本?
我可以用什么cqlsh命令快速查看集群中的键空间?cqlsh没有提供show keyspaces
,describe cluster
也没有我想要的简洁.
我正在使用以下规格:
cqlsh 2.2.0,Cassandra 1.1.10,CQL spec 2.0.0,Thrift协议19.33.0
刚学习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) 想通过CQLsh脚本填充一些静态测试数据.
这不起作用:(device_id是UUID)
insert into devices (device_id, geohash,name, external_identifier, measures, tags)
values ('c37d661d-7e61-49ea-96a5-68c34e83db3a','9q9p3yyrn1', 'Acme1', '936', {'aparPower','actPower','actEnergy'},{'make':'Acme'});
Run Code Online (Sandbox Code Playgroud)
错误请求:类型为uuid的device_id的STRING常量(c37d661d-7e61-49ea-96a5-68c34e83db3a)无效
我似乎无法找到任何CQL函数转换为正确的类型.我需要从python脚本中执行此操作吗?
谢谢,克里斯
是什么区别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)