Можно ли сделать последовательную партию в cassandra.

Можно ли сделать последовательную партию в cassandra. например: вставьте в таблицу1 и возьмите uuid из этой операции вставки и передайте это оператору вставки таблицы2. Если вставка таблицы 2 не удалась, завершите всю операцию.

Если нет, то какой мой лучший вариант?

(Это своего рода транзакция)


person Rohit Kasat    schedule 17.08.2015    source источник


Ответы (1)


Лучше всего вам подойдет инструкция Cassandra Batch: BATCH — Документация Cassandra

В сочетании с ограничениями «ЕСЛИ СУЩЕСТВУЕТ» (например, здесь: DELETE — документация Cassandra) это может быть то, что вам нужно.

Однако я не верю, что есть возможность «вставить в таблицу1 и взять uuid из этой операции вставки и передать это оператору вставки таблицы2». Вы можете думать о пакетах в C* как о транзакциях в SQL — полностью они выполняются или нет.

Важно отметить:

  • пакеты могут охватывать несколько таблиц в C*
  • хотя партии атомарны, они не изолированы. Некоторая часть пакета может быть выполнена, в другом запросе вы можете прочитать эти изменения, но может случиться так, что они будут отозваны, потому что пакет не будет выполнен.
person piotrwest    schedule 17.08.2015