51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Milvus 向量型数据库(云原生)Milvus demo

什么是 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:开源的向量数据库,支持经典的向量索引,主要用于向量相似度检索。

更多参考:使用 C# 进行AI工程开发-基础篇(五):文件数据库与向量数据库

赞(2)
未经允许不得转载:工具盒子 » Milvus 向量型数据库(云原生)Milvus demo