Пакетная вставка данных весны / кассандры - PullRequest
0 голосов
/ 20 октября 2018

Мне нужно вставить тысячи строк в таблицу cassandra db с данными Spring.Какой лучший способ сделать это быстро.Любое предложение?

1 Ответ

0 голосов
/ 21 октября 2018

Самый быстрый способ сделать это - использовать AsyncCqlTemplate для выполнения асинхронных операций вместо «стандартных» синхронных операций (здесь полный пример ).

AsyncCassandraTemplate asyncTemplate = new AsyncCassandraTemplate(session);
ListenableFuture<Klass> future = asyncTemplate.insert(klass_instance);

Но вам нужно убедиться, что вы не перегружаете соединения - вам нужен какой-то счетный семафор, который будет выдавать не более X запросов одновременно.Вам также может понадобиться настроить параметры пула соединений - например, увеличить количество запросов в полете на большее число, чем стандартное 1024 ...

PS Не пытайтесь использовать пакеты!Пока в пакете не будет данных только для одного раздела, вставки будут выполняться медленнее, а не быстрее.

...