2017-04-10 2 views
0

Cassandra Insérer avec le regroupement nulle clé fonctionne mais pas tout en faisant face de csv à l'aide cqlCassandra Insérer avec le regroupement nulle clé fonctionne mais pas tout en faisant face de csv à l'aide cql

Ex:

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 

Mais La commande de copie avec track_number null ne fonctionne pas. Obtenir l'erreur:

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 
+2

Pourquoi avez-vous besoin pour insérer null sur la colonne de regroupement? –

+0

effectivement j'ai plusieurs jeux de données à importer. Dans le premier ensemble de données je veux garder la clé de cluster null. – curiousguy

+0

quelle version de cassandra et cqlsh utilisez-vous? –

Répondre

0

champ statique sont statiques, sage clé de partition, voilà pourquoi cassandra vous permettent d'insérer la valeur statique, même si vous n'avez pas spécifié clé de cluster. Pour votre cas, (album_title, album_year) est la clé de partition et performer est le champ statique. C'est pourquoi Cassandra vous permet d'insérer performer même si vous n'avez pas spécifié la clé de clustering track_number.

Mais cqlsh ne vous permettant pas d'importer des données sans toute la clé primaire, vous pouvez appeler cela un bug de cqlsh.

Par ailleurs, vous pouvez importer des données avec cqlsh si vous fournissez une valeur fictive de track_number dire 0