10
votes

Comment ajouter des colonnes de manière dynamique dans une famille de colonnes à Cassandra à l'aide de CQL

Je veux ajouter des colonnes de manière dynamique à cette famille de colonne via le code à l'aide de CQL.

CREATE COLUMN FAMILY blog_entry
WITH comparator = UTF8Type
AND key_validation_class=UTF8Type
AND default_validation_class = UTF8Type;


12 commentaires

Shalu Pouvez-vous me dire si vous utilisez un outil tel que Hector, DataStax pour cela ou la planification d'utilisation.


Oui je prévois d'utiliser dataxax


Aussi à élaborer mon exigence, je souhaite ajouter des colonnes telles que UUID, nom dont la valeur a des espaces, date, prix flottant de manière dynamique à la famille de colonnes


Ok, je ne suis pas trop vieux dans le monde de Casandra, mais j'ai utilisé Hector et j'ai constaté qu'une fois que vous avez une famille de colonnes établie dans Keyspace, il y a des API directes pour créer des colonnes dans la famille de colonnes. Vous n'avez pas besoin de modifier explicitement la structure de la famille de colonnes Dites de Cassandra-CLI et une nouvelle colonne sera ajoutée à l'aide de l'API. Toutes mes excuses, je ne suis pas au courant de DataStax à ce moment-là.


Est-ce l'ensemble prédéfini de colonnes ou vous souhaitez ajouter plus de colonnes avec du temps? S'il est prédéfini, vous avez une famille de colonnes statiques et la plupart du temps, vous ne ferez que l'insertion / la mise à jour / interrogation / supprimer / supprimer les données.


Je peux utiliser des colonnes prédéfinies mais je vais obtenir HEX Byte Erreur IM Insérez une variable de chaîne à une colonne définie Varcharra à Cassandra.


Grâce à Cassandra-CLI, vous pouvez utiliser ensemble [''] ['<'] = ; pas cql. Cassandra-Cli est très limité dans ses fonctionnalités. Vous pouvez utiliser l'aide de l'aide; à Cassandra-Cli pour vérifier cela.


Pouvez-vous envoyer la définition de la famille de colonne et insérer la construction?


De plus, vous utiliseriez UTF8TYPE car il n'y a pas de type Varcharne à Cassandra. Veuillez vérifier cette Datastax.com/docs /1.0/ddl/...


En fait, j'ai défini la famille de colonnes via la coquille CQL.


En fait, j'ai défini la famille de colonnes via CQL dans mon code. Comme Créer une table NEWDATA (clé primaire UUID clé, date Varchar, ABC Varchar); Insert dans les valeurs NEWDATA (clé, date, ABC, nom) (4E47A967-2822-46EF-A854-130 213ABDF0A, '2013-05-2 9', 'ABC MNC', 'XYZ'); et je reçois une erreur Java.SQL.SQLSYNTAXErorException: impossible d'analyser "ABC MNC" comme des octets hexagonaux .


Veuillez vérifier le lien suivant pour la syntaxe pour créer une table: Cassandra.apache.org/doc/ CQL3 / CQL.HTML # CreeTableBestMT


3 Réponses :


18
votes

Cela devient quelque chose d'une FAQ, donc j'ai écrit une explication approfondie: http://www.datastax.com/dev/blog/does-cql-support-dynamic-columns-wide-aux


2 commentaires

Merci Jbellis. Ça m'a aidé.


Je suis aidé par son exercice car il m'a effacé plus de choses. Merci Jbellis.



4
votes

Pour que cela fonctionne, vous devez d'abord modifier la table pour ajouter une colonne, puis l'insertion commencera à fonctionner. J'ai essayé ce qui précède sur CQLSH et cela a fonctionné.

alter table newdata add column name varchar;


1 commentaires

Merci Harish Votre exercice a dégagé beaucoup de doute liés à CQL et à CLI



0
votes
ALTER TABLE blog_entry ADD newcolumnname text;

0 commentaires