跳到主要内容

Serving 集群中的 Database

Zilliz Cloud 在集群和 Collection 之间引入了一层 Database,可帮助您更高效地组织和管理数据,同时满足您的多租需求。

什么是 Database​

在 Zilliz Cloud 中,Database 是用于组织和管理数据的逻辑单元。为了增强数据安全并实现多租,您可以创建多个 Database,从逻辑上将不同应用和不同租户的数据隔离开来。例如,您可以针对两名不同用户的数据创建不同的 Database。

下图展示了 Zilliz Cloud 资源层级的架构。

QxbhwODEShDTXobgNoYc8tlmnqc

通过上图可以看到,仅 Dedicated 集群下有 Database 层。 Serverless 和 Free 集群下无 Database 层。

前提条件​

您需要具备组织管理员或项目管理员权限。

创建 Database​

仅 Dedicated 集群支持创建 Database。在您创建 Dedicated 集群的同时,Zilliz Cloud 会为您在集群下自动创建一个 Default Database。

每个 Dedicated 集群中最多可创建 1024 个 Database。您可以选择通过控制台或编程的方式创建 Database。

在控制台中创建 Database​

您可以按照如下图所示的方式创建 Database。

create-database-cn

您也可以将创建好的 Collection 从一个 Database 移动到另一个 Database 中。更多详情,请参考管理 Collection (控制台)。

使用 SDK 创建 Database​

您可以使用 RESTful API 或 SDK 创建 Database。

python
from pymilvus import MilvusClient

client = MilvusClient(
uri="https://{cluster-id}.{region}.vectordb.zillizcloud.com:19530",
token="YOUR_CLUSTER_TOKEN"
)

client.create_database(
db_name="my_database_1"
)

您还可以在创建 Database 时为其指定相应属性。如下示例中演示了如何在创建 Database 时设置副本数量。

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

查看 Database​

您可以使用 RESTful API 或 SDK 查看所有已创建的 Database 及其详情。

python
# List all existing databases
client.list_databases()

# Output
# ['default', 'my_database_1', 'my_database_2']

# Check database details
client.describe_database(
db_name="default"
)

# Output
# {"name": "default"}

管理 Database 属性​

每个 Database 都有若干属性供您设置。您可以选择在创建 Database 时设置这些属性或者修改已创建的 Database 的属性。

下表展示了当前支持设置的 Database 属性。

属性名称值类型属性描述
database.replica.numberinteger指定 Database 的副本数量。
database.max.collectionsinteger指定 Database 中可以创建的 Collection 的最大数量。
database.force.deny.writingboolean当前 Database 是否强制不可写。
database.force.deny.readingboolean当前 Database 是否强制不可读。
string

修改 Database 属性​

您可以参考如下示例修改指定 Database 的上述属性。如下示例演示了如何限制指定 Database 中可以创建的 Collection 数量。

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

重置 Database 属性​

您还可以参考如下示例重置 Database 某个属性的设置。如下示例演示了如何移除指定 Database 中可创建的 Collection 数量限制。

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

使用 Database​

您可以使用该操作在不断开连接的情况下切换当前使用的 Database。

Notes

RESTful API 不支持该操作。

python
client.use_database(
db_name="my_database_2"
)

删除 Database​

当某个 Database 不再需要时,您可以选择删除该 Database。需要注意的是:

  • 默认的 Database 无法删除。

  • 在删除 Database 前,请删除 Database 中的所有 Collection。

在控制台中删除 Database​

您可以参考下图中的步骤通过控制台删除 Database。

drop-database-cn

使用 SDK 删除 Database​

您也可以使用 RESTful API 或 SDK 来删除 Database。

python
client.drop_database(
db_name="my_database_2"
)