Terminologia

AutoID

AutoID è un attributo del campo primario che determina se abilitare l'incremento automatico per il campo primario. Il valore di AutoID è definito in base a un timestamp. Per ulteriori informazioni, consultare create_schema.

Indice automatico

Milvus decide automaticamente il tipo di indice e i parametri più appropriati per un campo specifico in base a dati empirici. Questo è ideale per le situazioni in cui non è necessario controllare i parametri specifici dell'indice. Per ulteriori informazioni, consultare add_index.

Attu

Attu è uno strumento di amministrazione all-in-one per Milvus che riduce significativamente la complessità e i costi di gestione del sistema.

Birdwatcher

Birdwatcher è uno strumento di debug per Milvus che si connette a etcd, consentendo di monitorare lo stato del server Milvus e di apportare modifiche in tempo reale. Supporta anche il backup dei file etcd, aiutando gli sviluppatori nella risoluzione dei problemi.

Bulk Writer

Bulk Writer è uno strumento di elaborazione dei dati fornito dagli SDK di Milvus (ad esempio PyMilvus, Java SDK), progettato per convertire i set di dati grezzi in un formato compatibile con Milvus per un'importazione efficiente.

Inserimento massivo

Bulk Insert è un'API che migliora le prestazioni di scrittura consentendo l'importazione di più file in un'unica richiesta, ottimizzando le operazioni con grandi insiemi di dati.

Cardinale

Cardinal, sviluppato da Zilliz Cloud, è un algoritmo di ricerca vettoriale all'avanguardia che offre qualità e prestazioni di ricerca senza precedenti. Grazie al suo design innovativo e alle estese ottimizzazioni, Cardinal supera Knowhere di diverse volte o di un ordine di grandezza, gestendo in modo adattivo diversi scenari di produzione, come dimensioni K variabili, filtraggio elevato, diverse distribuzioni di dati e così via.

Il canale

Milvus utilizza due tipi di canali, PChannel e VChannel, come parte della sua architettura di servizio di streaming. Ogni PChannel corrisponde a un flusso WAL gestito da Woodpecker, mentre ogni VChannel corrisponde a uno shard di una collezione. Il servizio di streaming gestisce questi canali per garantire la coerenza dei dati e il recupero degli errori.

Raccolta

In Milvus, una collezione è equivalente a una tabella in un sistema di gestione di database relazionali (RDBMS). Le collezioni sono oggetti logici principali utilizzati per memorizzare e gestire le entità. Per ulteriori informazioni, consultare Gestione delle collezioni.

Dipendenza

Una dipendenza è un programma da cui un altro programma dipende per funzionare. Le dipendenze di Milvus includono etcd (memorizza i meta-dati), MinIO o S3 (memorizzazione degli oggetti) e Pulsar (gestisce i log delle istantanee). Per ulteriori informazioni, consultare Gestione delle dipendenze.

Schema dinamico

Lo schema dinamico consente di inserire entità con nuovi campi in una raccolta senza modificare lo schema esistente. Ciò significa che è possibile inserire dati senza conoscere lo schema completo di una raccolta e includere campi non ancora definiti. È possibile attivare questa funzionalità senza schema abilitando il campo dinamico durante la creazione di una raccolta. Per ulteriori informazioni, consultare Abilita campo dinamico.

Incorporamenti

Milvus offre funzioni di incorporamento integrate che funzionano con i più diffusi fornitori di incorporazioni. Prima di creare una raccolta in Milvus, è possibile utilizzare queste funzioni per generare embedding per i set di dati, semplificando il processo di preparazione dei dati e le ricerche vettoriali. Per creare embeddings in azione, si veda Utilizzo del modello di PyMilvus per generare embeddings di testo.

Entità

Un'entità consiste in un gruppo di campi che rappresentano oggetti del mondo reale. Ogni entità in Milvus è rappresentata da una chiave primaria unica.

È possibile personalizzare le chiavi primarie. Se non si configura manualmente, Milvus assegna automaticamente la chiave primaria alle entità. Se si sceglie di personalizzare la chiave primaria, si noti che Milvus non supporta per ora la de-duplicazione della chiave primaria. Pertanto, possono esserci chiavi primarie duplicate nella stessa collezione. Per ulteriori informazioni, consultare Inserisci entità.

Campo

