使用聚类键null的Cassandra Insert正在工作,但是在使用cql从csv处理时却没有

时间:2017-04-10 10:23:14

标签: cassandra cqlsh

带有聚类键的Cassandra Insert null工作但使用cql从csv处理时却没有

例如:

CREATE TABLE tracks_by_album (
  album_title TEXT,
  album_year INT,
  performer TEXT STATIC,
  album_genre TEXT STATIC,
  track_number INT,
  track_title TEXT,
  PRIMARY KEY ((album_title, album_year), track_number)
);

Insert into tracks_by_album(album_title,album_year,performer) values ('test',2011,'myself') working 

但是track_number null的复制命令无法正常工作。得到错误:

Failed to import 2 rows: InvalidRequest - Error from server: 
code=2200 [Invalid query] message="Invalid null value in condition for column 
track_number",  will retry later, attempt 1 of 5

1 个答案:

答案 0 :(得分:0)

静态字段是静态的,分区键是明智的,这就是为什么即使你没有指定聚类键,cassandra也允许你插入静态值。对于您的情况,(album_title, album_year)是分区键,performer是静态字段。这就是为什么即使您没有指定群集密钥performer,cassandra也允许您插入track_number

但是cqlsh不允许你在没有所有主键的情况下导入数据,你可以称之为cqlsh的bug。

顺便提一下,如果您提供虚拟值track_number,即0

,则可以使用cqlsh导入数据