用户手册 (User Guide)
工具(Tools)
milvus-cdc
Milvus CDC 概述(Milvus-cdc-overview)

概述

Milvus-CDC 是一个用户友好的工具,可以捕获和同步 Milvus 实例中的增量数据。通过在源实例和目标实例之间无缝传输数据,它确保了业务数据的可靠性,方便进行增量备份和灾难恢复。

主要功能

  • 顺序数据同步:通过在 Milvus 实例之间按顺序同步数据变更,确保数据的完整性和一致性。

  • 增量数据复制:从源 Milvus 复制增量数据,包括插入和删除操作,到目标 Milvus,实现持久存储。

  • CDC 任务管理:通过 OpenAPI 请求管理 CDC 任务,包括创建、查询状态和删除 CDC 任务。

此外,我们计划在未来增加与流处理系统的集成支持。

架构

Milvus-CDC 采用具有两个主要组件的架构 - 一个管理任务和元数据的 HTTP 服务器,以及 corelib,用于将任务的执行与从源 Milvus 实例获取数据的读取器以及将处理后的数据发送到目标 Milvus 实例的写入器进行同步。

milvus-cdc-architecture

在上图中,

  • HTTP 服务器:处理用户请求,执行任务并维护元数据。它充当 Milvus-CDC 系统中任务编排的控制平面。

  • Corelib:负责实际任务的同步。它包括从源 Milvus 的 etcd 和消息队列(MQ)检索信息的读取器组件,以及将 MQ 中的消息转换为 Milvus 系统的 API 参数并将这些请求发送到目标 Milvus 以完成同步过程的写入器组件。

工作流程

Milvus-CDC 数据处理流程包括以下步骤:

  1. 任务创建:用户通过 HTTP 请求启动 CDC 任务。

  2. 元数据获取:系统从源 Milvus 的 etcd 中获取特定于集合的元数据,包括集合的通道和检查点信息。

  3. MQ 连接:获取元数据后,系统连接到 MQ 开始订阅数据流。

  4. 数据处理:从 MQ 读取、解析数据,并使用 Go SDK 传递或处理以复制在源 Milvus 中执行的操作。

milvus-cdc-workflow

限制

  • 增量数据同步: 目前,Milvus-CDC 仅设计用于同步增量数据。如果你的业务需要进行完整数据备份,请 联系我们 (opens in a new tab) 以获取帮助。

  • 同步范围: 目前,Milvus-CDC 可以在集群级别同步数据。我们正在努力在即将发布的版本中添加对集合级别数据同步的支持。

  • 支持的 API 请求: Milvus-CDC 当前支持以下 API 请求。我们计划在未来的版本中扩展对其他请求的支持:

    • 创建/删除集合

    • 插入/删除/更新

    • 创建/删除分区

    • 创建/删除索引

    • 加载/释放/刷新

    • 加载/释放分区

    • 创建/删除数据库