什么是 Milvus : 连接
milvus向量数据库实战
Milvus 向量数据库能够帮助用户轻松应对海量非结构化数据(图片 / 视频 / 语音 / 文本)检索.
官网: https://milvus.io/docs/overview.md
milvus 是开源向量数据库,支持常见的向量索引。milvus 2.0 的易用性非常不错了。
以 milvus2.2.12 为例,新建 docker-compose.yml
文件:
version: '3.5'
services:
etcd:
container_name: milvus-etcd
image: quay.io/coreos/etcd:v3.5.5
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://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd
minio:
container_name: milvus-minio
image: minio/minio:RELEASE.2023-03-20T20-16-18Z
environment:
MINIO_ACCESS_KEY: minioadmin
MINIO_SECRET_KEY: minioadmin
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio:/minio_data
command: minio server /minio_data
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.2.12
command: ["milvus", "run", "standalone"]
environment:
ETCD_ENDPOINTS: etcd:2379
MINIO_ADDRESS: minio:9000
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus
ports:
- "19530:19530"
- "9091:9091"
depends_on:
- "etcd"
- "minio"
networks:
default:
name: milvus
运行: 进入到 docker-compose.yaml 所在的目录:
docker-compose up -d
{#more-12806}
milvus 提供了一个非常方便的客户端工具attu,用来可视化操作与管理数据库。通过 attu,我们可以创建数据集,创建索引,对数据进行添加、检索和删除。通过 attu ,可以很方便的学习 milvus 的相关功能。这是 attu 的主界面:
GitHub 官网: https://github.com/zilliztech/attu
直接运行:
docker run -p 8000:3000 -e MILVUS_URL=8.130.110.185:19530 zilliz/attu:v2.2.6
我们做了端口映射, 所以你方位 8000 就可以的。
不用输入 用户名,密码,直接 connect
可以看见,milvus 的基本结构:
- Collection: 数据集,类似于sql数据库的table
- Entity:实体,也就是数据集的元素,类似于sql数据表的一行
milvus 的使用流程是:
- 创建 Collection
- 为其中的向量建立索引
- 加载 Collection
- 插入数据
- 检索数据
LiteDB:纯 C# 实现的、简单易用的嵌入式数据库,快速开发的利器。当数据量不大的时候,直接使用 litedb,简单粗暴。
RocksDB:经过业界检验的 kv 数据库,也是很多新生代数据库的存储引擎。当数据量很大的时候,可以考虑使用 RocksDB。
milvus:开源的向量数据库,支持经典的向量索引,主要用于向量相似度检索。