如何从表中选择数据并插入另一个表?

ehs*_*adi 17 cassandra cassandra-cli cqlsh

我想在cassandra中选择表的特定字段并将它们插入另一个表中.我在sql server中这样做:

INSERT INTO Users(name,family)
SELECT name,family FROM Users
Run Code Online (Sandbox Code Playgroud)

如何在cassandra-cli或cqlsh中进行此操作?

Hel*_*d.. 26

COPY keyspace.columnfamily1 (column1, column2,...) TO 'temp.csv';
COPY keyspace.columnfamily2 (column1, column2,...) FROM 'temp.csv';
Run Code Online (Sandbox Code Playgroud)

这里给你的键空间(schema-name)而不是columnfamilyname1使用你要复制的表,并在columnfamily2中给出你要复制的表名.

是的,这是从未尝试使用CLI的CQL解决方案.


Jos*_*ete 5

对于不是很大的表,保存文件并使用匿名管道:

cqlsh -e "COPY keyspace.src_table (col1, col2, ...,ColN ) TO STDOUT WITH HEADER=false" | cqlsh -e "COPY keyspace.target_table (col1, col2, ...,ColN ) FROM STDIN" 
Run Code Online (Sandbox Code Playgroud)

对于非常大的数据集,这将不起作用.应该探索每个令牌范围的策略