Терминология
AutoID
AutoID - это атрибут первичного поля, определяющий, нужно ли включать автоприращение для первичного поля. Значение AutoID определяется на основе временной метки. Дополнительные сведения см. в разделе create_schema.
Автоиндекс
Milvus автоматически определяет наиболее подходящий тип индекса и параметры для конкретного поля, основываясь на эмпирических данных. Это идеальный вариант для ситуаций, когда вам не нужно контролировать конкретные параметры индекса. Дополнительную информацию см. в разделе add_index.
Attu
Attu - это универсальный инструмент администрирования для Milvus, который значительно снижает сложность и стоимость управления системой.
Birdwatcher
Birdwatcher - это отладочный инструмент для Milvus, который подключается к etcd, позволяя вам отслеживать состояние сервера Milvus и вносить коррективы в режиме реального времени. Он также поддерживает резервное копирование файлов etcd, помогая разработчикам в устранении неполадок.
Bulk Writer
Bulk Writer - это инструмент обработки данных, предоставляемый в SDK Milvus (например, PyMilvus, Java SDK), предназначенный для преобразования необработанных наборов данных в формат, совместимый с Milvus, для эффективного импорта.
Bulk Insert
Bulk Insert - это API, который повышает производительность записи, позволяя импортировать несколько файлов за один запрос, оптимизируя операции с большими наборами данных.
Cardinal
Cardinal, разработанный Zilliz Cloud, - это передовой алгоритм векторного поиска, обеспечивающий непревзойденное качество и производительность поиска. Благодаря инновационному дизайну и широким возможностям оптимизации Cardinal превосходит Knowhere от нескольких раз до порядка величины, адаптируясь к различным сценариям работы, таким как переменный размер K, высокая степень фильтрации, различные распределения данных и т. д.
Канал
Milvus использует два типа каналов, PChannel и VChannel, как часть архитектуры своего потокового сервиса. Каждый PChannel соответствует потоку WAL, управляемому Woodpecker, а каждый VChannel соответствует шарду в коллекции. Потоковый сервис управляет этими каналами для обеспечения согласованности данных и восстановления после сбоев.
Коллекция
В Milvus коллекция эквивалентна таблице в реляционной системе управления базами данных (RDBMS). Коллекции - это основные логические объекты, используемые для хранения и управления сущностями. Для получения дополнительной информации см. раздел Управление коллекциями.
Зависимость
Зависимость - это программа, работа которой зависит от другой программы. Зависимости Milvus включают etcd (хранит метаданные), MinIO или S3 (хранилище объектов) и Pulsar (управляет журналами моментальных снимков). Для получения дополнительной информации см. раздел Управление зависимостями.
Динамическая схема
Динамическая схема позволяет вставлять в коллекцию сущности с новыми полями, не изменяя существующую схему. Это означает, что вы можете вставлять данные, не зная полной схемы коллекции, и включать в нее поля, которые еще не определены. Вы можете включить эту возможность без схемы, включив динамическое поле при создании коллекции. Дополнительные сведения см. в разделе Включение динамического поля.
Встраивание
Milvus предлагает встроенные функции встраивания, которые работают с популярными провайдерами встраивания. Перед созданием коллекции в Milvus вы можете использовать эти функции для создания вкраплений для ваших наборов данных, что упростит процесс подготовки данных и векторного поиска. Чтобы увидеть создание вкраплений в действии, обратитесь к разделу "Использование модели PyMilvus для генерации вкраплений текста".
Сущность
Сущность состоит из группы полей, которые представляют объекты реального мира. Каждая сущность в Milvus представлена уникальным первичным ключом.
Вы можете настроить первичные ключи. Если вы не настраиваете вручную, Milvus автоматически назначает первичный ключ сущностям. Если вы решили настроить первичный ключ, обратите внимание, что Milvus пока не поддерживает дедупликацию первичных ключей. Поэтому в одной коллекции могут существовать дубликаты первичных ключей. Дополнительные сведения см. в разделе "Вставка сущностей".
Поле
Поле в коллекции Milvus эквивалентно столбцу таблицы в РСУБД. Поля могут быть либо скалярными для структурированных данных (например, чисел, строк), либо векторными для встраивания векторов.
Фильтр
Milvus поддерживает скалярную фильтрацию путем поиска с предикатами, что позволяет определять условия фильтрации в запросах и поиске для уточнения результатов.
Фильтрованный поиск
Фильтрованный поиск применяет скалярные фильтры к векторному поиску, позволяя уточнять результаты поиска на основе определенных критериев. Дополнительные сведения см. в разделе Фильтрованный поиск.
Гибридный поиск
Гибридный поиск - это API для гибридного поиска, начиная с версии Milvus 2.4.0. Вы можете искать по нескольким векторным полям и объединять их. Векторный поиск в сочетании с фильтрацией скалярных полей называется "фильтрованный поиск". Для получения дополнительной информации обратитесь к разделу "Гибридный поиск".
Индекс
Векторный индекс - это реорганизованная структура данных, полученная из исходных данных, которая может значительно ускорить процесс поиска векторного сходства. Milvus поддерживает широкий спектр типов индексов как для векторных, так и для скалярных полей. Дополнительную информацию см. в разделе Типы векторных индексов.
Коннектор Kafka-Milvus
Kafka-Milvus Connector - это коннектор Kafka для Milvus. Он позволяет передавать векторные данные из Kafka в Milvus.
Knowhere
Knowhere - это основной механизм выполнения векторов в Milvus, который включает в себя несколько библиотек поиска векторного сходства, в том числе Faiss, Hnswlib и Annoy. Knowhere также разработан для поддержки гетерогенных вычислений. Она контролирует, на каком оборудовании (CPU или GPU) выполнять запросы на создание индекса и поиск. Именно так Knowhere получила свое название - знание того, где выполнять операции.
Снимок журнала
Снимок журнала - это бинарный журнал, меньшая единица сегмента, которая записывает и обрабатывает обновления и изменения, внесенные в данные в Milvus. Данные из сегмента хранятся в нескольких бинлогах. В Milvus существует три типа бинлогов: InsertBinlog, DeleteBinlog и DDLBinlog. Дополнительную информацию см. в разделе Метахранилище.
Тип метрики
Метрические типы сходства используются для измерения сходства между векторами. В настоящее время Milvus поддерживает евклидово расстояние (L2), внутреннее произведение (IP), косинусное сходство (COSINE) и бинарные метрические типы. Вы можете выбрать наиболее подходящий тип метрики в зависимости от вашего сценария. Дополнительные сведения см. в разделе Метрики сходства.
MemoryBuffer
MemoryBuffer - это облегченный режим развертывания Woodpecker, который временно буферизирует входящие записи в памяти и периодически сбрасывает их в облачное хранилище объектов. Этот режим лучше всего подходит для пакетных рабочих нагрузок в небольших развертываниях или производственных средах, для которых простота важнее производительности. Дополнительную информацию см. в разделе Архитектура Woodpecker.
Mmap
Файлы с отображением в памяти позволяют эффективно работать с данными, отображая содержимое файла непосредственно в память. Это особенно полезно, когда память ограничена и загрузка всех данных невозможна. Такая техника позволяет увеличить объем данных и сохранить производительность до определенного уровня. Однако если объем данных значительно превышает объем памяти, скорость поиска и запросов может значительно снизиться. Дополнительные сведения см. в разделе Хранение данных с поддержкой MMap.
Резервное копирование Milvus
Milvus Backup - это инструмент для создания копий данных, которые можно использовать для восстановления оригинала после потери данных.
Milvus CDC
Milvus CDC (захват данных об изменениях) - это инструмент, используемый для репликации изменений данных с одного кластера Milvus на другой для аварийного восстановления первичных и резервных систем.
Milvus CLI
Milvus Command-Line Interface (CLI) - это инструмент командной строки, который поддерживает подключение к базе данных, операции с данными, а также импорт и экспорт данных. Основанный на Milvus Python SDK, он позволяет выполнять команды через терминал с помощью интерактивных подсказок командной строки.
Milvus Migration
Milvus Migration - это инструмент с открытым исходным кодом, предназначенный для облегчения миграции данных из различных источников данных в Milvus 2.x.
Кластер Milvus
При кластерном развертывании Milvus сервисы предоставляются группой узлов для достижения высокой доступности и легкой масштабируемости.
Автономный Milvus
При автономном развертывании Milvus все операции, включая вставку данных, создание индекса и поиск векторного сходства, выполняются в рамках одного процесса.
Многовекторный
Начиная с версии 2.4.0 Milvus поддерживает несколько векторных полей в одной коллекции. Дополнительную информацию см. в разделе Гибридный поиск.
Разделы
Раздел - это разделение коллекции. Milvus поддерживает разделение данных коллекции на несколько частей на физическом хранилище. Этот процесс называется разделением, и каждый раздел может содержать несколько сегментов. Дополнительные сведения см. в разделе Управление разделами.
Ключ раздела
Атрибут ключа раздела поля позволяет разделить сущности на отдельные разделы на основе значений их ключей разделов. Такая группировка гарантирует, что сущности с одинаковым значением ключа будут храниться вместе, что может ускорить поисковые операции, позволяя системе обходить нерелевантные разделы при запросах, отфильтрованных по полю ключа раздела. Дополнительные сведения см. в разделе Использование ключа раздела.
PChannel
PChannel означает физический канал. Каждый PChannel соответствует потоку WAL, управляемому Woodpecker. По умолчанию группа PChannels будет назначена для хранения журналов, которые регистрируют вставку, удаление и обновление данных при запуске кластера Milvus. Дополнительную информацию см. в разделе Служба потоков.
PyMilvus
PyMilvus - это Python SDK для Milvus. Его исходный код находится в открытом доступе и размещен на GitHub. Вы можете выбрать MilvusClient (новая версия Python SDK) или оригинальный ORM-модуль для взаимодействия с Milvus.
Query
Query - это API, который выполняет скалярную фильтрацию с указанным булевым выражением в качестве фильтра. Для получения дополнительной информации обратитесь к разделу Get & Scalar Query.
QuorumBuffer
QuorumBuffer - это режим развертывания Woodpecker, предназначенный для чувствительных к задержкам и высокой частоте чтения/записи рабочих нагрузок, требующих как оперативности реагирования в реальном времени, так и высокой отказоустойчивости. Он функционирует как высокоскоростной буфер записи с тремя репликами кворума записи, обеспечивая высокую согласованность и доступность. Дополнительную информацию см. в разделе Архитектура Woodpecker.
Поиск по диапазону
Поиск по диапазону позволяет находить векторы, лежащие на заданном расстоянии от искомого вектора. Дополнительные сведения см. в разделе Поиск по диапазону.
Схема
Схема - это метаинформация, определяющая тип данных и их свойства. Каждая коллекция имеет собственную схему коллекции, в которой определены все поля коллекции, автоматический идентификатор (первичный ключ), возможность распределения и описание коллекции. Схемы полей также включены в схемы коллекций, в которых определяются имя, тип данных и другие свойства поля. Дополнительные сведения см. в разделе Управление схемой.
Поиск
Поиск - это API, выполняющий операцию поиска векторного сходства, для выполнения которой требуются векторные данные. Дополнительные сведения см. в разделе Одновекторный поиск.
Сегмент
Сегмент - это автоматически создаваемый файл данных, в котором хранятся вставленные данные. Коллекция может содержать несколько сегментов, и каждый сегмент может содержать множество сущностей. Во время поиска векторного сходства Milvus просматривает каждый сегмент для составления результатов поиска.
Существует два типа сегментов: растущие и закрытые. Растущий сегмент продолжает собирать новые данные до тех пор, пока не достигнет определенного порога или временного ограничения, после чего он становится закрытым. После запечатывания сегмент больше не принимает новые данные и переносится в объектное хранилище. Тем временем входящие данные направляются в новый растущий сегмент. Переход из растущего сегмента в закрытый происходит либо при достижении заданного предела сущности, либо при превышении максимально допустимой продолжительности нахождения в состоянии роста. Дополнительную информацию см. в разделе Детали проектирования.
Spark-Milvus Connector
Spark-Milvus Connector обеспечивает бесшовную интеграцию между Apache Spark и Milvus, объединяя функции обработки данных и машинного обучения (ML) Apache Spark с возможностями хранения векторных данных и поиска в Milvus.
Shard
Milvus повышает производительность записи данных, распределяя операции записи по нескольким узлам с помощью шардов, которые организованы на основе хэширования первичных ключей. При этом задействуются возможности параллельных вычислений кластера.
Разбиение на разделы позволяет снизить нагрузку на чтение за счет указания имени раздела, а разделение на разделы распределяет нагрузку на запись между несколькими серверами.
Разрозненный вектор
Разреженные векторы представляют слова или фразы с помощью векторных вкраплений, в которых большинство элементов равны нулю, и только один ненулевой элемент указывает на присутствие определенного слова. Модели с разреженными векторами, такие как SPLADEv2, превосходят модели с плотными векторами в поиске знаний за пределами области, понимании ключевых слов и интерпретируемости. Для получения дополнительной информации обратитесь к разделу "Разреженные векторы".
Потоковый сервис
Streaming Service - это концепция внутреннего модуля системы потоковой передачи данных Milvus, построенного на основе журнала записи (WAL) для поддержки различных функций, связанных с потоковой передачей данных. К ним относятся вход/подписка потоковых данных, восстановление состояния кластера после сбоев, преобразование потоковых данных в исторические и запросы к растущим данным. Служба состоит из компонентов Streaming Coordinator, Streaming Node Cluster и Streaming Client. Дополнительную информацию см. в разделе Служба потоковой передачи.
Неструктурированные данные
Неструктурированные данные, включая изображения, видео, аудио и естественный язык, - это информация, которая не имеет заранее определенной модели или способа организации. На этот тип данных приходится около 80 % всех данных в мире, и они могут быть преобразованы в векторы с помощью различных моделей искусственного интеллекта (ИИ) и ML.
VChannel
VChannel означает виртуальный канал. Каждый VChannel представляет собой осколок в коллекции. Каждой коллекции будет назначена группа VChannel для регистрации вставки, удаления и обновления данных. VChannels логически разделены, но физически имеют общие ресурсы через службу потоковой передачи. Дополнительные сведения см. в разделе "Служба потоковой передачи".
Вектор
Вектор встраивания - это абстракция неструктурированных данных, таких как электронные письма, данные датчиков IoT, фотографии из Instagram, структуры белков и т. д. С математической точки зрения, вектор встраивания - это массив чисел с плавающей точкой или двоичных чисел. Современные методы встраивания используются для преобразования неструктурированных данных в векторы встраивания. Milvus поддерживает плотные и разреженные векторы начиная с версии 2.4.0.
Хранение WAL
Хранение журнала с опережением записи (WAL) - основа долговечности и согласованности данных в распределенных системах. Перед фиксацией любого изменения оно сначала записывается в журнал, что гарантирует, что в случае сбоя вы сможете восстановить именно то, на чем остановились. В Milvus в качестве системы хранения WAL используется Woodpecker, который поддерживает режимы MemoryBuffer и QuorumBuffer. Дополнительную информацию см. в разделе Архитектура Woodpecker.
Woodpecker
Woodpecker - это облачная нативная система WAL в Milvus 2.6, которая заменяет Kafka и Pulsar. Благодаря архитектуре с нулевым диском и двум режимам развертывания (MemoryBuffer и QuorumBuffer) она обеспечивает высокую пропускную способность, низкие операционные накладные расходы и плавную масштабируемость на объектных хранилищах. Дополнительную информацию см. в разделе "Архитектура Woodpecker".
Облако Zilliz
Полностью управляемый Milvus в облаке Zilliz Cloud с большим количеством корпоративных функций и высокой оптимизацией производительности.