概述
Milvus-CDC 是一款用户友好型工具,可捕获和同步 Milvus 实例中的增量数据。它通过在源实例和目标实例之间无缝传输数据,确保业务数据的可靠性,从而轻松实现增量备份和灾难恢复。
主要功能
顺序数据同步:通过在 Milvus 实例之间按顺序同步数据更改,确保数据完整性和一致性。
增量数据复制:将增量数据(包括插入和删除)从源 Milvus 复制到目标 Milvus,提供持久存储。
CDC 任务管理:允许通过 OpenAPI 请求管理 CDC 任务,包括创建、查询状态和删除 CDC 任务。
此外,我们正计划扩展我们的功能,以便在未来支持与流处理系统的集成。
架构
Milvus-CDC 采用的架构包含两个主要组件--管理任务和元数据的 HTTP 服务器、同步任务执行的corelib以及从源 Milvus 实例获取数据的阅读器和将处理后的数据发送到目标 Milvus 实例的写入器。
milvus-cdc 架构
在上图中
HTTP 服务器:处理用户请求、执行任务并维护元数据。它是 Milvus-CDC 系统内任务协调的控制平面。
Corelib负责任务的实际同步。它包括一个从源 Milvus 的 etcd 和消息队列(MQ)中检索信息的读取器组件,以及一个将消息从 MQ 转换为 Milvus 系统 API 参数并将这些请求发送到目标 Milvus 以完成同步过程的写入器组件。
工作流程
Milvus-CDC 数据处理流程包括以下步骤:
创建任务:用户通过 HTTP 请求启动 CDC 任务。
元数据检索:系统从 Milvus 的 etcd 源获取特定于集合的元数据,包括集合的通道和检查点信息。
MQ 连接:有了元数据,系统就会连接到 MQ,开始订阅数据流。
数据处理:读取、解析来自 MQ 的数据,并使用 Go SDK 将其传递给其他系统或进行处理,以复制在源 Milvus 中执行的操作。
Milvus-cdc-workflow
限制
增量数据同步:到目前为止,Milvus-CDC 只同步增量数据。如果您的业务需要完整的数据备份,请联系我们寻求帮助。
同步范围:目前,Milvus-CDC 可以在集群级别同步数据。我们正在努力在即将发布的版本中添加对集合级数据同步的支持。
支持的 API 请求:Milvus-CDC 目前支持以下 API 请求。我们计划在未来的版本中扩展对其他请求的支持:
创建/删除数据集
插入/删除/增加
创建/删除分区
创建/删除索引
加载/释放/刷新
加载/释放分区
创建/删除数据库