我正在尝试使用batch()
方法插入100多个记录。
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个,则我得到“批处理太大”
答案 0 :(得分:1)
您不应该将批处理用于批量插入Cassandra(与RDBMS相反)-您得到的此错误意味着您正在将数据插入不同的分区,并且这会在接收查询的节点上增加额外的负载。仅当在同一分区中执行插入操作时,才需要使用批处理-在这种情况下,它们将作为单个突变应用。
否则,通过异步执行发送单个插入查询将更快。您只需要不必同时发送太多请求(请参阅此answer)。
您可以在documentation中阅读有关批处理的好坏的更多信息,并在SO上遵循以下答案:1。