Terminología
AutoID
AutoID es un atributo del campo primario que determina si se habilita el autoincremento para dicho campo. El valor de AutoID se define en función de una marca de tiempo. Para obtener más información, consulta create_schema.
Índice automático
Milvus decide automáticamente el tipo de índice y los parámetros más adecuados para un campo específico basándose en datos empíricos. Esto resulta ideal para situaciones en las que no es necesario controlar los parámetros específicos del índice. Para obtener más información, consulta add_index.
Attu
Attu es una herramienta de administración «todo en uno» para Milvus que reduce significativamente la complejidad y el coste de la gestión del sistema.
Birdwatcher
Birdwatcher es una herramienta de depuración para Milvus que se conecta a etcd, lo que permite supervisar el estado del servidor de Milvus y realizar ajustes en tiempo real. También admite copias de seguridad de archivos de etcd, lo que ayuda a los desarrolladores a resolver problemas.
Bulk Writer
Bulk Writer es una herramienta de procesamiento de datos proporcionada por los SDK de Milvus (por ejemplo, PyMilvus o el SDK de Java), diseñada para convertir conjuntos de datos sin procesar a un formato compatible con Milvus y facilitar así una importación eficiente.
Bulk Insert
Bulk Insert es una API que mejora el rendimiento de la escritura al permitir la importación de varios archivos en una sola solicitud, optimizando así las operaciones con grandes conjuntos de datos.
Cardinal
Cardinal, desarrollado por Zilliz Cloud, es un algoritmo de búsqueda vectorial de vanguardia que ofrece una calidad y un rendimiento de búsqueda sin igual. Gracias a su diseño innovador y a sus amplias optimizaciones, Cardinal supera a Knowhere en varias veces, hasta un orden de magnitud, al tiempo que gestiona de forma adaptativa diversos escenarios de producción, como tamaños de K variables, filtrado intensivo, diferentes distribuciones de datos, etc.
Channel
Milvus utiliza dos tipos de canales, PChannel y VChannel, como parte de su arquitectura de servicio de streaming. Cada PChannel se corresponde con un flujo WAL gestionado por Woodpecker, mientras que cada VChannel se corresponde con un fragmento de una colección. El servicio de streaming gestiona estos canales para garantizar la coherencia de los datos y la recuperación ante fallos.
Colección
En Milvus, una colección equivale a una tabla en un sistema de gestión de bases de datos relacionales (RDBMS). Las colecciones son los principales objetos lógicos que se utilizan para almacenar y gestionar entidades. Para obtener más información, consulta «Gestionar colecciones».
Dependencia
Una dependencia es un programa del que depende otro programa para funcionar. Las dependencias de Milvus incluyen etcd (almacena metadatos), MinIO o S3 (almacenamiento de objetos) y una cola de mensajes como Woodpecker (gestiona los registros de instantáneas). Para obtener más información, consulta «Infraestructura de datos».
Esquema dinámico
El esquema dinámico permite insertar entidades con nuevos campos en una colección sin modificar el esquema existente. Esto significa que se pueden insertar datos sin conocer el esquema completo de una colección y se pueden incluir campos que aún no estén definidos. Esta capacidad sin esquema se puede habilitar activando el campo dinámico al crear una colección. Para obtener más información, consulta «Habilitar el campo dinámico».
Incrustaciones
Milvus ofrece funciones de incrustación integradas que funcionan con los proveedores de incrustación más populares. Antes de crear una colección en Milvus, puede utilizar estas funciones para generar incrustaciones para sus conjuntos de datos, lo que agiliza el proceso de preparación de datos y las búsquedas vectoriales. Para ver cómo se crean las incrustaciones en la práctica, consulte «Uso del modelo de PyMilvus para generar incrustaciones de texto».
Entidad
Una entidad consiste en un grupo de campos que representan objetos del mundo real. Cada entidad en Milvus está representada por una clave primaria única.
Puedes personalizar las claves primarias. Si no las configuras manualmente, Milvus asigna automáticamente la clave primaria a las entidades. Si decides personalizar la clave primaria, ten en cuenta que, por el momento, Milvus no admite la deduplicación de claves primarias. Por lo tanto, puede haber claves primarias duplicadas en la misma colección. Para obtener más información, consulta «Insertar entidades».
Campo
Un campo de una colección de Milvus equivale a una columna de una tabla en un SGBD relacional. Los campos pueden ser campos escalares para datos estructurados (por ejemplo, números o cadenas) o campos vectoriales para vectores de incrustación.
Filtro
Milvus admite el filtrado escalar mediante la búsqueda con predicados, lo que te permite definir condiciones de filtrado en las consultas y búsquedas para refinar los resultados.
Búsqueda filtrada
La búsqueda filtrada aplica filtros escalares a las búsquedas vectoriales, lo que permite refinar los resultados de la búsqueda en función de criterios específicos. Para obtener más información, consulta Búsqueda filtrada.
Búsqueda híbrida
La búsqueda híbrida es una API para la búsqueda híbrida disponible desde la versión 2.4.0 de Milvus. Permite buscar en varios campos vectoriales y fusionarlos. Cuando se combina una búsqueda vectorial con el filtrado de campos escalares, se denomina «búsqueda filtrada». Para obtener más información, consulta Búsqueda híbrida.
Índice
Un índice vectorial es una estructura de datos reorganizada derivada de datos sin procesar que puede acelerar considerablemente el proceso de búsqueda de similitud vectorial. Milvus admite una amplia gama de tipos de índices tanto para campos vectoriales como para campos escalares. Para obtener más información, consulta Tipos de índices vectoriales.
Conector Kafka-Milvus
El conector Kafka-Milvus es un conector de destino de Kafka para Milvus. Permite transmitir datos vectoriales desde Kafka a Milvus.
Knowhere
Knowhere es el motor central de ejecución vectorial de Milvus, que incorpora varias bibliotecas de búsqueda de similitud vectorial, entre ellas Faiss, Hnswlib y Annoy. Knowhere también está diseñado para admitir la computación heterogénea. Controla en qué hardware (CPU o GPU) se ejecutan las solicitudes de creación de índices y de búsqueda. De ahí proviene el nombre de Knowhere: «saber dónde» ejecutar las operaciones.
Instantánea de registro
Una instantánea de registro es un registro binario, una unidad más pequeña dentro de un segmento que registra y gestiona las actualizaciones y los cambios realizados en los datos de Milvus. Los datos de un segmento se conservan en varios registros binarios. En Milvus hay tres tipos de registros binarios: InsertBinlog, DeleteBinlog y DDLBinlog. Para obtener más información, consulta Almacenamiento de metadatos.
Tipo de métrica
Los tipos de métricas de similitud se utilizan para medir las similitudes entre vectores. Actualmente, Milvus admite la distancia euclidiana (L2), el producto interno (IP), la similitud coseno (COSINE) y los tipos de métricas binarias. Puede elegir el tipo de métrica más adecuado en función de su caso de uso. Para obtener más información, consulte Métricas de similitud.
MemoryBuffer
MemoryBuffer es un modo de implementación ligero de Woodpecker que almacena temporalmente en memoria las escrituras entrantes y las transfiere periódicamente al almacenamiento de objetos en la nube. Este modo es ideal para cargas de trabajo con gran volumen de lotes en implementaciones a pequeña escala o entornos de producción que priorizan la simplicidad frente al rendimiento. Para obtener más información, consulta Arquitectura de Woodpecker.
Mmap
Los archivos mapeados en memoria permiten un manejo eficiente de los datos al mapear el contenido de los archivos directamente en la memoria. Esto resulta especialmente útil cuando la memoria es limitada y no es posible cargar todos los datos. Esta técnica puede aumentar la capacidad de datos y mantener el rendimiento hasta cierto punto. Sin embargo, si los datos superan ampliamente la capacidad de la memoria, las velocidades de búsqueda y consulta podrían disminuir significativamente. Para obtener más información, consulta «Almacenamiento de datos con MMap habilitado».
Milvus Backup
Milvus Backup es una herramienta para crear copias de los datos, que pueden utilizarse para restaurar el original tras un incidente de pérdida de datos.
Milvus CDC
Milvus CDC (captura de cambios en los datos) es una herramienta que se utiliza para replicar los cambios en los datos de un clúster de Milvus a otro con el fin de garantizar la recuperación ante desastres en un entorno primario-de reserva.
CLI de Milvus
La interfaz de línea de comandos (CLI)de Milvus es una herramienta de línea de comandos que permite conectarse a la base de datos, realizar operaciones con los datos e importar y exportar datos. Basada en el SDK de Python de Milvus, permite ejecutar comandos a través de un terminal utilizando indicaciones interactivas de línea de comandos.
Milvus Migration
Milvus Migration es una herramienta de código abierto diseñada para facilitar la migración de datos desde diversas fuentes de datos a Milvus 2.x.
Clúster de Milvus
En la implementación en clúster de Milvus, los servicios son prestados por un grupo de nodos para lograr una alta disponibilidad y una fácil escalabilidad.
Milvus autónomo
En la implementación autónoma de Milvus, todas las operaciones —incluida la inserción de datos, la creación de índices y la búsqueda de similitud vectorial— se llevan a cabo en un único proceso.
Multivector
Milvus admite múltiples campos vectoriales en una misma colección desde la versión 2.4.0. Para obtener más información, consulta «Búsqueda híbrida».
Partición
Una partición es una división de una colección. Milvus permite dividir los datos de una colección en varias partes en el almacenamiento físico. Este proceso se denomina «particionamiento», y cada partición puede contener varios segmentos. Para obtener más información, consulta «Gestión de particiones».
Clave de partición
El atributo de clave de partición de un campo permite segregar entidades en particiones distintas en función de los valores de su clave de partición. Esta agrupación garantiza que las entidades que comparten el mismo valor de clave se almacenen juntas, lo que puede acelerar las operaciones de búsqueda al permitir que el sistema omita las particiones irrelevantes durante las consultas filtradas por el campo de clave de partición. Para obtener más información, consulta «Uso de la clave de partición».
PChannel
PChannel son las siglas de «canal físico». Cada PChannel se corresponde con un flujo WAL gestionado por Woodpecker. De forma predeterminada, al iniciar el clúster de Milvus se asignará un grupo de PChannels para almacenar los registros que recogen la inserción, eliminación y actualización de datos. Para obtener más información, consulta «Servicio de streaming».
PyMilvus
PyMilvus es un SDK de Python para Milvus. Su código fuente es de código abierto y está alojado en GitHub. Tienes la flexibilidad de elegir entre MilvusClient (la nueva versión del SDK de Python) o el módulo ORM original para comunicarte con Milvus.
Query
Query es una API que realiza filtrado escalar utilizando una expresión booleana especificada como filtro. Para obtener más información, consulta «Get & Scalar Query».
QuorumBuffer
QuorumBuffer es un modo de implementación de Woodpecker diseñado para cargas de trabajo de lectura/escritura de alta frecuencia y sensibles a la latencia que requieren tanto capacidad de respuesta en tiempo real como una sólida tolerancia a fallos. Funciona como un búfer de escritura de alta velocidad con escrituras de quórum de tres réplicas, lo que garantiza una fuerte consistencia y una alta disponibilidad. Para obtener más información, consulta «Arquitectura de Woodpecker».
Búsqueda por rango
La búsqueda por rango permite encontrar vectores que se encuentren a una distancia especificada del vector de búsqueda. Para obtener más información, consulta «Búsqueda por rango».
Esquema
El esquema es la metainformación que define el tipo de datos y las propiedades de los datos. Cada colección tiene su propio esquema de colección que define todos los campos de la misma, la habilitación de la asignación automática de ID (clave primaria) y la descripción de la colección. Los esquemas de campo también se incluyen en los esquemas de colección, que definen el nombre, el tipo de datos y otras propiedades de un campo. Para obtener más información, consulta «Gestionar el esquema».
Búsqueda
La búsqueda es una API que realiza una operación para llevar a cabo una búsqueda de similitud vectorial, para cuya ejecución se requieren datos vectoriales. Para obtener más información, consulta «Búsqueda de un solo vector».
Segmento
Un segmento es un archivo de datos creado automáticamente que almacena los datos insertados. Una colección puede contener varios segmentos, y cada segmento puede albergar numerosas entidades. Durante una búsqueda de similitud vectorial, Milvus examina cada segmento para compilar los resultados de la búsqueda.
Existen dos tipos de segmentos: en crecimiento y sellados. Un segmento en crecimiento sigue recopilando nuevos datos hasta que alcanza un umbral específico o un límite de tiempo, tras lo cual pasa a estar sellado. Una vez sellado, un segmento ya no acepta nuevos datos y se transfiere al almacenamiento de objetos. Mientras tanto, los datos entrantes se redirigen a un nuevo segmento en crecimiento. La transición de un segmento en crecimiento a uno sellado se activa al alcanzar el límite de entidades predefinido o al superar la duración máxima permitida en el estado de crecimiento. Para obtener más información, consulta «Detalles de diseño».
Conector Spark-Milvus
El conector Spark-Milvus proporciona una integración perfecta entre Apache Spark y Milvus, combinando las funciones de procesamiento de datos y aprendizaje automático (ML) de Apache Spark con las capacidades de almacenamiento y búsqueda de datos vectoriales de Milvus.
Fragmento
Milvus mejora el rendimiento de la escritura de datos distribuyendo las operaciones de escritura entre varios nodos mediante fragmentos (shards), que se organizan en función del hash de las claves primarias. De este modo, se aprovechan las capacidades de computación paralela del clúster.
La partición sirve para reducir la carga de lectura mediante la especificación de un nombre de partición, mientras que la fragmentación distribuye la carga de escritura entre varios servidores.
Vector disperso
Los vectores dispersos representan palabras o frases mediante incrustaciones vectoriales en las que la mayoría de los elementos son cero, y solo un elemento distinto de cero indica la presencia de una palabra específica. Los modelos de vectores dispersos, como SPLADEv2, superan a los modelos densos en la búsqueda de conocimiento fuera del dominio, la reconocimiento de palabras clave y la interpretabilidad. Para obtener más información, consulta «Vectores dispersos».
Servicio de streaming
El servicio de streaming es un concepto para el módulo del sistema de streaming interno de Milvus, construido en torno al registro de escritura anticipada (WAL) para dar soporte a diversas funciones relacionadas con el streaming. Entre ellas se incluyen la ingesta y suscripción de datos en streaming, la recuperación ante fallos del estado del clúster, la conversión de datos en streaming en datos históricos y las consultas de datos crecientes. El servicio se compone de los componentes «Coordinador de streaming», «Clúster de nodos de streaming» y «Cliente de streaming». Para obtener más información, consulta «Servicio de streaming».
Datos no estructurados
Los datos no estructurados, que incluyen imágenes, vídeo, audio y lenguaje natural, son información que no sigue un modelo predefinido ni una forma de organización concreta. Este tipo de datos representa alrededor del 80 % de los datos mundiales y puede convertirse en vectores utilizando diversos modelos de inteligencia artificial (IA) y aprendizaje automático (ML).
VChannel
VChannel son las siglas de «canal virtual». Cada VChannel representa un fragmento de una colección. A cada colección se le asignará un grupo de VChannels para registrar la inserción, eliminación y actualización de datos. Los VChannels están separados lógicamente, pero comparten recursos físicamente a través del servicio de streaming. Para obtener más información, consulta el Servicio de streaming.
Vector
Un vector de incrustación es una abstracción de características de datos no estructurados, como correos electrónicos, datos de sensores de IoT, fotos de Instagram, estructuras de proteínas y mucho más. Matemáticamente hablando, un vector de incrustación es una matriz de números de coma flotante o binarios. Se utilizan técnicas modernas de incrustación para convertir datos no estructurados en vectores de incrustación. Milvus admite tanto vectores densos como dispersos desde la versión 2.4.0.
Almacenamiento WAL
El almacenamiento en el registro de escritura anticipada (WAL) es la base de la durabilidad y la consistencia de los datos en los sistemas distribuidos. Antes de que se confirme cualquier cambio, este se registra primero en un registro, lo que garantiza que, en caso de fallo, se pueda recuperar exactamente desde donde se dejó. Milvus utiliza Woodpecker como sistema de almacenamiento WAL, que admite tanto el modo MemoryBuffer como el modo QuorumBuffer. Para obtener más información, consulta la arquitectura de Woodpecker.
Woodpecker
Woodpecker es un sistema WAL nativo de la nube incluido en Milvus 2.6 que sustituye a Kafka y Pulsar. Con una arquitectura sin disco y dos modos de implementación (MemoryBuffer y QuorumBuffer), ofrece un alto rendimiento, una baja sobrecarga operativa y una escalabilidad fluida en el almacenamiento de objetos. Para obtener más información, consulta la sección «Arquitectura de Woodpecker».
Zilliz Cloud
Milvus totalmente gestionado en Zilliz Cloud, con más funciones empresariales y un rendimiento altamente optimizado.