我尝试使用CURL创建一个脚本,将bucket.scope中的所有集合从数据服务Map到本地分析服务(Couchbase)。我在数据节点中创建了50个奇数集合,现在我需要在我的分析节点中使用它们(本地,没有远程链接)。我想知道是否有人已经这样做了。P.S,没有ChatGPT的答案,尝试了他们都没有工作.已尝试CBQ命令、CLI命令和CURL命令。没有运气。希望能达到与上述任何相同。
r8xiu3jd1#
我不确定是否有一种方法可以用一个cURL命令来做到这一点,但是你可以用一个小的bash脚本中编排的一系列cURL命令来做到这一点,比如下面的例子:
#!/bin/bash USERNAME=administrator PASSWORD=password COUCHBASE_HOST=http://127.0.0.1:8091 ANALYTICS_HOST=http://127.0.0.1:8095 BUCKET=$1 SCOPE=$2 if [ $# != 2 ]; then echo Usage: $0 \<bucket\> \<scope\> exit 1 fi run_analytics () { echo Running "$*" curl -s -u $USERNAME:$PASSWORD $ANALYTICS_HOST/analytics/service -d statement="$*" | jq '.errors[].msg' 2>/dev/null } echo Mapping $BUCKET.$SCOPE in Analytics run_analytics CREATE ANALYTICS SCOPE \`$BUCKET\`.\`$SCOPE\` IF NOT EXISTS run_analytics DISCONNECT LINK \`$BUCKET\`.\`$SCOPE\`.Local for collection in $(curl -s -u $USERNAME:$PASSWORD $COUCHBASE_HOST/pools/default/buckets/$BUCKET/scopes | jq -r ".scopes[] | select(.name == \"$SCOPE\") | .collections[].name"); do run_analytics ALTER COLLECTION \`$BUCKET\`.\`$SCOPE\`.\`$collection\` ENABLE ANALYTICS done run_analytics CONNECT LINK \`$BUCKET\`.\`$SCOPE\`.Local
请注意,没有错误处理,处理需要URL编码的时髦桶字符等。但希望这能帮上忙
1条答案
按热度按时间r8xiu3jd1#
我不确定是否有一种方法可以用一个cURL命令来做到这一点,但是你可以用一个小的bash脚本中编排的一系列cURL命令来做到这一点,比如下面的例子:
请注意,没有错误处理,处理需要URL编码的时髦桶字符等。但希望这能帮上忙