Терминология
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 соответствует теме для хранения журнала, а каждый 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. В качестве хранилища сообщений Milvus поддерживает Kafka или Pulsa. Дополнительные сведения см. в разделе Настройка хранилища сообщений.
Тип метрики
Типы метрик сходства используются для измерения сходства между векторами. В настоящее время Milvus поддерживает евклидово расстояние (L2), внутреннее произведение (IP), косинусное сходство (COSINE) и бинарные типы метрик. Вы можете выбрать наиболее подходящий тип метрики в зависимости от вашего сценария. Дополнительные сведения см. в разделе Метрики сходства.
Mmap
Файлы с отображением в памяти позволяют эффективно работать с данными, отображая содержимое файла непосредственно в памяти. Это особенно полезно, когда память ограничена и загрузка всех данных невозможна. Эта техника позволяет увеличить объем данных и сохранить производительность до определенного уровня. Однако если объем данных значительно превышает объем памяти, скорость поиска и запросов может значительно снизиться. Дополнительные сведения см. в разделе Хранение данных с поддержкой MMap.
Резервное копирование Milvus
Milvus Backup - это инструмент для создания копий данных, которые можно использовать для восстановления оригинала после потери данных.
Milvus CDC
Milvus CDC (Change data capture) - это удобный инструмент, который позволяет захватывать и синхронизировать инкрементные данные в экземплярах 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 соответствует теме для хранения журнала. По умолчанию группа из 16 каналов PChannel будет назначена для хранения журналов, которые регистрируют вставку, удаление и обновление данных при запуске кластера Milvus. Дополнительные сведения см. в разделе Конфигурации, связанные с каналами сообщений.
PyMilvus
PyMilvus - это Python SDK для Milvus. Его исходный код находится в открытом доступе и размещен на GitHub. Вы можете выбрать MilvusClient (новая версия Python SDK) или оригинальный модуль ORM для взаимодействия с Milvus.
Query
Query - это API, который выполняет скалярную фильтрацию с указанным булевым выражением в качестве фильтра. Для получения дополнительной информации обратитесь к разделу Get & Scalar Query.
Поиск по диапазону
Поиск по диапазону позволяет находить векторы, лежащие на заданном расстоянии от искомого вектора. Дополнительные сведения см. в разделе Поиск в диапазоне.
Схема
Схема - это метаинформация, определяющая тип данных и их свойства. Каждая коллекция имеет собственную схему коллекции, в которой определены все поля коллекции, автоматический идентификатор (первичный ключ), возможность распределения и описание коллекции. Схемы полей также включены в схемы коллекций, в которых определяются имя, тип данных и другие свойства поля. Дополнительные сведения см. в разделе Управление схемой.
Поиск
Поиск - это API, выполняющий операцию поиска векторного сходства, для выполнения которой требуются векторные данные. Дополнительные сведения см. в разделе Одновекторный поиск.
Сегмент
Сегмент - это автоматически создаваемый файл данных, в котором хранятся вставленные данные. Коллекция может содержать несколько сегментов, и каждый сегмент может содержать множество сущностей. Во время поиска векторного сходства Milvus просматривает каждый сегмент для составления результатов поиска.
Существует два типа сегментов: растущие и закрытые. Растущий сегмент продолжает собирать новые данные до тех пор, пока не достигнет определенного порога или временного ограничения, после чего он становится закрытым. После запечатывания сегмент больше не принимает новые данные и переносится в объектное хранилище. Тем временем входящие данные направляются в новый растущий сегмент. Переход из растущего сегмента в закрытый происходит либо при достижении заданного предела сущности, либо при превышении максимально допустимой продолжительности нахождения в состоянии роста. Дополнительную информацию см. в разделе Детали проектирования.
Spark-Milvus Connector
Spark-Milvus Connector обеспечивает бесшовную интеграцию между Apache Spark и Milvus, объединяя функции обработки данных и машинного обучения (ML) Apache Spark с возможностями хранения векторных данных и поиска в Milvus.
Shard
Milvus повышает производительность записи данных, распределяя операции записи по нескольким узлам с помощью шардов, которые организованы на основе хэширования первичных ключей. При этом задействуются возможности параллельных вычислений кластера.
Разбиение на разделы позволяет снизить нагрузку на чтение за счет указания имени раздела, а разделение на разделы распределяет нагрузку на запись между несколькими серверами.
Разрозненный вектор
Разреженные векторы представляют слова или фразы с помощью векторных вкраплений, в которых большинство элементов равны нулю, и только один ненулевой элемент указывает на присутствие конкретного слова. Модели с разреженными векторами, такие как SPLADEv2, превосходят модели с плотными векторами в поиске знаний за пределами области, понимании ключевых слов и интерпретируемости. Дополнительную информацию см. в разделе "Разреженные векторы".
Неструктурированные данные
Неструктурированные данные, включая изображения, видео, аудио и естественный язык, - это информация, которая не имеет заранее определенной модели или способа организации. На этот тип данных приходится около 80 % всех данных в мире, и они могут быть преобразованы в векторы с помощью различных моделей искусственного интеллекта (ИИ) и ML.
VChannel
VChannel означает логический канал. Каждый VChannel представляет собой осколок в коллекции. Каждой коллекции назначается группа каналов VChannel для регистрации вставки, удаления и обновления данных. Каналы VChannel логически разделены, но физически имеют общие ресурсы.
Вектор
Вектор встраивания - это абстракция неструктурированных данных, таких как электронные письма, данные датчиков IoT, фотографии из Instagram, структуры белков и т. д. С математической точки зрения, вектор встраивания - это массив чисел с плавающей точкой или двоичных чисел. Современные методы встраивания используются для преобразования неструктурированных данных в векторы встраивания. Milvus поддерживает как плотные, так и разреженные векторы, начиная с версии 2.4.0.
Облако Zilliz
Полностью управляемый Milvus в облаке Zilliz Cloud, с более широкими корпоративными возможностями и высоко оптимизированной производительностью.