【问题标题】:Bulk insert in not working in Casssandra with node.js使用 node.js 批量插入在 Cassandra 中不起作用
【发布时间】:2019-03-01 09:39:30
【问题描述】:

我正在尝试使用 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 条,那么我会得到“批量太大”

【问题讨论】:

  • 而不是查询的数量,您需要查看大小。请检查 cassandra 日志,它会显示错误大小,您可以看到实际大小
  • 您使用的是哪种批次(已记录/未记录)?

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


【解决方案1】:

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

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

您可以在documentation 中阅读更多关于批次的好坏使用的更多信息,并在 SO 上进行以下回答:1

【讨论】:

    猜你喜欢
    • 2019-09-22
    • 2016-09-24
    • 2014-04-13
    • 2015-05-16
    • 1970-01-01
    • 1970-01-01
    • 2011-07-03
    • 2013-07-13
    • 2013-10-01
    相关资源
    最近更新 更多