【发布时间】:2019-08-16 07:40:22
【问题描述】:
我可以将下面提到的一些列(cc_payment,keyid)从 Cassandra 键空间 billing 移动到其他 Cassandra payments 键空间吗? payment_info 将是一个新表。
有什么办法可以移动吗?还是我需要 COPY TO csv 文件并使用 COPY FROM 选项导入?由于数据巨大,我正在寻找直接从一个键空间移动到另一个键空间的选项。我们正在使用 datastax cassandra。
感谢您的帮助。
FROM
========
keyspace: billing
create table if not exists billing_info (
user_id text,
billing_id timeuuid,
cc_payment frozen<cc_payment>,
keyid text;
PRIMARY KEY((user_id), billing_id)
) WITH CLUSTERING ORDER BY (billing_id DESC);
TO
======
keyspace: payments
create table if not exists payment_info (
user_id text,
payment_id timeuuid,
cc_payment frozen<cc_payment>,
keyid text;
PRIMARY KEY((user_id), payment_id)
) WITH CLUSTERING ORDER BY (payment_id DESC);
【问题讨论】:
-
如果记录超过 200 万,COPY 将不起作用。两个表中的主键也不同,因此理想情况下,如果没有任何手动工作,您将无法直接执行此操作。我认为您可能会编写代码来在现有行中添加新列。
-
@AnilKapoor 我之前使用 COPY 导出了超过 3 亿行。一切都是为了控制页面和批量大小。
-
@Aaron 你能提供一些细节吗?我有兴趣看到这个。
-
@AnilKapoor 我提到描述了这个答案的相关属性:stackoverflow.com/questions/41448374/…
标签: cassandra datastax-enterprise cassandra-3.0