Обзор
Milvus-CDC - это удобный инструмент для захвата и синхронизации инкрементных данных в экземплярах Milvus. Он обеспечивает надежность бизнес-данных, беспрепятственно перенося их между исходным и целевым экземплярами, позволяя легко выполнять инкрементное резервное копирование и аварийное восстановление.
Ключевые возможности
Последовательная синхронизация данных: Обеспечивает целостность и непротиворечивость данных за счет последовательной синхронизации изменений данных между экземплярами Milvus.
Инкрементная репликация данных: Реплицирует инкрементные данные, включая вставки и удаления, из исходного Milvus в целевой Milvus, обеспечивая постоянное хранение.
Управление задачами CDC: Позволяет управлять задачами CDC с помощью запросов OpenAPI, включая создание, запрос статуса и удаление задач CDC.
Кроме того, в будущем мы планируем расширить наши возможности и включить поддержку интеграции с системами потоковой обработки.
Архитектура
Milvus-CDC использует архитектуру с двумя основными компонентами - HTTP-сервером, который управляет задачами и метаданными, и corelib, который синхронизирует выполнение задач с читателем, получающим данные из исходного экземпляра Milvus, и писателем, отправляющим обработанные данные в целевой экземпляр Milvus.
Архитектура milvus-cdc-архитектуры
На предыдущей диаграмме,
HTTP-сервер: Обрабатывает запросы пользователей, выполняет задачи и поддерживает метаданные. Он служит плоскостью управления для оркестровки задач в системе Milvus-CDC.
Corelib: Отвечает за фактическую синхронизацию задач. Он включает в себя компонент чтения, который получает информацию из etcd и очереди сообщений (MQ) исходного Milvus, и компонент записи, который переводит сообщения из MQ в параметры API для системы Milvus и отправляет эти запросы целевому Milvus для завершения процесса синхронизации.
Рабочий процесс
Поток обработки данных Milvus-CDC включает в себя следующие шаги:
Создание задачи: Пользователи инициируют задачу CDC с помощью HTTP-запросов.
Извлечение метаданных: Система получает метаданные, относящиеся к коллекции, из источника Milvus's etcd, включая информацию о канале и контрольной точке коллекции.
Подключение MQ: Имея под рукой метаданные, система подключается к MQ, чтобы начать подписку на поток данных.
Обработка данных: Данные из MQ считываются, разбираются и либо передаются с помощью Go SDK, либо обрабатываются для повторения операций, выполняемых в исходном Milvus.
milvus-cdc-workflow
Лимиты
Инкрементная синхронизация данных: На данный момент Milvus-CDC предназначен для синхронизации только инкрементных данных. Если вашему предприятию требуется полное резервное копирование данных, обратитесь к нам за помощью.
Объем синхронизации: В настоящее время Milvus-CDC может синхронизировать данные на уровне кластера. Мы работаем над добавлением поддержки синхронизации данных на уровне коллекции в ближайших выпусках.
Поддерживаемые API-запросы: В настоящее время Milvus-CDC поддерживает следующие API-запросы. Мы планируем расширить поддержку дополнительных запросов в будущих выпусках:
Создание/Удаление коллекции
Вставка/удаление/пополнение
Создать/Удалить раздел
Создание/удаление индекса
Загрузка/освобождение/промывка
Загрузка/освобождение раздела
Создать/удалить базу данных