【发布时间】:2023-05-25 15:30:01
【问题描述】:
我正在使用 cqlsh 通过 BATCH 查询向 Cassandra 添加数据,我可以使用“-e”标志通过查询加载数据,但不能从使用“-f”标志的文件中加载数据。我认为这是因为文件是本地的,而 Cassandra 是远程的。详情如下:
这是我的查询示例(显然要插入更多行):
BEGIN BATCH;
INSERT INTO keyspace.table (id, field1) VALUES ('1','value1');
INSERT INTO keyspace.table (id, field1) VALUES ('2','value2');
APPLY BATCH;
如果我通过“-e”标志输入查询,那么它没有问题:
>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”标志的命令,但我不知道我哪里出错了。
【问题讨论】:
标签: database cassandra cql cqlsh cassandra-2.1