メインコンテンツまでスキップ

サービングクラスター内のデータベース

この機能は Enterprise プラン以上でのみ利用できます。

サービングクラスター内のデータベースは、Dedicated サービングクラスターでホストされるコレクションの論理コンテナです。このページでは、サービングクラスターのエンドポイント経由でデータベースの作成、参照、設定、使用、削除を行う方法について説明します。

Note

このページでは、サービングクラスター内のデータベースについて説明します。オンデマンドコンピュートでクエリするプロジェクトレベルのデータベースについては、オンデマンド検索用データベース を参照してください。データベースモデルの比較については、データベースの概要 を参照してください。

事前準備​

以下の条件を満たしていることを確認してください。

  • Dedicated サービングクラスターを作成済みであること。

  • サービングクラスターのエンドポイントを取得していること(例: https://{cluster-id}.{region}.vectordb.zillizcloud.com:19530)。

  • 認証トークンを取得していること。これは、対象クラスターへのアクセス権を持つ API キー、または username:password 形式のクラスター認証情報です。

  • データベースを管理するための Organization Owner または Project Admin 権限を持っていること。

Dedicated クラスターを作成すると、デフォルトのデータベースが自動的に作成されます。Dedicated クラスターには最大 1,024 個のデータベースを作成できます。

データベースの作成​

Zilliz Cloud コンソールから、またはプログラムからデータベースを作成できます。

python
from pymilvus import MilvusClient

client = MilvusClient(
uri="YOUR_CLUSTER_ENDPOINT",
token="YOUR_CLUSTER_TOKEN",
)

client.create_database(
db_name="my_database_1",
)

データベースの作成時にプロパティを設定することもできます。次の例では、レプリカ数を設定します。

python
client.create_database(
db_name="my_database_2",
properties={
"database.replica.number": 3,
},
)

データベースの参照​

データベースを一覧表示するか、特定のデータベースの詳細を取得します。

python
databases = client.list_databases()
print(databases)

database = client.describe_database(
db_name="default",
)
print(database)

データベースプロパティの管理​

サービングクラスター内のデータベースでは、以下のデータベースプロパティを設定できます。

プロパティ説明
database.replica.numberデータベースのレプリカ数。
database.max.collectionsデータベース内で許可されるコレクションの最大数。
database.force.deny.writingデータベースの書き込み操作を拒否するかどうか。
database.force.deny.readingデータベースの読み取り操作を拒否するかどうか。

データベースプロパティの変更​

次の例では、データベース内に作成できるコレクション数を制限します。

python
client.alter_database_properties(
db_name="my_database_1",
properties={
"database.max.collections": 10,
},
)

データベースプロパティの削除​

次の例では、データベースからコレクション数の上限を削除します。

python
client.drop_database_properties(
db_name="my_database_1",
property_keys=[
"database.max.collections",
],
)

データベースの使用​

SDK を使用する場合は、再接続することなく、あるデータベースから別のデータベースに切り替えることができます。

Note

RESTful API では、持続接続上でのデータベースの切り替えはサポートされていません。RESTful API リクエストでは、操作が dbName をサポートしている場合、各リクエストボディで対象のデータベースを指定してください。

python
client.use_database(
db_name="my_database_2",
)

データベースの削除​

デフォルトのデータベースは削除できません。データベースを削除する前に、まずそのデータベース内のすべてのコレクションを削除してください。

python
client.drop_database(
db_name="my_database_2",
)

次のステップ​