java - 如何使用 Java 在 cassandra 中实现批处理
问题描述
目前,我已经用springboot建立了一个项目,我可以使用它CassandraRepository
来查询cassandra数据库中的数据。
但是现在,我遇到了一些问题:
- 如何将 cassandra 中的 BatchStatment 与 CassandraRepository 一起使用?
- 如何通过 CassandraRepository 创建 Statement?
我想用来BatchStatment.add(Statement)
实现批量查询。
MappingManager.getSession().execute(statement)
解决方案
要使用 Springs 版本,请CassandraBatchOperations
参阅CassandraTemplate.batchOps()
.
MappingManager 来自 DataStax ORM,所以它有点混淆了。虽然它不直接支持批处理(因为这通常是错误的做法),但您可以调用该mapper.saveQuery(obj)
方法来获取原始 Statement 并将其添加到new BatchStatement()
您自己创建的语句中并将其传递给Session.execute
.
确保您确实需要批次(为了原子性)。它们速度慢,价格昂贵,并且不能像普通刀片那样扩展。
推荐阅读
- python - 如何以编程方式将插件挂钩注入运行 pytest 的单元测试模块
- c++ - DrawText C++ 的 D3D9 滚动
- node.js - 如何调试 Apollo GraphQL 服务器上的内存泄漏?
- javascript - 使用Javascript在数组中嵌套对象值的总和
- typescript - 如何忽略 Typescript 中路径中的错误(排除不起作用)?
- angular - 我需要带有 ChangeDetectionStrategy.OnPush 的管道吗
- python-3.x - 尝试二进制搜索但十进制,浮点数使其不准确。为什么?
- python - Psycopg2“copy_from”函数(或 PostgreSQL COPY 命令)是否支持序列“nextval()”函数值
- php - 无法在 Laravel 迁移中添加外键约束
- python-3.x - DynamoDB client.get_waiter 上的 AWS Lambda 超时