Comment définir la dynamique des familles de la colonne dans cassandra
Ici il est dit, qu'aucun effort particulier n'est nécessaire pour obtenir une dynamique de la colonne de la famille. Mais je reçois toujours une exception, lorsque j'essaie de définir une valeur pour un indéfini de la colonne.
J'ai créé une colonne de la famille comme ceci:
CREATE TABLE places (
latitude double,
longitude double,
name text,
tags text,
PRIMARY KEY (latitude, longitude, name)
)
BTW: j'ai dû définir les étiquettes de colonne. Quelqu'un peut-il m'expliquer pourquoi? Peut-être parce que toutes les autres colonnes sont une partie de l'Index?
Maintenant lors de l'insertion de données comme ceci:
INSERT INTO places ("latitude","longitude","name","tags") VALUES (49.797888,9.934771,'Test','foo,bar')
il fonctionne très bien! Mais quand j'essaie:
INSERT INTO places ("latitude","longitude","name","tags","website") VALUES (49.797888,9.934771,'Test','foo,bar','test.de')
J'obtiens l'erreur suivante:
Bad Request: Unknown identifier website
text could not be lexed at line 1, char 21
Quels sont les changements nécessaires afin que je puisse ajouter dynamiquement des colonnes?
Je suis à l'aide de Cassandra 1.1.9 avec CQL3 avec le cqlsh directement sur un serveur.
Vous devez vous connecter pour publier un commentaire.
CQL3 prend en charge dynamique de la colonne de la famille, mais vous devez modifier le schéma de table de la première
Découvrez la 1.2 documentation et CQL en profondeur diapositives
CQL3 nécessite colonne de métadonnées d'exister. CQL3 est en fait une abstraction sur le stockage sous-jacent lignes, il n'est donc pas un un-à-un. Si vous souhaitez utiliser la dynamique des noms de colonnes (et il y a beaucoup d'excellents cas d'utilisation pour eux), de l'utilisation traditionnelle d'Épargne de l'interface (via le client de la bibliothèque de votre choix). Cela va vous donner le plein contrôle sur ce qui est stocké.
map
type de données, ce qui crée réellement dynamique des noms de colonne sous le capot.