Массовая вставка не работает в Casssandra с node.js - PullRequest
0 голосов
/ 01 марта 2019

Я пытаюсь вставить более 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, то я получаю «слишком большой пакет»

1 Ответ

0 голосов
/ 01 марта 2019

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

В противном случае отправка отдельных запросов на вставку с помощью асинхронного выполнения будет выполняться намного быстрее.Вам не нужно отправлять слишком много запросов одновременно (см. ответ ).

Подробнее о хорошем и плохом использовании партий можно прочитать в документации и следующий ответ на SO: 1 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...