Un campo in una collezione Milvus è equivalente a una colonna di una tabella in un RDBMS. I campi possono essere scalari per i dati strutturati (ad esempio, numeri, stringhe) o vettoriali per i vettori incorporati.

Filtro

Milvus supporta il filtraggio scalare tramite la ricerca con predicati, consentendo di definire condizioni di filtro all'interno di query e ricerche per affinare i risultati.

La ricerca filtrata applica filtri scalari alle ricerche vettoriali, consentendo di affinare i risultati della ricerca in base a criteri specifici. Per ulteriori informazioni, consultare la sezione Ricerca filtrata.

Hybrid Search è un'API per la ricerca ibrida a partire da Milvus 2.4.0. È possibile cercare più campi vettoriali e fonderli. Per una ricerca vettoriale combinata con il filtraggio di campi scalari, si parla di "ricerca filtrata". Per ulteriori informazioni, consultare la sezione Ricerca ibrida.

Indice

Un indice vettoriale è una struttura di dati riorganizzata derivata dai dati grezzi che può accelerare notevolmente il processo di ricerca della similarità vettoriale. Milvus supporta un'ampia gamma di tipi di indici sia per campi vettoriali che per campi scalari. Per ulteriori informazioni, consultare i tipi di indice vettoriale.

Connettore Kafka-Milvus

Kafka-Milvus Connector è un connettore Kafka per Milvus. Permette di trasmettere dati vettoriali da Kafka a Milvus.

Knowhere

Knowhere è il motore di esecuzione vettoriale di Milvus che incorpora diverse librerie di ricerca di similarità vettoriale, tra cui Faiss, Hnswlib e Annoy. Knowhere è anche progettato per supportare l'elaborazione eterogenea. Controlla su quale hardware (CPU o GPU) eseguire le richieste di creazione di indici e di ricerca. È così che Knowhere prende il suo nome: sa dove eseguire le operazioni.

Istantanea di registro

Un log snapshot è un log binario, un'unità più piccola di un segmento che registra e gestisce gli aggiornamenti e le modifiche apportate ai dati in Milvus. I dati di un segmento sono conservati in più binlog. In Milvus esistono tre tipi di binlog: InsertBinlog, DeleteBinlog e DDLBinlog. Per ulteriori informazioni, consultare la sezione Meta storage.

Tipo di metrica

I tipi di metriche di somiglianza sono utilizzati per misurare le somiglianze tra vettori. Attualmente Milvus supporta la distanza euclidea (L2), il prodotto interno (IP), la somiglianza coseno (COSINE) e le metriche binarie. È possibile scegliere il tipo di metrica più appropriato in base al proprio scenario. Per ulteriori informazioni, consultare Metriche di somiglianza.

MemoryBuffer

MemoryBuffer è una modalità di distribuzione leggera di Woodpecker che bufferizza temporaneamente le scritture in arrivo in memoria e le scarica periodicamente sullo storage di oggetti del cloud. Questa modalità è più adatta ai carichi di lavoro batch-heavy in distribuzioni su scala ridotta o in ambienti di produzione che privilegiano la semplicità rispetto alle prestazioni. Per ulteriori informazioni, consultare l'Architettura di Woodpecker.

Mmap

I file mappati in memoria consentono una gestione efficiente dei dati mappando il contenuto dei file direttamente in memoria. Ciò è particolarmente utile quando la memoria è limitata e non è possibile caricare tutti i dati. Questa tecnica può aumentare la capacità dei dati e mantenere le prestazioni fino a un certo punto. Tuttavia, se i dati superano di molto la capacità di memoria, la velocità di ricerca e di interrogazione potrebbe diminuire significativamente. Per ulteriori informazioni, consultare la sezione Archiviazione dei dati abilitata a MMap.

Milvus Backup

Milvus Backup è uno strumento per la creazione di copie di dati, che possono essere utilizzate per ripristinare l'originale dopo un evento di perdita di dati.

Milvus CDC

Milvus CDC (change data capture) è uno strumento utilizzato per replicare le modifiche dei dati da un cluster Milvus a un altro per il disaster recovery primario-standby.

Milvus CLI

Milvus Command-Line Interface (CLI) è uno strumento a riga di comando che supporta la connessione al database, le operazioni sui dati, l'importazione e l'esportazione dei dati. Basato su Milvus Python SDK, consente l'esecuzione di comandi attraverso un terminale utilizzando prompt interattivi della riga di comando.

Milvus Migrazione

