当前,我已经使用springboot设置了一个项目,我可以使用CassandraRepository
来查询cassandra数据库中的数据。
但是现在,我遇到了一些问题:
我想使用BatchStatment.add(Statement)
来实现批量查询。
MappingManager.getSession().execute(statement)
答案 0 :(得分:3)
要使用Springs版本,请使用CassandraBatchOperations
中的CassandraTemplate.batchOps()
。
MappingManager来自DataStax ORM,因此有点混在一起。虽然它不直接支持批处理(因为这样做通常是错误的事情),但是您可以调用mapper.saveQuery(obj)
方法来获取原始Statement,并将其添加到您自己创建的new BatchStatement()
中,并将其传递给Session.execute
。
确保确实需要批次(出于原子性)。它们速度慢,价格昂贵,并且无法像普通刀片一样缩放。
答案 1 :(得分:0)
写入cassandra的最佳方法是通过并发异步写入。(由Datastax驱动程序支持)。
批处理操作是否包含混合分区键,如果是,则批处理将比异步写入慢
对于混合分区批处理查询,我们实现了令牌感知批处理语句方法,该方法在处理大量数据时确实表现出良好的性能。
点击该链接以获取详细信息: https://dzone.com/articles/efficient-cassandra-write