milvus-logo
LFAI
Casa
  • Concetti

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 ampie ottimizzazioni, Cardinal supera Knowhere di diverse volte o di un ordine di grandezza, gestendo in modo adattivo diversi scenari di produzione, come ad esempio dimensioni K variabili, filtraggio elevato, diverse distribuzioni di dati e così via.

Il canale

Milvus utilizza due tipi di canali, PChannel e VChannel. Ogni PChannel corrisponde a un topic per l'archiviazione dei log, mentre ogni VChannel corrisponde a uno shard di una collezione.

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, è possibile che vi siano 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.

Broker dei log

Il log broker è un sistema publish-subscribe che supporta la riproduzione. È responsabile della persistenza dei dati in streaming, dell'esecuzione di query asincrone affidabili, della notifica degli eventi e della restituzione dei risultati delle query. Inoltre, garantisce l'integrità dei dati incrementali quando i nodi worker si riprendono da un guasto del sistema.

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.

Sottoscrittore di log

I sottoscrittori di log si abbonano alla sequenza di log per aggiornare i dati locali e fornire servizi sotto forma di copie in sola lettura.

Memorizzazione dei messaggi

L'archiviazione dei messaggi è il motore di archiviazione dei log di Milvus. Milvus supporta Kafka o Pulsa come archiviazione dei messaggi. Per ulteriori informazioni, consultare Configurazione dell'archiviazione dei messaggi.

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.

Mmap

I file con mappatura di memoria consentono una gestione efficiente dei dati grazie alla mappatura del contenuto del file direttamente nella 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 di facile utilizzo che consente di acquisire e sincronizzare i dati incrementali nelle istanze Milvus. Garantisce l'affidabilità dei dati aziendali trasferendoli senza soluzione di continuità tra le istanze di origine e di destinazione, consentendo di semplificare il backup incrementale e il disaster recovery.

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 a 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 campi vettoriali multipli in un'unica 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 della 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 memorizzate 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 argomento per la memorizzazione dei registri. Per impostazione predefinita, un gruppo di 16 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, consultare la sezione Configurazioni relative ai canali di messaggi.

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 parlare con Milvus.

Query

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

La ricerca per intervallo consente di trovare i vettori che si trovano entro una determinata distanza 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 le funzioni di elaborazione dei dati e di apprendimento automatico (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.

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.

Canale V

VChannel sta per canale logico. Ogni VChannel rappresenta uno shard in una raccolta. A ogni raccolta viene assegnato un gruppo di VChannel per registrare l'inserimento, la cancellazione e l'aggiornamento dei dati. I VChannel sono logicamente separati ma fisicamente condividono le risorse.

Vettore

Un vettore di embedding è 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.

Nuvola di Zilliz

Milvus completamente gestito su Zilliz Cloud, con maggiori funzionalità aziendali e prestazioni altamente ottimizzate.