Milvus Migration è uno strumento open-source progettato per facilitare la migrazione dei dati da varie fonti di dati in Milvus 2.x.

Cluster Milvus

Nella distribuzione in cluster di Milvus, i servizi sono forniti da un gruppo di nodi per ottenere un'elevata disponibilità e una facile scalabilità.

Milvus standalone

Nella distribuzione standalone di Milvus, tutte le operazioni, tra cui l'inserimento dei dati, la costruzione dell'indice e la ricerca di similarità vettoriale, sono completate in un unico processo.

Multi-vettoriale

Milvus supporta più campi vettoriali in una collezione dalla versione 2.4.0. Per ulteriori informazioni, consultare la sezione Ricerca ibrida.

Partizione

Una partizione è una divisione di una collezione. Milvus supporta la suddivisione dei dati di una raccolta in più parti sullo storage fisico. Questo processo si chiama partizionamento e ogni partizione può contenere più segmenti. Per ulteriori informazioni, consultare Gestione delle partizioni.

Chiave di partizione

L'attributo chiave di partizione di un campo consente di suddividere le entità in partizioni distinte in base ai valori della chiave di partizione. Questo raggruppamento garantisce che le entità che condividono lo stesso valore chiave siano archiviate insieme, il che può accelerare le operazioni di ricerca consentendo al sistema di bypassare le partizioni irrilevanti durante le interrogazioni filtrate dal campo chiave di partizione. Per ulteriori informazioni, fare riferimento a Utilizzare la chiave di partizione.

Canale PC

PChannel sta per canale fisico. Ogni PChannel corrisponde a un flusso WAL gestito da Woodpecker. Per impostazione predefinita, un gruppo di canali PC viene assegnato per memorizzare i registri che registrano l'inserimento, la cancellazione e l'aggiornamento dei dati all'avvio del cluster Milvus. Per ulteriori informazioni, fare riferimento a Servizio di streaming.

PyMilvus

