卡桑德拉选择性副本

时间:2013-08-26 20:05:35

标签: cassandra cql cql3

我想将所选行从columnfamily复制到.csv文件。 copy命令可用于将列或整个表转储到没有where子句的文件。有没有办法在copy命令中使用where子句?

我想到的另一种方式是,

执行“插入table2()值(select * from table1 where <where_clause>);”然后将table2转储到.csv,这也是不可能的。

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:6)

无法在副本中创建where子句,但您可以使用此方法:

echo“select c1,c2 .... FROM keySpace.Table where;” | bin / cqlsh&gt; output.csv

它允许您将结果保存在output.csv文件中。

答案 1 :(得分:3)

不,导出到CSV文件时没有“where”子句的内置支持。

另一种方法是使用drivers之一编写自己的脚本。在脚本中,您将执行“选择”,然后读取结果并写出CSV文件。

答案 2 :(得分:0)

除了Amine CHERIFI的答案:

| sed -e 's/^\s+//; s_\s*\|\s*_,_g; /^-{3,}|^$|^\(.+\)$/d'

  1. 删除空格
  2. |替换为,
  3. 删除标题分隔符,空行和摘要行

答案 3 :(得分:0)

使用过滤器运行SQL并将响应重定向到csv的其他方法

1)在cqlsh内,使用CAPTURE命令并将输出重定向到文件。您需要在执行命令之前将跟踪设置为

示例:CAPTURE'output.txt'-该命令捕获到output.txt文件后执行的sql输出

2)如果您想将SQL输出从cqlsh外部重定向到文件

./cqlsh -e'select * from keyspaceName.tableName' > fileName.txt -- hostname
相关问题