我正在寻找Cassandra / CQL的INSERT INTO ... SELECT ... FROM ...
常见SQL习语的表兄弟,并且无法找到任何以编程方式或在CQL中执行此类操作的操作。它只是不受支持吗?
我的用例是从一张桌子到另一张桌子做一个相当笨重的副本。我不需要任何特定的并发保证,但它是很多数据,因此我想避免编写从一个表检索数据的客户端的额外网络开销,然后将批量插入发布到另一个表中。据我所知,根据复制设置,仍然需要在Cassandra集群的节点之间传输更改,但是从一个表到另一个表执行批量操作的“内部”选项似乎是合理的。在CQL或其他地方有这样的事吗?我现在正在使用Hector与Cassandra交谈。
编辑:看起来sstableloader
可能是相关的,但对于我希望是一个相当常见的用例的东西来说,它是非常低级别的。在这个框架中,从一个表到另一个表的一部分行也只是不那么简单。
答案 0 :(得分:4)
正确,本机不支持此功能。 (另一种替代方案是map / reduce作业。)Cassandra的API专注于大规模应用程序的短请求,而不是批处理或分析查询。