watsonx.dataにMilvusを追加して、接続テストを行っていきます。
- テスト環境
- Milvus: 2.4.0
- python:3.11.9
- pymilvus:2.5.0
1. watsonx.dataにMilvusを追加
ナビゲーションメニューから、インフラストラクチャーマネージャーを選択し、コンポーネントの追加をクリックします。
- 表示名に適当な名前を付けます
- サイズを選びます
- ストレージ・バケットの追加で接続方法を選びます。スターター・サイズでは管理バケットの中にデータも保持することができます。小・中・大のオプションではあらかじめICOSなどにデータを保管するバケットを用意する必要があります
作成をクリックするとプロビジョンが始まります。
詳細な情報が見れます。
さらに「接続の詳細を見る」をクリックすると、
2. pymilvusで接続
pymilvusで接続してみます。
2.1. APIキーの作成
IBM Cloudのwatsonx.dataの操作を行うにはAPIキーが必要です。
IAMのAPIキーのメニューから「作成」でAPIキーを作ります。
https://cloud.ibm.com/iam/apikeys
以下のコマンドなどでpymilvusを導入します。
py -3.11 -m pip install pymilvus
2.2. Milvusへの接続情報をセット
Milvusへの接続情報をセットします。
マニュアルにしたがって、APIキーを使って接続します。
wxdata_host:GRPCホスト
wxdata_port=GRPCポート
wxdata_user='ibmlhapikey' ←固定値
wxdata_apikey=2.1で用意したAPIキー ←パスワードとして使用します。
wxdata_host='xxxxxxxxxxxxxxxxxxxxxxx.lakehouse.appdomain.cloud'
wxdata_port='30656'
wxdata_user='ibmlhapikey'
wxdata_apikey='xxxxxxxxxxxxxxxxxxxxxxx'
取得元との関係は以下です。
2.3. connectionsを使った接続
Milvusへの接続はいくつかありますが、まずはconnectionsを使って接続してみます。
connect
で接続します。hostとportの指定で接続していますが、uriの指定でも接続できます。passwordにはAPIキーを使います。db_nameを指定しないとdefaultデータベースに接続されます。
utility.get_server_type())
でサーバータイプを取得して、disconnect
しています。
from pymilvus import connections, utility
# Establish a connection
connections.connect(
host=wxdata_host,
port=wxdata_port,
secure=True,
user=wxdata_user,
password=wxdata_apikey
)
# Check the server type
print(utility.get_server_type())
connections.disconnect(alias="default")
utility.get_server_type())
の結果は
milvus
が返ります。
2.4. MilvusClientを使った接続
次はMilvusClientを使って接続してみます。
uriの指定で接続できます。connections
で接続します。hostとportの指定では接続できません。passwordにはやはりAPIキーを使います。db_nameを指定しないとdefaultデータベースに接続されます。
client.list_databases()
でデータベースをリストして、close
しています。
from pymilvus import MilvusClient
#milvus_client = MilvusClient(my_connection_args)
client = MilvusClient(
uri="https://"+wxdata_host+":"+wxdata_port,
user=wxdata_user,
password=wxdata_apikey
)
print(client.list_databases())
client.close()
client.list_databases()
の結果は
['default']
が返りました。
サンプルコード
参考
Milvus サービスの追加 | IBM Cloud 資料
watsonx.data: IBM Cloud SaaS版を無料のLite Planで作成 #ibmcloud - Qiita
watsonx.data: Milvus接続情報の取得 #watsonx.data - Qiita
Connecting to Milvus service | IBM Cloud 資料
connectionsを使った接続
MilvusClientをつかった接続