Cassandra 内部批量插入操作

标签 cassandra cql

我正在寻找 Cassandra/CQL 的常见 SQL 习惯用法 INSERT INTO ... SELECT ... FROM ... 的表亲,并且无法找到任何以编程方式执行此类操作的内容或在 CQL 中。只是不支持吗?

我的用例是从一个表到另一个表进行相当大的复制。我不需要任何特定的并发保证,但它有大量数据,因此我想避免编写从一个表检索数据的客户端,然后向另一个表发出批量插入的额外网络开销。我知道更改仍然需要根据复制设置在 Cassandra 集群的节点之间传输,但有一个“内部”选项来执行从一个表到另一个表的批量操作似乎是合理的。 CQL或者其他地方有这样的东西吗?我目前正在使用 Hector 与 Cassandra 交谈。

编辑:看起来 sstableloader 可能相关,但对于我希望成为相当常见用例的东西来说,它的级别非常低。在该框架中,仅将一个表中的行子集转移到另一个表中似乎也不那么简单。

最佳答案

正确, native 不支持此功能。 (另一种选择是映射/归约作业。)Cassandra 的 API 专注于大规模应用程序的简短请求,而不是批处理或分析查询。

关于Cassandra 内部批量插入操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14633624/

相关文章:

sql - 如何在 Cassandra CQL 中创建外键

java - Cassandra JDBC 是否提供数据源?

java - Achilles Cassandra 计数器始终为空

cassandra - 使用 CQL3 在 Cassandra 中插入任意列

Cassandra CLI : specify name of primary key

cassandra - cassandra 中的时间序列建模(带有开始和结束日期)

cassandra - Cassandra 中的宽行与集合

当我运行任何查询时,Cassandra 会显示三个点

java - Cassandra Java 查询示例

java - Cassandra:分区键只支持 EQ 和 IN 关系(除非你使用 token() 函数)