You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Java客户端在XDCR集合映射规则中添加过滤表达式

使用Java SDK为XDCR集合映射规则配置独立过滤表达式

要实现为每个XDCR集合映射规则单独设置过滤表达式,核心是通过Couchbase Java SDK操作ReplicationBucketSettings中的CollectionMapEntry对象,为每个映射规则绑定专属过滤逻辑,具体实现如下:

实现步骤

  1. 初始化集群与Bucket连接:建立到源集群的连接,获取需要配置XDCR的源Bucket实例。
  2. 获取目标集群的XDCR复制配置:通过源Bucket的设置,获取指向目标集群的复制策略。
  3. 遍历配置集合映射规则:针对每个CollectionMapEntry(集合映射规则),根据源/目标集合名称匹配,设置对应的过滤表达式。
  4. 提交更新生效:将修改后的复制策略重新提交到集群,使配置生效。

代码示例

// 初始化集群连接
Cluster cluster = Cluster.connect("your-cluster-endpoint", "admin-username", "admin-password");
Bucket sourceBucket = cluster.bucket("source-bucket-name");

// 获取指向目标集群的XDCR复制配置
String targetClusterUuid = "your-target-cluster-uuid";
String targetBucketName = "target-bucket-name";
ReplicationBucketSettings replicationSettings = sourceBucket.settings().replicationTo(targetClusterUuid, targetBucketName);

// 获取所有集合映射规则列表
List<CollectionMapEntry> collectionMapEntries = replicationSettings.collectionMaps();

// 为每个映射规则设置独立过滤表达式
for (CollectionMapEntry entry : collectionMapEntries) {
    // 按源集合名称匹配规则
    switch (entry.sourceCollection()) {
        case "source-collection-1":
            // 过滤规则1:仅复制status字段为"active"的文档
            entry.filterExpression("status = 'active'");
            break;
        case "source-collection-2":
            // 过滤规则2:仅复制create_time晚于2024-01-01的文档
            entry.filterExpression("create_time > '2024-01-01T00:00:00Z'");
            break;
        default:
            // 无需过滤的规则可设置为空或保持原有配置
            entry.filterExpression(null);
    }
}

// 提交更新后的复制策略
sourceBucket.settings().replaceReplicationTo(targetClusterUuid, replicationSettings);

// 关闭集群连接(建议放在finally块中)
cluster.disconnect();

关键注意事项

  • SDK版本要求:必须使用Couchbase Java SDK 3.0及以上版本,该版本开始支持集合级别的XDCR过滤配置。
  • 过滤表达式语法:遵循Couchbase N1QL过滤规则,注意字段名、数据类型匹配(比如字符串需加单引号,日期需符合ISO格式)。
  • 映射规则前提:配置过滤前,需确保源Bucket与目标Bucket之间已创建好对应的集合映射关系。
  • 匹配维度:除了按源集合名称匹配,也可通过entry.targetCollection()按目标集合名称设置过滤规则,按需调整。

内容的提问来源于stack exchange,提问作者user2425109

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 16:10:33