具有 cbq 和 cbimport 命令组合的 Couchbase 脚本不起作用

Posted

技术标签:

【中文标题】具有 cbq 和 cbimport 命令组合的 Couchbase 脚本不起作用【英文标题】:Couchbase script with combination of cbq and cbimport commands is not working 【发布时间】:2022-01-09 05:12:09 【问题描述】:

我正在尝试编写一个脚本文件,该文件将使用 [cbq][1] 命令导出一些数据,然后通过 [cbimport][2] 命令将这些数据导入目标集群。我想增强脚本,使其可以导出大量数据并导入另一个集群。 但是在我的本地机器上,它失败了。实际上,脚本在 cbq 的 SELECT 命令 命令中卡住

有人可以建议我怎么做吗?下面是我正在使用的测试脚本。

echo "Hello World"
cbq -u Administrator -p Administrator -e "http://localhost:8093";
\REDIRECT temp.txt;
SELECT * FROM `sample.data` where id="106" --output="temp.txt";
\REDIRECT OFF;
cbimport json -c http://target-cluster:8091 -u Administrator -p Administrator  -b sample.data -d file://C:\Users\myusername\Desktop\temp.txt -f list -g %docId%;
\EXIT;

以下是上述脚本的响应:

Hello World
 Connected to : http://localhost:8093/. Type Ctrl-D or \QUIT to exit.

 Path to history file for the shell : C:\Users\myuser\.cbq_history

而且在这里卡了很长时间。

【问题讨论】:

查询是否可以正常工作?存储桶实际上称为“sample.data”,还是意味着集合? forums.couchbase.com/t/cbimport-not-working-as-expected/32292 【参考方案1】:

特别是对于你的这个脚本,你有一个分号在 URL 之后终止 cbq 调用,所以它只是处于交互模式。

你想试试:

echo "Hello World"

cbq -u Administrator -p Administrator -e "http://localhost:8093"  --output="temp.txt" -s "SELECT * FROM `sample.data` where id='106'"
# add processing to convert from redirected output to cbimport format
cbimport json -c http://target-cluster:8091 -u Administrator -p Administrator  -b sample.data -d file://C:\Users\myusername\Desktop\temp.txt -f list -g %docId%

作为脚本中的 3 个命令。 (注意语句中没有使用双引号,因为选择的 shell 引号是双引号。你也可以反转这个选择。)

【讨论】:

感谢您的回答。使用相同的方法,我能够产生期望的结果。以下是我使用的命令。 cbq -u Administrator -p $password -q -e “ http://localhost:8093” --script=“select * FROM com.test.default` where id==”“106"”;" | jq -c ‘.results[0].“com.test.result”’ > $file ` cbimport json -c http://target-cluster:8091 -u Administrator -p $password -b com.test.result -d file://$file -f lines -g %docId%

以上是关于具有 cbq 和 cbimport 命令组合的 Couchbase 脚本不起作用的主要内容,如果未能解决你的问题,请参考以下文章

具有抽象类的 C++11 对象组合

创建具有指标功能的表以进行组合

合并具有所有组合的两个数据框

如何在C#中获得组合框的所有选定值

linux 流量控制全攻略

具有多个条件的数据表选择