Database 使用“问题”-f";CQLSH中运行query.cql文件的标志
我使用cqlsh通过批处理查询向Cassandra添加数据,我可以通过使用“-e”标志的查询加载数据,但不能从使用“-f”标志的文件加载数据。我想那是因为文件是本地的,而Cassandra是远程的。详情如下: 这是我的查询示例(显然还有更多行要插入): 如果我通过“-e”标志输入查询,则它不会出现问题:Database 使用“问题”-f";CQLSH中运行query.cql文件的标志,database,cassandra,cql,cqlsh,cassandra-2.1,Database,Cassandra,Cql,Cqlsh,Cassandra 2.1,我使用cqlsh通过批处理查询向Cassandra添加数据,我可以通过使用“-e”标志的查询加载数据,但不能从使用“-f”标志的文件加载数据。我想那是因为文件是本地的,而Cassandra是远程的。详情如下: 这是我的查询示例(显然还有更多行要插入): 如果我通过“-e”标志输入查询,则它不会出现问题: >cqlsh -e "BEGIN BATCH; INSERT INTO keyspace.table (id, field1) VALUES ('1','value1'); INSERT
>cqlsh -e "BEGIN BATCH; INSERT INTO keyspace.table (id, field1) VALUES ('1','value1'); INSERT INTO keyspace.table (id, field1) VALUES ('2','value2'); APPLY BATCH;" -u username -p password -k keyspace 99.99.99.99
但如果我将查询保存到文本文件(query.cql)并按如下方式调用,则会得到以下输出:
>cqlsh -f query.cql -u username -p password -k keyspace 99.99.99.99
Using 3 child processes
Starting copy of keyspace.table with columns ['id', 'field1'].
Processed: 0 rows; Rate: 0 rows/s; Avg. rate: 0 rows/s
0 rows imported from 0 files in 0.076 seconds (0 skipped).
Cassandra显然接受命令,但不读取文件,我猜这是因为Cassandra位于远程服务器上,而文件位于本地。我使用的Cassandra实例是其他用户的托管服务,因此我没有权限将文件复制到文件夹中
如何在只有CLI访问权限的Cassandra远程实例上运行此查询
我希望能够使用另一个工具来构建query.cql文件,并让批处理作业运行带有“-f”标志的命令,但我无法确定我是如何出错的。您正在执行一个localcqlsh客户端,因此它应该能够访问您的本地
query.cql
文件
尝试删除开始批处理
和应用批处理
,只需让2个语句插入查询.cql
中,然后重试
另一种快速插入数据的解决方案是提供一个csv文件,并在cqlsh
中使用COPY命令。阅读这篇博文:
通过在每行生成一个cqlsh-e'…'
来编写插入脚本是可行的,但由于doanduyhai,它的速度会非常慢。删除开始批处理
和应用批处理
语句修复了该问题。我来看看COPY命令,你知道csv文件是否需要特定的格式吗?cqlsh COPY命令在csv格式方面非常灵活。只需在cqlsh中键入help COPY
,即可列出所有可用选项
>cqlsh -f query.cql -u username -p password -k keyspace 99.99.99.99
Using 3 child processes
Starting copy of keyspace.table with columns ['id', 'field1'].
Processed: 0 rows; Rate: 0 rows/s; Avg. rate: 0 rows/s
0 rows imported from 0 files in 0.076 seconds (0 skipped).