Terminologia
AutoID
AutoID è un attributo del campo primario che determina se abilitare l'AutoIncrement 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 sulla base di dati empirici. Ciò è 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 «tutto in uno» per Milvus che riduce significativamente la complessità e i costi di gestione del sistema.
Birdwatcher
Birdwatcher è uno strumento di debug per Milvus che si collega a etcd, consentendo di monitorare lo stato del server Milvus e di apportare modifiche in tempo reale. Supporta inoltre 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 es. PyMilvus, Java SDK), progettato per convertire i set di dati grezzi in un formato compatibile con Milvus per un'importazione efficiente.
Bulk Insert
Bulk Insert è un'API che migliora le prestazioni di scrittura consentendo l'importazione di più file in un'unica richiesta, ottimizzando le operazioni con set di dati di grandi dimensioni.
Cardinal
Cardinal, sviluppato da Zilliz Cloud, è un algoritmo di ricerca vettoriale all'avanguardia che offre una qualità e prestazioni di ricerca senza pari. Grazie al suo design innovativo e alle numerose ottimizzazioni, Cardinal supera Knowhere di diverse volte, fino a un ordine di grandezza, gestendo in modo adattivo diversi scenari di produzione, quali dimensioni K variabili, filtri elevati, diverse distribuzioni dei dati e così via.
Channel
Milvus utilizza due tipi di canali, PChannel e VChannel, come parte della propria architettura del servizio di streaming. Ogni PChannel corrisponde a un flusso WAL gestito da Woodpecker, mentre ogni VChannel corrisponde a uno shard in una collezione. Il servizio di streaming gestisce questi canali per garantire la coerenza dei dati e il ripristino in caso di guasti.
Collezione
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 archiviare e gestire le entità. Per ulteriori informazioni, consultare Gestione delle collezioni.
Dipendenza
Una dipendenza è un programma da cui dipende il funzionamento di un altro programma. Le dipendenze di Milvus includono etcd (che memorizza i metadati), MinIO o S3 (archiviazione a oggetti) e una coda di messaggi come Woodpecker (che gestisce i log degli snapshot). Per ulteriori informazioni, consultare la sezione " Infrastruttura dei dati".
Schema dinamico
Lo schema dinamico consente di inserire entità con nuovi campi in una collezione senza modificare lo schema esistente. Ciò significa che è possibile inserire dati senza conoscere lo schema completo di una collezione e includere campi non ancora definiti. È possibile abilitare questa funzionalità "schema-free" attivando il campo dinamico durante la creazione di una collezione. Per ulteriori informazioni, consultare Abilitare il campo dinamico.
Embedding
Milvus offre funzioni di embedding integrate che funzionano con i principali provider di embedding. Prima di creare una collezione in Milvus, è possibile utilizzare queste funzioni per generare embedding per i propri set di dati, ottimizzando il processo di preparazione dei dati e le ricerche vettoriali. Per creare embedding in pratica, consultare Utilizzo del modello di PyMilvus per generare embedding di testo.
Entità
Un’entità è costituita da un gruppo di campi che rappresentano oggetti del mondo reale. Ogni entità in Milvus è rappresentata da una chiave primaria univoca.
È possibile personalizzare le chiavi primarie. Se non si effettua la configurazione manualmente, Milvus assegna automaticamente la chiave primaria alle entità. Se si sceglie di personalizzare la chiave primaria, si noti che Milvus al momento non supporta la deduplicazione delle chiavi primarie. Pertanto, nella stessa collezione potrebbero esserci chiavi primarie duplicate. Per ulteriori informazioni, consultare la sezione "Inserimento di entità".
Campo
Un campo in una collezione Milvus è equivalente a una colonna di una tabella in un RDBMS. I campi possono essere campi scalari per dati strutturati (ad es. numeri, stringhe) oppure campi vettoriali per vettori di embedding.
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.
Ricerca filtrata
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 Ricerca filtrata.
Ricerca ibrida
La ricerca ibrida è un'API per la ricerca ibrida disponibile a partire da Milvus 2.4.0. È possibile effettuare ricerche su più campi vettoriali e fonderli insieme. Una ricerca vettoriale combinata con il filtraggio di campi scalari viene definita "ricerca filtrata". Per ulteriori informazioni, consultare Ricerca ibrida.
Indice
Un indice vettoriale è una struttura di dati riorganizzata derivata dai dati grezzi in grado di accelerare notevolmente il processo di ricerca per somiglianza vettoriale. Milvus supporta un'ampia gamma di tipi di indici sia per i campi vettoriali che per quelli scalari. Per ulteriori informazioni, consultare Tipi di indici vettoriali.
Connettore Kafka-Milvus
Il connettore Kafka-Milvus è un connettore sink Kafka per Milvus. Consente di trasmettere in streaming dati vettoriali da Kafka a Milvus.
Knowhere
Knowhere è il motore di esecuzione vettoriale principale di Milvus, che integra diverse librerie di ricerca di similarità vettoriale, tra cui Faiss, Hnswlib e Annoy. Knowhere è inoltre progettato per supportare il calcolo eterogeneo. Controlla su quale hardware (CPU o GPU) eseguire la creazione degli indici e le richieste di ricerca. È da qui che deriva il nome Knowhere: "sapere dove" eseguire le operazioni.
Istantanea del log
Uno snapshot di log è un log binario, un’unità più piccola all’interno di un segmento che registra e gestisce gli aggiornamenti e le modifiche apportate ai dati in Milvus. I dati di un segmento vengono persistiti 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 similarità vengono utilizzati per misurare le somiglianze tra i vettori. Attualmente, Milvus supporta la distanza euclidea (L2), il prodotto interno (IP), la similarità coseno (COSINE) e i tipi di metriche binarie. È possibile scegliere il tipo di metrica più appropriato in base al proprio scenario. Per ulteriori informazioni, consultare Metriche di similarità.
MemoryBuffer
MemoryBuffer è una modalità di distribuzione leggera di Woodpecker che memorizza temporaneamente in buffer le operazioni di scrittura in arrivo e le trasferisce periodicamente all’object storage cloud. Questa modalità è particolarmente indicata per carichi di lavoro con un elevato numero di batch in distribuzioni su piccola scala o in ambienti di produzione che privilegiano la semplicità rispetto alle prestazioni. Per ulteriori informazioni, consultare 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 notevolmente la capacità della memoria, le velocità di ricerca e di interrogazione potrebbero diminuire in modo significativo. Per ulteriori informazioni, consultare Archiviazione dati con MMap abilitato.
Milvus Backup
Milvus Backup è uno strumento per la creazione di copie dei dati, che possono essere utilizzate per ripristinare l’originale in caso di perdita dei 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.
CLI di Milvus
L'interfaccia a riga di comando (CLI)di Milvus è uno strumento a riga di comando che supporta la connessione al database, le operazioni sui dati e l'importazione e l'esportazione dei dati. Basata sull'SDK Python di Milvus, consente l'esecuzione di comandi tramite un terminale utilizzando prompt interattivi a riga di comando.
Milvus Migration
Milvus Migration è uno strumento open source progettato per facilitare la migrazione dei dati da varie fonti a Milvus 2.x.
Cluster Milvus
Nell’implementazione in cluster di Milvus, i servizi sono forniti da un gruppo di nodi per garantire un’elevata disponibilità e una facile scalabilità.
Milvus in modalità standalone
Nell'implementazione standalone di Milvus, tutte le operazioni, tra cui l'inserimento dei dati, la creazione degli indici e la ricerca di similarità vettoriale, vengono eseguite in un unico processo.
Multi-vettore
A partire dalla versione 2.4.0, Milvus supporta più campi vettoriali in un'unica collezione. Per ulteriori informazioni, consultare la sezione Ricerca ibrida.
Partizione
Una partizione è una suddivisione di una collezione. Milvus supporta la suddivisione dei dati della collezione in più parti sull'archivio fisico. Questo processo è denominato 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 separare le entità in partizioni distinte in base ai valori della chiave di partizione. Questo raggruppamento garantisce che le entità che condividono lo stesso valore di chiave vengano memorizzate insieme, il che può velocizzare le operazioni di ricerca consentendo al sistema di bypassare le partizioni irrilevanti durante le query filtrate in base al campo della chiave di partizione. Per ulteriori informazioni, consultare la sezione "Utilizzo della chiave di partizione".
PChannel
PChannel sta per canale fisico. Ogni PChannel corrisponde a un flusso WAL gestito da Woodpecker. Per impostazione predefinita, all’avvio del cluster Milvus viene assegnato un gruppo di PChannel per l’archiviazione dei log che registrano l’inserimento, l’eliminazione e l’aggiornamento dei dati. Per ulteriori informazioni, consultare Servizio di streaming.
PyMilvus
PyMilvus è un SDK Python di Milvus. Il suo codice sorgente è open source e ospitato su GitHub. È possibile scegliere liberamente tra MilvusClient (nuova versione dell’SDK Python) o il modulo ORM originale per interagire con Milvus.
Query
Query è un’API che esegue il filtraggio scalare utilizzando 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 ad alta frequenza e sensibili alla latenza, che richiedono sia reattività in tempo reale che una forte tolleranza ai guasti. Funziona come un buffer di scrittura ad alta velocità con scritture a quorum a tre repliche, garantendo una forte coerenza e un'elevata disponibilità. Per ulteriori informazioni, consultare Woodpecker Architecture.
Ricerca per intervallo
La ricerca per intervallo consente di individuare vettori che si trovano entro una distanza specificata dal vettore di ricerca. Per ulteriori informazioni, consultare Ricerca per intervallo.
Schema
Lo schema è l’insieme di metadati che definisce il tipo di dati e le proprietà dei dati. Ogni raccolta dispone di un proprio schema che definisce tutti i campi della raccolta, l’abilitazione dell’assegnazione automatica dell’ID (chiave primaria) e la descrizione della raccolta. 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 dello schema.
Ricerca
La ricerca è un'API che esegue un'operazione per effettuare una ricerca di similarità vettoriale, che richiede dati vettoriali per la sua esecuzione. Per ulteriori informazioni, consultare Ricerca a vettore singolo.
Segmento
Un segmento è un file di dati creato automaticamente che memorizza i dati inseriti. Una raccolta 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: in crescita e sigillati. Un segmento in crescita continua a raccogliere nuovi dati fino a quando non raggiunge una soglia specifica o un limite di tempo, dopodiché viene sigillato. Una volta sigillato, un segmento non accetta più nuovi dati e viene trasferito all’object storage. Nel frattempo, i dati in arrivo vengono indirizzati a un nuovo segmento in crescita. Il passaggio da un segmento in crescita a uno sigillato viene innescato dal raggiungimento del limite predefinito di entità o dal superamento della durata massima consentita nello stato di crescita. Per ulteriori informazioni, consultare la sezione Dettagli di progettazione.
Connettore Spark-Milvus
Il connettore Spark-Milvus garantisce un’integrazione perfetta tra Apache Spark e Milvus, combinando le funzionalità di elaborazione dei dati e 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 tramite gli shard, organizzati in base all’hashing delle chiavi primarie. Ciò sfrutta le capacità di calcolo parallelo del cluster.
Il partizionamento serve a ridurre il carico di lettura specificando un nome di partizione, mentre lo sharding distribuisce il carico di scrittura su più server.
Vettore sparso
I vettori sparsi rappresentano parole o frasi utilizzando embedding vettoriali in cui la maggior parte degli elementi è pari a zero, con un solo elemento diverso da zero che indica la presenza di una parola specifica. I modelli a vettori sparsi, come SPLADEv2, superano i modelli densi nella ricerca di conoscenze fuori dominio, nella sensibilità alle parole chiave e nell’interpretabilità. Per ulteriori informazioni, consultare la sezione Vettori sparsi.
Servizio di streaming
Il servizio di streaming è un concetto relativo al modulo del sistema di streaming interno di Milvus, costruito attorno al Write-Ahead Log (WAL) per supportare varie funzioni relative allo streaming. Queste includono l’acquisizione/sottoscrizione dei dati in streaming, il ripristino in caso di guasto dello stato del cluster, la conversione dei dati in streaming in dati storici e le query sui dati in crescita. Il servizio è composto dai componenti Coordinatore di streaming, Cluster di nodi di streaming e Client di streaming. Per ulteriori informazioni, consultare 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 predefiniti. 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 di apprendimento automatico (ML).
VChannel
VChannel sta per canale virtuale. Ogni VChannel rappresenta uno shard in una raccolta. A ogni raccolta verrà assegnato un gruppo di VChannel per la registrazione dell’inserimento, dell’eliminazione e dell’aggiornamento dei dati. I VChannel sono separati logicamente ma condividono fisicamente le risorse tramite il servizio di streaming. Per ulteriori informazioni, consultare Servizio di streaming.
Vettore
Un vettore di embedding è un’astrazione delle caratteristiche dei dati non strutturati, quali e-mail, dati dei sensori IoT, foto di Instagram, strutture proteiche e altro ancora. Dal punto di vista matematico, un vettore di embedding è un array di numeri in virgola mobile o di valori binari. Per convertire i dati non strutturati in vettori di embedding vengono utilizzate moderne tecniche di embedding. A partire dalla versione 2.4.0, Milvus supporta sia vettori densi che sparsi.
Archiviazione WAL
L'archiviazione Write-Ahead Log (WAL) è alla base della durabilità e della coerenza dei dati nei sistemi distribuiti. Prima che qualsiasi modifica venga confermata, viene prima registrata in un log, garantendo che, in caso di guasto, sia possibile ripristinare esattamente il punto in cui si era interrotto. Milvus utilizza Woodpecker come sistema di archiviazione WAL, che supporta sia la modalità MemoryBuffer che quella QuorumBuffer. Per ulteriori informazioni, consultare l’architettura di Woodpecker.
Woodpecker
Woodpecker è un sistema WAL cloud-native presente in Milvus 2.6 che sostituisce Kafka e Pulsar. Grazie a un’architettura zero-disk e a due modalità di implementazione (MemoryBuffer e QuorumBuffer), offre un elevato throughput, un basso overhead operativo e una scalabilità senza soluzione di continuità su storage a oggetti. Per ulteriori informazioni, consultare la sezione Architettura di Woodpecker.
Zilliz Cloud
Milvus completamente gestito su Zilliz Cloud, con più funzionalità aziendali e prestazioni altamente ottimizzate.