PyMilvus è un SDK Python di Milvus. Il suo codice sorgente è open-sourced e ospitato su GitHub. È possibile scegliere MilvusClient (nuova versione dell'SDK Python) o il modulo ORM originale per comunicare con Milvus.

Query

Query è un'API che esegue filtri scalari con un'espressione booleana specificata come filtro. Per ulteriori informazioni, consultare Get & Scalar Query.

QuorumBuffer

QuorumBuffer è una modalità di distribuzione di Woodpecker progettata per carichi di lavoro di lettura/scrittura sensibili alla latenza e ad alta frequenza, che richiedono una reattività in tempo reale e una forte tolleranza agli errori. Funziona come un buffer di scrittura ad alta velocità con scritture quorum a tre repliche, garantendo una forte coerenza e un'elevata disponibilità. Per ulteriori informazioni, consultare l'architettura Woodpecker.

La ricerca per intervallo consente di trovare i vettori che si trovano entro una distanza specifica dal vettore di ricerca. Per ulteriori informazioni, consultare la sezione Ricerca per intervallo.

Schema

Lo schema è una meta-informazione che definisce il tipo di dati e le proprietà dei dati. Ogni raccolta ha un proprio schema di raccolta che definisce tutti i campi di una raccolta, l'abilitazione automatica all'assegnazione dell'ID (chiave primaria) e la descrizione della raccolta. Anche gli schemi dei campi sono inclusi negli schemi delle raccolte e definiscono il nome, il tipo di dati e altre proprietà di un campo. Per ulteriori informazioni, consultare Gestione degli schemi.

Laricerca è un'API che esegue un'operazione di ricerca di similarità vettoriale e richiede dati vettoriali per la sua esecuzione. Per ulteriori informazioni, consultare Ricerca di un singolo vettore.

Segmento

Un segmento è un file di dati creato automaticamente che memorizza i dati inseriti. Una collezione può contenere più segmenti e ogni segmento può contenere numerose entità. Durante una ricerca di similarità vettoriale, Milvus esamina ogni segmento per compilare i risultati della ricerca.

Esistono due tipi di segmenti: quelli in crescita e quelli sigillati. Un segmento in crescita continua a raccogliere nuovi dati finché non raggiunge una soglia specifica o un limite di tempo, dopodiché diventa sigillato. Una volta sigillato, un segmento non accetta più nuovi dati e viene trasferito nella memoria degli oggetti. Nel frattempo, i dati in arrivo vengono indirizzati a un nuovo segmento in crescita. La transizione da un segmento in crescita a uno sigillato viene attivata dal raggiungimento del limite di entità predefinito o dal superamento della durata massima consentita nello stato di crescita. Per ulteriori informazioni, fare riferimento a Dettagli di progettazione.

Spark-Milvus Connector

Spark-Milvus Connector fornisce un'integrazione perfetta tra Apache Spark e Milvus, combinando l'elaborazione dei dati e le funzionalità di machine learning (ML) di Apache Spark con le capacità di archiviazione e ricerca dei dati vettoriali di Milvus.

Shard

Milvus migliora le prestazioni di scrittura dei dati distribuendo le operazioni di scrittura su più nodi utilizzando gli shard, organizzati in base all'hashing delle chiavi primarie. In questo modo si sfruttano le capacità di calcolo parallelo del cluster.

Il partizionamento consente di ridurre il carico di lettura specificando il nome di una partizione, mentre lo sharding distribuisce il carico di scrittura su più server.

Vettore sparso

I vettori sparsi rappresentano parole o frasi utilizzando incorporazioni vettoriali in cui la maggior parte degli elementi è pari a zero e solo un elemento non nullo indica la presenza di una parola specifica. I modelli vettoriali sparsi, come SPLADEv2, superano i modelli densi nella ricerca di conoscenza fuori dal dominio, nella consapevolezza delle parole chiave e nell'interpretabilità. Per ulteriori informazioni, consultare Vettori sparsi.

Servizio di streaming

Il servizio di streaming è un concetto per il modulo del sistema di streaming interno di Milvus, costruito intorno al Write-Ahead Log (WAL) per supportare varie funzioni legate allo streaming. Queste includono l'ingestione/sottoscrizione di dati in streaming, il ripristino dello stato del cluster in caso di errore, la conversione dei dati in streaming in dati storici e le query sui dati in crescita. Il servizio è composto dai componenti Streaming Coordinator, Streaming Node Cluster e Streaming Client. Per ulteriori informazioni, consultare il servizio di streaming.

Dati non strutturati

I dati non strutturati, tra cui immagini, video, audio e linguaggio naturale, sono informazioni che non seguono un modello o una modalità di organizzazione predefinita. Questo tipo di dati rappresenta circa l'80% dei dati mondiali e può essere convertito in vettori utilizzando vari modelli di intelligenza artificiale (AI) e ML.

VChannel

VChannel sta per canale virtuale. Ogni VChannel rappresenta uno shard in una raccolta. A ogni raccolta viene assegnato un gruppo di VChannels per registrare l'inserimento, la cancellazione e l'aggiornamento dei dati. I canali virtuali sono logicamente separati ma condividono fisicamente le risorse attraverso il servizio di streaming. Per ulteriori informazioni, consultare il servizio di streaming.

Vettore

Un vettore di incorporazione è un'astrazione di dati non strutturati, come e-mail, dati di sensori IoT, foto di Instagram, strutture proteiche e altro ancora. In termini matematici, un vettore di incorporamento è un array di numeri in virgola mobile o binari. Le moderne tecniche di embedding sono utilizzate per convertire i dati non strutturati in vettori di embedding. Milvus supporta vettori densi e radi dalla versione 2.4.0.

Memorizzazione WAL

L'archiviazione WAL (Write-Ahead Log) è il fondamento della durabilità e della coerenza dei dati nei sistemi distribuiti. Prima che qualsiasi modifica venga impegnata, viene registrata in un registro, assicurando che, in caso di guasto, sia possibile recuperare esattamente il punto in cui si era interrotto. Milvus utilizza Woodpecker come sistema di archiviazione WAL, che supporta le modalità MemoryBuffer e QuorumBuffer. Per ulteriori informazioni, consultare l'architettura di Woodpecker.

Woodpecker

Woodpecker è un sistema WAL cloud-native in Milvus 2.6 che sostituisce Kafka e Pulsar. Con un'architettura a zero dischi e due modalità di distribuzione (MemoryBuffer e QuorumBuffer), offre un elevato throughput, un basso overhead operativo e una scalabilità senza soluzione di continuità sullo storage di oggetti. Per ulteriori informazioni, consultare l'architettura di Woodpecker.

Cloud Zilliz

Milvus completamente gestito su Zilliz Cloud, con più funzioni aziendali e prestazioni altamente ottimizzate.