Самый быстрый способ заполнить тестовые данные для модуля cassandra?

Я использую модуль cassandra для тестирования в своем проекте (Java), и это здорово, но проблема в том, что загрузка тестовых данных занимает довольно много времени (100 секунд для ~ 25 000 простых вставок).

У меня есть некоторые идеи, но они не кажутся осуществимыми для модуля cassandra:

  • используйте что-то вроде команды cqlsh COPY FROM для копирования данных из csv
  • сделайте резервную копию подготовленной папки с данными и отдайте ее CU при инициализации.

У вас есть другие идеи? Спасибо.


person Jack    schedule 25.03.2016    source источник
comment
Немного зависит от того, изменены ли упомянутые данные, но, например. у вас может быть автономный экземпляр с этими данными для чтения этими тестами. Вы также можете проверить, как пакеты будут работать с модулем cassandra, просто помните, что пакеты в кластерной среде не подходят для многораздельных вставок.   -  person mmatloka    schedule 25.03.2016


Ответы (1)


Чтобы загрузить сразу много данных, используйте незарегистрированный пакетный механизм:

BEGIN UNLOGGED BATCH
INSERT INTO ...;
INSERT INTO ...;
INSERT INTO ...;
...
APPLY BATCH;

Это может быть не быстро, но для целей тестирования это не должно быть проблемой, и вам следует избегать тайм-аутов, которые, вероятно, будут генерироваться прямым набором INSERT (потому что вы заполняете файл журнала, и Cassandra перестает принимать данные на некоторое время после этого.)

person Alexis Wilke    schedule 26.03.2016
comment
Такой подход дает мне ошибку: несоответствующий ввод ';' ожидается K_APPLY Удалено ';' после «UNLOGGED BATCH» возникает ошибка: несоответствующий ввод «‹EOF›», ожидающий K_APPLY - person Jack; 29.03.2016
comment
Извините, я не должен был ставить ; после ключевого слова BATCH. Кроме того, ... просто означает добавление других INSERT по мере необходимости, поэтому я полагаю, что вы не включили это в свой список инструкций. Ссылка дает вам дополнительную документацию (в BATCH доступно больше функций. Также это должно работать с Cassandra 2.0 и выше. - person Alexis Wilke; 30.03.2016