【发布时间】:2018-04-08 12:36:27
【问题描述】:
我有 2 个 Cassandra 数据库,每个数据库上都有一个具有相同架构(t1 和 t2)的表。 我需要将一些行从一个表复制到另一个。使用 Java 驱动程序的最佳方法是什么?
Select select = QueryBuilder.select().all().from(keyspace, table);
select.where(clause);
for (Row row : results) {
Insert insert = QueryBuilder.insertInto(keyspace, table);
for(Column c: columns)
{
insert.value(c.column_name, row.getObject(c.column_name));
}
dstSession.execute(insert);
}
我应该只进行一次选择,然后获取每一行的所有值,然后进行插入,还是有更有效的方法?
【问题讨论】:
-
您也可以使用here提供的解决方案,
-
为什么不用cqlsh copy命令来做呢?
-
据我了解,Hossein 不想要表中的所有数据,而是希望 where 子句中的选定行。我相信仅使用 COPY 命令是不可能的。但是,您可以使用 COPY,然后使用 sed 或 awk 自己过滤数据文件。但是,与您自己的建议相比,我认为这样做没有任何优势。
-
没错,我不想移动所有数据(这在带宽方面非常昂贵)
标签: cassandra cql cql3 cassandra-3.0