将数据从一个 Cassandra ColumnFamily 复制到同一个 Keyspace 上的另一个(如 SQL 的 INSERT INTO)的好方法是什么?

Jua*_*oto 12 nosql migration cassandra

试图找到一种方法来轻松地将所有行从 Cassandra ColumnFamily/Table 转移到另一个。

COPY我了解,该命令是一个不错的选择。但是,由于它将所有数据转储到.csv磁盘上,然后将其重新加载,我不禁想知道是否有更好的方法在引擎中执行此操作。

我的意思的一个具体例子是INSERT * FROM my_table INTO my_other_table在许多SQL数据库中可用。当然,我意识到 Cassandra 是 NoSQL,因此不会以相同的方式工作 - 但它似乎是可用的。

什么是实现这一目标的好方法?

非常感谢!

小智 11

cqlsh -k mykeyspace -e 'COPY fromTable(columnNames) TO STDOUT' | head -n -1 | 
cqlsh -k mykeyspace -e 'COPY toTable(columnNames) FROM STDIN'
Run Code Online (Sandbox Code Playgroud)

  • 好主意,但正如 @JuanCarlosCoto 所说,它不适用于某些数据类型。我在带有 blob 列的表上尝试过它,但它在换行符上崩溃了。 (2认同)