【发布时间】:2014-07-02 16:41:40
【问题描述】:
我需要向 Cassandra 插入新行,插入到只有主键列的表中,例如:
CREATE TABLE users (
user_id bigint,
website_id bigint,
PRIMARY KEY (user_id, website_id)
)
最明显的方法是插入:
INSERT INTO users(user_id, website_id) VALUES(1,2);
但我想使用 Hadoop CqlOutputFormat 来做到这一点,而 CqlRecordWriter 仅支持 UPDATE 语句。这通常不是问题,因为 UPDATE 在理论上与 INSERT 语义相同。 (如果给定的主键不存在,它将创建行)。 但是在这里......我不知道如何构造 UPDATE 语句 - 似乎 CQL 只是不 支持我的情况,其中有非主键列。看看我尝试了什么:
> update users set where user_id=3 and website_id=2 ;
Bad Request: line 1:18 no viable alternative at input 'where'
> update users set website_id=2 where user_id=3;
Bad Request: PRIMARY KEY part website_id found in SET part
> update users set website_id=2 where user_id=3 and website_id=2;
Bad Request: PRIMARY KEY part website_id found in SET part
> update users set website_id=2,user_id=1;
Bad Request: line 1:40 mismatched input ';' expecting K_WHERE
关于如何解决它的一些想法? 非常感谢。
【问题讨论】: