使用嵌入式 Milvus 以 Python 即時安裝和執行 Milvus
封面
Milvus 是一個適用於 AI 應用的開源向量資料庫。它提供了多種安裝方式,包括從原始碼建立,以及使用 Docker Compose/Helm/APT/YUM/Ansible 安裝 Milvus。使用者可根據自己的作業系統和喜好,選擇其中一種安裝方法。然而,Milvus 社群中有許多使用 Python 的資料科學家和 AI 工程師,他們渴望使用比目前可用的安裝方法更簡單的方法。
因此,我們隨 Milvus 2.1 發布了嵌入式 Milvus,一個 Python 使用者友善版本,以增強社群中更多 Python 開發人員的能力。本文將介紹什麼是嵌入式 Milvus,並提供如何安裝與使用的說明。
跳到
嵌入式 Milvus 概覽
嵌入式Milvus 可以讓你快速地安裝 Milvus 並使用 Python。它可以快速啟動 Milvus 實例,並允許您隨時啟動和停止 Milvus 服務。即使您停止嵌入式 Milvus,所有的資料和日誌都會持續存在。
嵌入式 Milvus 本身沒有任何內部相依性,也不需要預先安裝和執行任何第三方相依性,例如 etcd、MinIO、Pulsar 等。
您使用嵌入式 Milvus 所做的一切,以及為其編寫的每一段程式碼,都可以安全地移植到其他 Milvus 模式 - 單機版、群集版、雲端版等。這反映了嵌入式 Milvus 最顯著的特點之一 -「一次編寫,隨處運行」。
何時使用嵌入式 Milvus?
嵌入式 Milvus 和PyMilvus是為了不同的目的而構建的。在下列情況下,您可以考慮選擇嵌入式 Milvus:
你想在不安裝 Milvus 的情況下使用 Milvus。
你想使用 Milvus 而不需要在你的機器中保留一個長時間運行的 Milvus 進程。
你想快速使用 Milvus,而不需要啟動獨立的 Milvus 進程和其他必要的元件,例如 etcd、MinIO、Pulsar 等。
建議您不要使用嵌入式 Milvus:
在生產環境中。(若要在生產環境中使用 Milvus,請考慮使用 Milvus 集群或Zilliz 雲端,這是一個完全管理的 Milvus 服務)。
如果您對效能有很高的要求。(相對來說,嵌入式 Milvus 可能無法提供最佳效能)。
Milvus 不同模式的比較
下表比較了 Milvus 的幾種模式:獨立、群集、嵌入式 Milvus,以及完全管理的 Milvus 服務 Zilliz Cloud。
比較
如何安裝嵌入式 Milvus?
在安裝嵌入式 Milvus 之前,您需要先確認已經安裝 Python 3.6 或更新版本。嵌入式 Milvus 支援下列作業系統:
Ubuntu 18.04
Mac x86_64 >= 10.4
Mac M1 >= 11.0
如果符合要求,您可以執行$ python3 -m pip install milvus
來安裝嵌入式 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
下為 embedded 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