跳到主要内容

Database

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

什么是 Database

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

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

HBJew3E05hLhtObS4jZcUV0Nnig

通过上图可以看到,仅 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。

from pymilvus import MilvusClient

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

client.create_database(
db_name="my_database_1"
)

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

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

查看 Database

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

# 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.number

integer

指定 Database 的副本数量。

database.max.collections

integer

指定 Database 中可以创建的 Collection 的最大数量。

database.force.deny.writing

boolean

当前 Database 是否强制不可写。

database.force.deny.reading

boolean

当前 Database 是否强制不可读。

修改 Database 属性

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

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

重置 Database 属性

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

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

删除 Database

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

  • 默认的 Database 无法删除。

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

在控制台中删除 Database

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

drop-database-cn

使用 SDK 删除 Database

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

client.drop_database(
db_name="my_database_2"
)