卡桑德拉选择性副本

问题描述 投票:11回答:4

我想选择的行从的ColumnFamily复制到.csv文件。复制命令可只是转储列或整个表到一个文件中没有where子句。有没有办法使用WHERE子句中的复制命令的方法吗?

我想到了另一种方式是,

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

任何帮助将非常感激。

cassandra cql cql3
4个回答
6
投票

有没有办法让在副本where子句,但是你可以使用这个方法:

回声 “选择C1,C2 .... FROM keySpace.Table其中;” |箱/ cqlsh> output.csv

它允许你保存你的结果在output.csv文件。


3
投票

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

一个替代方案是使用drivers之一编写自己的脚本。在脚本,你会做的“选择”,然后读取结果,并写出到CSV文件。


0
投票

除了胺CHERIFI的回答:

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

  1. 删除空间
  2. 替换|,
  3. 去除报头分离器,空和摘要线

0
投票

其他的方式来运行带有过滤器的SQL和重定向到CSV响应

1)cqlsh内部,使用捕捉命令和输出重定向到一个文件中。您需要执行命令前设置跟踪功能

例如:捕获“output.txt的” - 该命令之后执行的SQL的输出被捕获到output.txt的文件

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

./cqlsh -e'select * from keyspaceName.tableName' > fileName.txt -- hostname
© www.soinside.com 2019 - 2024. All rights reserved.