Cassandra: автоматически сгенерированные последовательные целые числа в таблице

У меня есть таблица в Cassandra employee_list (id int, name text, PRIMARY KEY (id)) . Предположим, я хочу добавить имена сотрудников в эту таблицу, и мне нужны уникальные целочисленные идентификаторы для каждого сотрудника. Есть ли способ добавить автоматически сгенерированные последовательные целые числа в cassandra?

Например, я просто добавляю какое-то имя Джон Сноу, и Кассандра приписывает этому имени число 1, для следующего имени Арья Старк номер < strong>2 и так далее..

Спасибо

P.S. Я знаком с UUID


person Henrik    schedule 12.10.2017    source источник


Ответы (1)


Для каких целей вам нужен такой функционал? Для заказа, сортировки? Для заказа или сортировки в качестве грязного решения вы можете сделать это во время вставки в свой код. Но на самом деле вы должны определить для себя, для чего вам это нужно, и спроектировать его более тщательно, без необходимости автоматического увеличения.

В Cassandra сложно реализовать такие вещи из-за ее распределенного характера. В мире SQL это легко, потому что у вас есть один централизованный сервер или даже если вы используете сегментирование, SQL в любом случае централизован, по крайней мере, из-за транзакций. Но наличие автоматического увеличения идентификатора в Cassandra приведет к огромным накладным расходам на синхронизацию между узлами и/или к централизованному координатору этих идентификаторов, чтобы избежать коллизий. И в качестве уникального идентификатора вы можете использовать UUID, который хорошо подходит для этой цели.

И может быть это поможет: Как создать идентификаторы автоматического увеличения в Cassandra< /а>

person Stepan Pogosyan    schedule 12.10.2017
comment
Уважаемый Степан, спасибо за комментарий. Думаю, я просто найду максимальное количество ID и для следующего ID данных добавлю 1. Մերսի :) - person Henrik; 13.10.2017