使用node.js在Casssandra中无法批量插入

时间:2019-03-01 09:39:31

标签: node.js cassandra cassandra-node-driver

我正在尝试使用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个,则我得到“批处理太大”

1 个答案:

答案 0 :(得分:1)

您不应该将批处理用于批量插入Cassandra(与RDBMS相反)-您得到的此错误意味着您正在将数据插入不同的分区,并且这会在接收查询的节点上增加额外的负载。仅当在同一分区中执行插入操作时,才需要使用批处理-在这种情况下,它们将作为单个突变应用。

否则,通过异步执行发送单个插入查询将更快。您只需要不必同时发送太多请求(请参阅此answer)。

您可以在documentation中阅读有关批处理的好坏的更多信息,并在SO上遵循以下答案:1