使用 Embedded Milvus 即时安装和运行带有 Python 的 Milvus
封面
Milvus 是一个面向人工智能应用的开源向量数据库。它提供多种安装方法,包括从源代码构建,以及使用 Docker Compose/ Helm/APT/YUM/Ansible 安装 Milvus。用户可以根据自己的操作系统和偏好选择其中一种安装方法。不过,Milvus 社区中有许多使用 Python 工作的数据科学家和人工智能工程师,他们渴望获得比现有安装方法更简单的安装方法。
因此,我们在发布 Milvus 2.1 的同时,还发布了对 Python 用户友好的嵌入式 Milvus 版本,以增强社区中更多 Python 开发人员的能力。本文将介绍什么是 Embeddings Milvus,并提供如何安装和使用它的说明。
跳转到
嵌入式 Milvus 概述
嵌入式 Milvus 能让你用 Python 快速安装和使用 Milvus。它能快速调用 Milvus 实例,并允许你随时启动和停止 Milvus 服务。即使停止嵌入式 Milvus,所有数据和日志也会持续存在。
嵌入式 Milvus 本身没有任何内部依赖关系,也不需要预先安装和运行任何第三方依赖关系,如 etcd、MinIO、Pulsar 等。
你在嵌入式 Milvus 上所做的一切,以及为它编写的每一段代码,都可以安全地迁移到 Milvus 的其他模式--单机版、集群版、云版本等。这体现了 Embedded Milvus 最显著的特点之一--"一次编写,随处运行"。
何时使用嵌入式 Milvus?
Embedded Milvus 和PyMilvus的构造目的不同。在以下情况下,您可以考虑选择嵌入式 Milvus:
你想在不安装 Milvus 的情况下使用 Milvus。
想使用 Milvus 而不需要在机器中保留一个长期运行的 Milvus 进程。
想快速使用 Milvus,而无需启动单独的 Milvus 进程和其他必要组件,如 etcd、MinIO、Pulsar 等。
建议不要使用 Embeddings Milvus:
在生产环境中。(要将 Milvus 用于生产,请考虑使用 Milvus 集群或Zilliz Cloud(一种完全托管的 Milvus 服务))。
对性能要求较高。(相对而言,嵌入式 Milvus 可能无法提供最佳性能)。
Milvus 不同模式的比较
下表比较了 Milvus 的几种模式:Standalone、集群、嵌入式 Milvus 和完全托管的 Milvus 服务 Zilliz Cloud。
比较
如何安装嵌入式 Milvus?
在安装嵌入式 Milvus 之前,首先需要确保安装了 Python 3.6 或更高版本。Embedded Milvus 支持以下操作系统:
Ubuntu 18.04
Mac x86_64 >= 10.4
Mac M1 >= 11.0
如果满足要求,可以运行$ python3 -m pip install milvus
安装 Embeddings Milvus。你也可以在命令中添加版本,安装特定版本的嵌入式 Milvus。例如,如果要安装 2.1.0 版本,请运行$ python3 -m pip install milvus==2.1.0
。以后有新版本的嵌入式 Milvus 发布时,也可以运行$ python3 -m pip install --upgrade milvus
将嵌入式 Milvus 升级到最新版本。
如果你是 Milvus 的老用户,以前已经安装过 PyMilvus,现在想安装嵌入式 Milvus,可以运行$ python3 -m pip install --no-deps milvus
。
运行安装命令后,需要在/var/bin/e-milvus
下为嵌入式 Milvus 创建一个数据文件夹,方法是运行以下命令:
sudo mkdir -p /var/bin/e-milvus
sudo chmod -R 777 /var/bin/e-milvus
启动和停止嵌入式 Milvus
安装成功后,即可启动服务。
如果第一次运行嵌入式 Milvus,需要先导入 Milvus 并设置嵌入式 Milvus。
$ python3
Python 3.9.10 (main, Jan 15 2022, 11:40:53)
[Clang 13.0.0 (clang-1300.0.29.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import milvus
>>> milvus.before()
please do the following if you have not already done so:
1. install required dependencies: bash /var/bin/e-milvus/lib/install_deps.sh
2. export LD_PRELOAD=/SOME_PATH/embd-milvus.so
3. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib:/usr/local/lib:/var/bin/e-milvus/lib/
>>>
如果之前已经成功启动过嵌入式 Milvus,回来重新启动,则可以在导入 Milvus 后直接运行milvus.start()
。
$ python3
Python 3.9.10 (main, Jan 15 2022, 11:40:53)
[Clang 13.0.0 (clang-1300.0.29.3)] on darwinType "help", "copyright", "credits" or "license" for more information.
>>> import milvus
>>> milvus.start()
>>>
如果成功启动了嵌入式 Milvus 服务,你将看到如下输出。
---Milvus Proxy successfully initialized and ready to serve!---
服务启动后,你可以启动另一个终端窗口,运行"Hello Milvus"的示例代码来玩转嵌入式 Milvus!
# Download hello_milvus script
$ wget https://raw.githubusercontent.com/milvus-io/pymilvus/v2.1.0/examples/hello_milvus.py
# Run Hello Milvus
$ python3 hello_milvus.py
完成嵌入式 Milvus 的使用后,建议优雅地停止它,并运行以下命令或按 Ctrl-D 键清理环境变量。
>>> milvus.stop()
if you need to clean up the environment variables, run:
export LD_PRELOAD=
export LD_LIBRARY_PATH=
>>>
>>> exit()
下一步
随着 Milvus 2.1 的正式发布,我们准备了一系列介绍新功能的博客。请阅读本系列博客的更多内容:
- 嵌入式 Milvus 概述
- 如何安装嵌入式 Milvus?
- 启动和停止嵌入式 Milvus
- 下一步
On This Page
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word