cxl
Published on 2025-06-27 / 13 Visits
0
0

Milvus数据库之“SQL”:Milvus-CLI

Milvus CLI 简介

Milvus 是一款高性能的向量数据库,广泛应用于人工智能、机器学习等领域的向量存储和检索场景。Milvus CLI(Command Line Interface)是 Milvus 提供的命令行工具,允许用户通过命令行与 Milvus 服务器进行交互,实现对数据库的管理和操作。使用 Milvus CLI,用户可以方便地进行集合(Collection)创建、数据插入、索引管理、查询等操作,适用于开发、测试和运维等不同场景。

Milvus CLI 的优势

  1. 易用性 :Milvus CLI 提供了简单易懂的命令行界面,用户无需记忆复杂的 API,通过直观的命令即可完成各种操作,降低了使用门槛。

  2. 高效性 :借助 Milvus 强大的向量检索能力,Milvus CLI 能快速处理大规模向量数据的查询和分析任务,满足实时性要求较高的应用场景。

  3. 灵活性 :支持丰富的数据操作功能,包括数据导入、查询、索引创建与管理等,可根据实际需求灵活定制数据处理流程。

  4. 兼容性 :与 Milvus 数据库紧密集成,能够充分利用 Milvus 的各种特性,如向量相似性搜索、分布式存储等,确保数据存储和查询的高效性和可靠性。

Milvus CLI 的安装

Python安装

使用python包管理工具安装,确保本地已安装 Python 3.8 或更高版本,然后运行以下命令:

  pip install milvus-cli

安装完成后,在命令行输入 milvus_cli ,出现 milvus_cli > 提示符即表示安装成功,可以开始使用。

Docker安装

使用docker直接运行milvus-cli容器,确保docker版本至少为19.03版本,然后运行以下命令:

  docker run -it zilliz/milvus_cli:latest

可见python与docker所安装的版本还是有些许差别。

源码安装

源码安装还是得依赖python环境,我这还是先使用conda新建了milvus-cli环境,步骤主要是三步:克隆源码、进入源码目录、编译安装。

  conda create -n milvus-cli python=3.12 -y
  git clone https://github.com/zilliztech/milvus_cli.git
  cd milvus_cli
  python -m pip install --editable .

Milvus命令

帮助

一个完善的命令行工具必须得有一个完善的帮助文档以及通用的帮助命令呀。help 查看所有命令用法,可进一步查看命令用法,如 connect --help

连接服务器

启动 Milvus CLI 后,首先需要连接到 Milvus 数据库,否则操作就会提示你 <ConnectionNotExistException: (code=1, message=should create connection first.)> 。若 Milvus 服务部署在本地且使用默认端口(19530),直接在 Milvus CLI 命令行中输入以下命令即可建立连接:

  connect [-uri (text)] [-t (text)] [-tls (0|1)] [-cert (text)]  # 可选项
  connect   # 默认连接本机数据库 -uri http://127.0.0.1:19530
  connect -uri http://127.0.0.1:19530   # 指定地址连接
  connect -uri http://127.0.0.1:19530 -t root:Milvus   # 连接时传入账号密码,使用:号分开

选项

全名

说明

-uri

连接地址

(可选)uri 名称。默认为 "http://127.0.0.1:19530"。

-t

令牌

(可选)Zilliz Cloud apikey 或username:password 。默认为 "无"。

-tls

TLS 模式

(可选)设置 TLS 模式:0(无加密)、1(单向加密)、2(暂不支持双向加密)。默认为 0

-cert

证书

(可选)客户端证书文件的路径。使用单向加密

断开服务器

  exit

查看Milvus CLI版本

  version

操作用户

  create user -u cxl -p chenxianlin  # 创建cxl用户,密码chenxianlin
  list users                         # 查看用户列表
  delete user -u cxl                 # 删除用户

操作角色

  create role -r cxl_role   # 创建cxl_role角色
  list roles                # 查看角色列表
  delete role -r cxl_role   # 删除角色
  grant role -r cxl_role -u cxl   # 授权cxl_role角色给cxl用户
  revoke role -r cxl_role -u cxl  # 撤销分配给cxl用户的cxl_role角色 

操作权限

  grant privilege           # 为角色分配权限,目前命令行是交互式分配,就是一步步根据指引分配
  list grants -r cxl_role -o * -t Collection  # 列出授权信息
  revoke privilege          # 交互式操作,撤消给用户分配的权限

操作数据库

  create database -db cxl  # 创建数据库
  use database -db cxl     # 使用数据库,进入的意思
  list databases           # 查看数据库列表
  delete database -db cxl  # 删除数据库

操作集合

  create collection            # 创建集合,目前命令行是交互式创建,就是一步步根据指引创建结构
  list collections             # 查看集合列表
  show collection -c product   # 查看集合详细信息
  load collection -c product   # 加载集合数据到内存中    -p 还可指定分区
  show loading_progress -c product   # 显示 Collections 的加载进度,必须得执行完上一步的加载后才执行,否则会报错 collection not loaded
  release collection -c product # 释放内存中的集合数据   -p 还可指定分区
  insert row                   # 插入一行数据,目前命令行是交互式创建,就是一步步根据指引创建数据
  insert file -c product 'examples/import_csv/vectors.csv'   # 导入本地文件数据到指定集合, -p 还可指定分区 -t 指定超时秒时间
  insert file -c product 'https://chenxianlin.com/vectors.csv'   # 导入远程文件数据到指定集合, -p 还可指定分区 -t 指定超时秒时间
  delete collection -c product  # 删除集合

操作分区

  create partition -c product -p fruit  # 给product集合创建fruit分区, -d 还可添加描述信息
  list partitions -c product            # 查看product集合上的所有分区
  show partition -c product -p fruit    # 显示分区的详细信息
  delete partition -c product -p fruit  # 删除product集合上的fruit分区

操作索引

  create index                  # 创建索引,交互式创建
  list indexes -c product       # 查看集合上的索引
  delete index -c product -in product_name    # 删除集合上的索引
  show index_progress -c product -in product_name  # 显示索引加载进度

查询操作

  query          # 交互式查询


Comment