Массовая вставка не работает в Casssandra с node.js

Я пытаюсь вставить более 100 записей, используя метод batch().

client.batch(batchQuery, { prepare: true }, function (err, result) {
    if (err) {
        res.status(404).json({ msg: err });
    } else {
        res.json([result.rows][0]);
    }
});

batchQuery имеет более 100 запросов на вставку. Это работает, если записей меньше 7. Если их больше 10, то я получаю «Слишком большая партия».


person Ajaypravin    schedule 01.03.2019    source источник
comment
вместо количества запросов нужно смотреть на размер. Пожалуйста, проверьте журналы cassandra, и он покажет ОШИБКУ с размером, и вы увидите фактический размер.   -  person M P    schedule 01.03.2019
comment
какую партию вы используете (зарегистрированную/незарегистрированную)?   -  person Nestor Sokil    schedule 01.03.2019


Ответы (1)


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

В противном случае отправка отдельных запросов на вставку через асинхронное выполнение будет намного быстрее. Вам нужно только не отправлять слишком много запросов одновременно (см. -users-on-cassandra-table-using-node/54312810#54312810">ответ).

Вы можете узнать больше о правильном и неправильном использовании пакетов в документации. и следующий ответ на SO: 1< /а>.

person Alex Ott    schedule 01.03.2019