Instalação do Servidor Milvus com Docker e Dependências de Empacotamento
Milvus é um banco de dados vetorial open-source popular, com tração significativa em casos de uso de IA Generativa e RAG (Geração Aumentada por Recuperação). Como organização, você pode estar considerando integrar o Milvus ao seu stack de tecnologia, e é importante entender as principais dependências e requisitos.
Milvus oferece opções flexíveis de implantação para seu servidor:
Local: Execute o Milvus como um único contêiner Docker na sua máquina. Para necessidades em larga escala, implante o Milvus em um cluster Kubernetes.
Cloud (Zilliz): A Zilliz oferece o Milvus como um serviço de nuvem gerenciado na AWS, GCP ou Azure, fornecendo recursos avançados adicionais e uma experiência sem complicações.
O restante deste blog será sobre a instalação do Milvus localmente. Observe que isto é para o Milvus versão 2.4 e superiores.
Visão geral das dependências
Assumindo uma instalação limpa, as principais dependências para o servidor standalone do Milvus incluem:
FAISS: Uma biblioteca para busca eficiente de similaridade e clusterização de vetores densos.
etcd: Um armazenamento distribuído de chave-valor usado para armazenar metadados do Milvus.
Pulsar/Kafka: Um sistema distribuído de mensagens pub-sub para lidar com ingestão de dados em tempo real, processamento e comunicação entre componentes.
Tantivy: Uma biblioteca de mecanismo de busca de texto completo escrita em Rust para capacidades de busca baseada em texto.
RocksDB: Um mecanismo de armazenamento persistente.
Minio/S3/GCS/Azure Blob Storage: Compatibilidade com várias soluções de armazenamento de objetos.
Kubernetes: Uma plataforma distribuída de implantação conteinerizada.
StorageClass e Persistent Volumes: Recursos do Kubernetes são usados para gerenciar os requisitos de armazenamento do etcd e do Pulsar.
Prometheus e Grafana: Visualização para monitoramento do Milvus, que permite aos usuários acompanhar o desempenho e solucionar problemas.
Tamanho da imagem Docker ~500MB
O tamanho da imagem Docker para o contêiner standalone do Milvus é de cerca de 500MB. Você pode encontrar os lançamentos mais recentes na página do Milvus Docker Hub em https://hub.docker.com/r/milvusdb/milvus/tags.
Frequência de atualizações ~1x por mês (muitos lançamentos pequenos e 1 lançamento fixado por mês)
O Milvus tem um ciclo de lançamentos bastante frequente, com aproximadamente um lançamento principal por mês. Os lançamentos menores incluem melhorias e correções de bugs. Normalmente há um lançamento "fixado" por mês.
Não recomendamos usar a versão secundária mais recente em produção. O Zilliz cloud está sempre na versão estável mais recente, que normalmente está uma versão atrás da mais recente. Por exemplo, neste momento a versão mais recente é 2.4, mas a versão mais recente que recomendamos para produção é a 2.3.x.
SDKs
Oferecemos seis SDKs (kits de desenvolvimento de software) em: Python, Node, Go, C#, Java, Ruby
Para instalar o SDK Python, basta executar pip install pymilvus.
É importante garantir que as versões do SDK escolhido e do servidor Milvus correspondam em termos de números de versão maior e menor. Por exemplo, a versão 2.4.0 do Pymilvus é compatível com a versão 2.4.0-rc.1-dev de um servidor Milvus local. Da mesma forma, a versão 2.3.6 do Pymilvus é compatível com a versão 2.3.x do Zilliz.
Instalação
Instalar o Docker standalone do Milvus é simples. O principal é baixar o docker-compose.yml mais recente, seja pela página da documentação ou diretamente do GitHub. Mostro um comando wget abaixo. Você pode alterar o comando wget para qualquer versão que estiver usando. Você também precisará ter o Docker instalado.
Abaixo está um exemplo de código Python para instalar e conectar.
import pymilvus
from pymilvus import (connections, MilvusClient, utility)
print(f"Pymilvus: {pymilvus.__version__}")
###########################################################################################
# Download the latest .yaml file: https://milvus.io/docs/install_standalone-docker.md
# Or download manually from milvus github:
# !wget https://github.com/milvus-io/milvus/releases/download/v2.4.0-rc.1/milvus-standalone-docker-compose.yml -O docker-compose.yml
############################################################################################
# Start Docker
!docker compose up -d
# Verify which local port the Milvus server is listening on
!docker ps -a #19530/tcp
# Connect to the local server.
connection = connections.connect(
alias="default",
host='localhost', # or '0.0.0.0' or 'localhost'
port='19530'
)
# Print server version.
print(utility.get_server_version())
# Use no-schema Milvus client (flexible json key:value format).
mc = MilvusClient(connections=connection)
# Check if a collection already exists.
collection_name = "movies"
has = utility.has_collection(collection_name)
print(f"Collection '{collection_name}' exists in Milvus?")
print(f"Answer --> {has}!")
# Stop the local Milvus server.
!docker compose down
Resumo
Estas são as principais dependências e a frequência de atualização das versões para implantar o servidor Milvus no Docker standalone. Entender esses detalhes pode ajudar você a planejar e se preparar melhor para integrar o Milvus à pilha de tecnologia da sua organização.
Continue lendo

Zilliz Cloud Now Available in AWS Asia Pacific (Seoul)
Zilliz Cloud is now available in AWS Seoul — low-latency vector search, in-country data residency, and one-step migration for Korean AI teams. 31 regions across 5 clouds.

Zilliz Cloud Launches in AWS Australia, Expanding Global Reach to Australia and Neighboring Markets
We're thrilled to announce that Zilliz Cloud is now available in the AWS Sydney, Australia region (ap-southeast-2).

Similarity Metrics for Vector Search
Exploring five similarity metrics for vector search: L2 or Euclidean distance, cosine distance, inner product, and hamming distance.



