简介
milvus是比较广泛应用的向量数据库.
大模型简介如下:
Milvus 是一款高性能的开源向量数据库,
专为大规模向量相似性搜索而设计,适用于处理海量高维向量数据。
以下是关于 Milvus 的详细介绍:
核心功能
高效向量搜索:
Milvus 支持多种近似最近邻(ANN)搜索算法,
如 HNSW、IVF_FLAT、RNSG 等,
能够快速在数十亿甚至万亿规模的向量数据集中进行搜索。
多维度数据支持:
除了向量数据,Milvus 还支持与向量相关联的标量数据
(如整数、字符串、JSON 对象)的存储和查询。
灵活的部署选项:
Milvus Lite:
轻量级版本,适合在本地环境(如笔记本电脑)
中进行学习和原型开发。
Milvus Standalone:
单机部署版本,适用于测试和小规模生产环境。
Milvus Distributed:
分布式版本,可在 Kubernetes 集群中运行,
支持水平扩展,适合处理大规模数据。
Zilliz Cloud:
完全托管的 Milvus 服务,提供无服务器和专用集群选项。
多租户支持:
通过数据库、集合、分区或分区键级别的隔离,Milvus
支持多租户,可灵活管理不同租户的访问权限。
冷热数据分离:
Milvus 支持将频繁访问的热数据存储在内存或 SSD 中,
而将较少访问的冷数据存储在成本较低的存储介质上,以降低成本。
稀疏向量支持:
除了密集向量,Milvus 还支持稀疏向量,
可用于全文搜索和混合搜索。
数据安全与细粒度访问控制:
提供角色基础的访问控制(RBAC),支持数据加密和审计日志。
架构
Milvus 采用分层、基于微服务的架构,分离存储和计算资源,
支持独立水平扩展。其架构包括:
接入层:
面向外部,接受用户和服务的输入并返回输出。
协调服务:
负责负载均衡、数据管理、查询执行等任务。
工作节点:
执行查询、更新数据和构建索引。
对象存储层:
包含元数据存储、记录实时数据变化的日志代理以及存储日志快照、
索引文件和中间计算结果的对象存储。
使用场景
Milvus 广泛应用于以下领域:
推荐系统:如电商和媒体流推荐。
多媒体相似性搜索:如图像、音频和视频的相似性搜索。
自然语言处理:如语义搜索。
药物研发:如分子结构的相似性搜索。
金融欺诈检测:如时间戳向量的相似性搜索。
Milvus 的高性能、可扩展性和丰富的功能使其成为处理大规模向量数据的理想选择
部署说明
这次是一个standalone版本的简单快速的部署
需要说明, 因为众所周知的原因
建议先科学的下载镜像, 执行导入后进行工作
这样能够很方便快捷.
自己验证了下 出去网络的时间
大概十五分钟能够理清楚加用户密码
用户密码很多资料不太对
他的文件其实在镜像内的:
/milvus/configs/milvus.yaml
容器内没有vim nano等但是有sed 可以简单处理.
yaml文件(官网上面有,直接用就可以,保存为 docker-compose.yaml 就可以了)
version: '3.5'
services:
etcd:
container_name: milvus-etcd
image: quay.io/coreos/etcd:v3.5.18
environment:
- ETCD_AUTO_COMPACTION_MODE=revision
- ETCD_AUTO_COMPACTION_RETENTION=1000
- ETCD_QUOTA_BACKEND_BYTES=4294967296
- ETCD_SNAPSHOT_COUNT=50000
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd:/etcd
command: etcd -advertise-client-urls=http://etcd:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir etcd
healthcheck:
test: ["CMD", "etcdctl", "endpoint", "health"]
interval: 30s
timeout: 20s
retries: 3
minio:
container_name: milvus-minio
image: minio/minio:RELEASE.2023-03-20T20-16-18Z
environment:
MINIO_ACCESS_KEY: minioadmin
MINIO_SECRET_KEY: minioadmin
ports:
- "9001:9001"
- "9000:9000"
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio:/minio_data
command: minio server minio_data --console-address ":9001"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
standalone:
container_name: milvus-standalone
image: milvusdb/milvus:v2.5.8
command: ["milvus", "run", "standalone"]
security_opt:
- seccomp:unconfined
environment:
ETCD_ENDPOINTS: etcd:2379
MINIO_ADDRESS: minio:9000
MILVUS_ROOT_PASSWORD: "YourPasword"
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"]
interval: 30s
start_period: 90s
timeout: 20s
retries: 3
ports:
- "19530:19530"
- "9091:9091"
depends_on:
- "etcd"
- "minio"
networks:
default:
name: milvus
建议可以使用能连外网的机器下载
导入镜像后进行处理:
docker-compose up -d
安装attu
docker run -p 8000:3000 -e MILVUS_URL=yourip:19530 -d --name attu zilliz/attu
进入镜像内修改开启密码验证
docker exec -it milvus-standalone bash
sed -i 's/authorizationEnabled: false/authorizationEnabled: true/' /milvus/configs/milvus.yaml
不需要重启就可以直接生效.
打开 attu_server:8000 就可以 登录了.
文章转载自济南小老虎,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




