2013-06-05 4 views
0

Je peux exécuter cette mise à jour autant de fois que je le souhaite. C'est à dire. le code ne pas l'erreur si la ligne « test » est déjà présent:Quel est l'impact de l'ajout de la même ligne deux fois à une famille de colonnes Cassandra?

[[email protected]] update column family my_column_family with 
...   column_metadata = 
...   [ 
...   {column_name: test, validation_class: UTF8Type} 
... ]; 
f20046d1-0f89-3c52-b568-c41061e32071 
Waiting for schema agreement... 
... schemas agree across the cluster 
[[email protected]] update column family my_column_family with 
...   column_metadata = 
...   [ 
...   {column_name: test, validation_class: UTF8Type} 
... ]; 
299eebb0-3c71-378d-b9cd-972bb35a49e0 
Waiting for schema agreement... 
... schemas agree across the cluster 

En outre, la mise à jour ne supprime pas les données existantes dans cette ligne.

Ma question: Est-ce que l'ajout de la même rangée plusieurs fois a des effets secondaires que je devrais connaître? Je crois qu'un index est supprimé sur une mise à jour à moins qu'il ne soit spécifié à nouveau, mais je ne m'inquiète pas à ce sujet.

Je ne m'attendrais pas à ce que les mises à jour soient exécutées à un débit élevé. Peut-être tous les jours, mais la famille de colonnes peut inclure des millions d'enregistrements.

Répondre

1

Réponse courte: utilisez CQL, cela aura plus de sens. Réponse plus longue: paramètre Thrift column_metadata supprimera ou créera des index si nécessaire pour que le schéma interne de Cassandra corresponde à ce que vous lui avez demandé de mettre à jour. Il ne vous laissera pas changer un type de colonne pour quelque chose d'incompatible, mais vous pouvez le "tromper" en supprimant la définition et en la rajoutant. NB: si vous modifiez votre schéma au quotidien, vous vous trompez, que vous utilisiez CQL ou Thrift.

+0

Oui, j'ai exagéré avec les mises à jour "quotidiennes" du schéma. Fondamentalement, j'écris un script qui produit une commande de mise à jour de cli, que les administrateurs de sys peuvent exécuter de temps en temps, et je me demande si je dois m'inquiéter de faire de mon script les colonnes existantes pour en créer de nouvelles. – Lolo

+0

Pas avec cette approche, vous n'avez pas. – jbellis

Questions connexes