2017-10-12 8 views
0

J'ai une table Cassandra employee_list (id int, nom texte, PRINCIPAL KEY (id)). Supposons que je souhaite ajouter les noms des employés à cette table et que j'ai besoin d'ID entiers uniques pour chaque employé. Est-il possible d'ajouter des nombres entiers séquentiels générés automatiquement dans Cassandra?Cassandra: généré automatiquement des nombres entiers Sequencial dans le tableau

Par exemple, je suis juste ajoutais un nom Jon Snow et Cassandra attribue à ce numéro de nom , pour le prochain nom Arya Stark nombre et ainsi de suite ..

Je vous remercie

PS Je connais l'UUID

Répondre

1

A quelles fins avez-vous besoin d'une telle fonctionnalité? Pour commander, trier? Pour commander ou trier comme une solution sale, vous pouvez le faire lors de l'insertion dans votre code. Mais en fait, vous devez définir pour vous-même dans quel but avez-vous besoin de cela et le concevoir plus soigneusement sans besoin d'incrémentation automatique.

Il est difficile d'implémenter de telles choses dans Cassandra en raison de sa nature distribuée. Dans le monde SQL c'est simple car vous avez un serveur centralisé ou même si vous utilisez sharding de toute façon SQL est centralisé en raison des transactions au moins. Mais avoir un identifiant incrémenté automatiquement dans Cassandra conduira à une énorme surcharge de synchronisation entre les nœuds et/ou à un coordinateur centralisé de ces identifiants pour éviter les collisions. Et comme identifiant unique, vous pouvez utiliser UUID qui sert bien à cette fin.

Et peut-être cela vous aidera: How to create auto increment IDs in Cassandra

+0

Cher Stepan, je vous remercie pour commentaires. Je pense que je vais juste trouver le nombre maximum d'ID et pour l'ID de données suivante ajouter 1. Մերսի :) – Henrik