向量数据库Milvus02-部署与基础操作
本文为原创文章,转载请注明出处。:访问 ATTU 可视化工具(
·
Milvus实战入门——部署与基础操作
目录
1. 环境准备
硬件与软件需求
| 项目 | 推荐配置 |
|---|---|
| CPU | 支持 AVX2 指令集(Intel/AMD) |
| 内存 | 至少 8GB(单机版);生产环境建议 32GB+ |
| 存储 | 至少 50GB 空闲空间(支持 SSD 或 NVMe) |
| Docker | Docker 19.03+ 和 Docker Compose 1.25.1+ |
| 网络 | 可访问公网(用于下载镜像和模型) |
生产环境注意事项
- 高可用性:集群部署需至少 3 节点(Data Node + Query Node + Index Node)。
- 存储分离:使用 Ceph、MinIO 等对象存储系统解耦计算与存储。
- 认证与安全:启用 TLS 加密和用户权限管理(
authorizationEnabled: true)。
2. 快速部署Milvus
单机版部署
步骤 1:下载 Docker Compose 配置文件
wget https://github.com/milvus-io/milvus/releases/download/v2.5.6/milvus-standalone-docker-compose.yml -O docker-compose.yml
步骤 2:修改配置(可选)
- 启用认证:在
milvus-standalone服务中添加environment配置:environment: - MILVUS_LICENSE=your_license_key - MILVUS_AUTHORIZATION_ENABLED=true - 调整存储路径:修改
volumes映射到本地磁盘(如/data/milvus)。
步骤 3:启动服务
docker compose up -d
docker compose ps
验证部署:访问 ATTU 可视化工具(http://localhost:8000),连接
localhost:19530。
集群版部署(Kubernetes)
使用 Helm Chart
helm repo add milvus https://milvus.io/charts
helm install milvus milvus/milvus --set mode=cluster --set etcd.replicaCount=3
3. Milvus基础操作
1. SDK 安装与连接
pip install pymilvus
from pymilvus import connections
connections.connect(host='localhost', port='19530', user='root', password='Milvus')
2. 集合创建与数据插入
定义字段与集合
from pymilvus import FieldSchema, CollectionSchema, DataType
fields = [
FieldSchema(name="id", dtype=DataType.INT64, is_primary=True),
FieldSchema(name="vector", dtype=DataType.FLOAT_VECTOR, dim=768)
]
schema = CollectionSchema(fields, "Example Collection")
collection = Collection("example_collection", schema)
插入数据
import random
docs = [
"Artificial intelligence was founded as an academic discipline in 1956.",
"Alan Turing was the first person to conduct substantial research in AI."
]
vectors = [[random.uniform(-1, 1) for _ in range(768)] for _ in docs]
data = [{"id": i, "vector": vectors[i], "text": docs[i]} for i in range(len(vectors))]
res = collection.insert(data)
print(res)
3. 索引构建与搜索
创建索引
index_params = {
"index_type": "IVF_PQ",
"params": {"nlist": 100, "m": 16},
"metric_type": "L2"
}
collection.create_index("vector", index_params)
向量搜索
search_params = {"nprobe": 10}
results = collection.search(
data=[vectors[0]],
anns_field="vector",
param=search_params,
limit=2,
output_fields=["text"]
)
print(results)
4. 常见问题与优化
部署失败排查
- 日志分析:
docker logs milvus-standalone - 资源限制:
- 内存不足:增加
--memory参数(如--memory=8g)。 - 端口冲突:检查
docker-compose.yml中的端口映射(如19530:19530)。
- 内存不足:增加
写入性能优化
- 批量插入:使用
insert批量提交数据(推荐每批 1000~5000 条)。 - 分区策略:按时间或类别划分数据(
partition_name参数)。 - 索引预构建:在插入数据后立即创建索引,避免查询时延迟。
5. 总结与预告
总结
本次实战涵盖了 Milvus 的部署与基础操作,包括:
- 单机版部署:通过 Docker Compose 快速启动。
- Python SDK 操作:从集合创建到数据插入与索引构建。
- 性能优化技巧:批量插入与分区策略的应用。
预告
在下一次博客中,我们将深入 Milvus 的高级功能与性能调优,包括:
- 多索引兼容:HNSW 与 IVF_PQ 的混合使用场景。
- 语义搜索:结合 NLP 模型实现文本相似性检索。
- 分布式扩展:水平扩展与 GPU 加速实践。
参考资料:
- Milvus 官方文档:https://milvus.io/docs/zh/
- CSDN 技术社区:https://blog.csdn.net/
- GitHub 仓库:https://github.com/milvus-io/milvus
版权声明:本文为原创文章,转载请注明出处。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)