9

我是 cassandra 的新手。我需要在 cassandra 的同一键空间中将数据从一个 columnFamily 复制到另一个 columnFamily 。例如,我们在键空间 K1 中有一个 A1 columnFamily ,所以现在我需要在同一个键空间 K1 中创建 columnFamily A2 。这里我需要从columnFamily A1 到 A2 .A1 和 A2 具有相同的架构。我阅读了在线文档,其中我们可以使用 sstable 加载程序将数据从一个 cassandra 集群复制到另一个。但在这里我需要将数据从一个 columnFamily 复制到同一 keyspace 内的另一个 columnFamily 。

上面的任何想法。或者它是否可以实现,我不确定。

4

3 回答 3

10

根据 cassandra 版本,您可以使用 copy cql 命令。要使用它,您需要一个 cql 客户端,例如与 cassandra 一起分发的客户端。

首先,您必须使用以下命令将列族 A1 复制到 CSV 文件:

COPY K1.A1 (column1, column2,...) TO 'temp.csv';

然后将文件复制到新的列族

COPY K1.A2 (column1, column2,...) FROM 'temp.csv';

显然,您必须将列的名称更改为您的名称。

更多信息:

http://www.datastax.com/documentation/cassandra/1.2/index.html#cassandra/cql_reference/copy_r.html

于 2013-07-09T11:25:34.237 回答
2

请注意最大限制。使用 COPY 命令时为 200 万行。请参阅https://docs.datastax.com/en/cql/3.3/cql/cql_reference/cqlshCopy.html

注意:仅使用 COPY FROM 导入行数少于 200 万的数据集。要导入大型数据集,请使用 Cassandra 批量加载程序

于 2017-01-25T22:35:33.887 回答
0

cqlsh -k mykeyspace -e 'COPY fromTable(columnNames) TO STDOUT' | 头-n -1 | cqlsh -k mykeyspace -e '从标准输入复制到表(列名)'

于 2014-08-16T12:44:10.210 回答