用于将数据从一个集群复制到另一个集群的 Couchbase API、库或 curl 命令

Couchbase APIs, libraries or curl commands to copy data from one cluster to another

我想通过 curl 命令使用 SDK 库 将我的数据从一个 Couchbase 集群复制到另一个集群。有人可以让我知道是否有可用的 libraries/APIs 可以用来执行此操作。

我们需要将基于某些查询的数据从一个集群复制到同一存储桶上的另一个集群(源和目标存储桶名称相同)。我们正在寻找可以根据一些复杂的查询复制我们的数据的解决方案,这些查询可以复制到另一个集群以实现可用性目的和调试目的。我们想通过 SDK 库 或一些 脚本来完成,我们可以在 Jenkins 管道 运行 中

您可以将 cbq 工具与 jq 一起使用来准备一个 json 文件,其中包含一系列文档,稍后可以使用 cbimport 导出:

./cbq -u Administrator -p password -e "http://localhost:8091" \
--script="SELECT * FROM \`travel-sample\`.inventory.airline LIMIT 1;" -q | jq '.results' > data.json 

然后您可以使用 cbimport (cbimport json) 和 --format=list

导入生成的文件

可以使用available SDKs。您将需要写一个 script/program 并按照以下步骤操作:

 - Make two DB connections. 
 - 1st connection to read from the source cluster. Pull data.
 - Open 2nd connection to the destination cluster and save the results.

但是,以这种方式复制数据可能会带来许多复杂性,例如冲突解决、读取陈旧数据、CAS 不匹配错误、内存溢出等。

我想在这里建议另一种方法。您可以使用现有的 CB Replication mechanism(XDCR)。它非常稳定和强大。

您可以试试这个方法:

 - Run N1QL query and store the results in a new bucket(source cluster).
 - Use CB's replication machanism(XDCR) to replicate the new bucket between the source and destination cluster.

这样您只需要编写脚本到 运行 N1QL 并在新存储桶中生成文档。所有replication/sync由CB自行处理