我有一个Java客户端,批量推送(INSERT)记录到Cassandra集群.批处理中的元素都具有相同的行键,因此它们都将放在同一节点中.此外,我不需要事务是原子的,所以我一直在使用未记录的批处理.
每个批处理中INSERT命令的数量取决于不同的因素,但可以是5到50000之间的任何值.首先,我只需要在一个批处理中输入尽可能多的命令并提交它.这扔了com.datastax.driver.core.exceptions.InvalidQueryException: Batch too large.然后我每批使用1000 INSERT的上限,然后下降到300.我注意到我只是随机猜测而不知道这个限制的确切位置,这可能会导致麻烦.
我的问题是,这个限制是什么?我可以修改吗?我怎么知道批量中可以放置多少个元素?当我的批次"满员"时?