创建和管理数据库实例

重要

此功能在以下区域中为公共预览版westuswestus2eastuseastus2centralussouthcentralusnortheuropewesteuropeaustraliaeastbrazilsouthcanadacentralcentralindiasoutheastasiauksouth

若要开始使用 OLTP 工作负载,请使用 Azure Databricks UI、API 调用、Python SDK 或 CLI 创建 Lakebase 数据库实例。

创建数据库实例

使用建议的默认值创建数据库实例。 需要仅提供实例名称(1-63 个字符、字母和连字符)。 作为创建者,你是具有该 databricks_superuser 角色的数据库所有者。

默认情况下,大多数工作区用户可以创建数据库实例。 如果遇到权限问题,请参阅 数据库实例权限

UI

  1. 在工作区边栏中单击 “计算 ”。
  2. 单击 Lakebase Postgres 选项卡。
  3. 单击“ 创建数据库实例”。
  4. 仅输入数据库实例名称(1-63 个字符、字母和连字符)。
  5. 单击 “创建”

Python SDK

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.database import DatabaseInstance

# Initialize the Workspace client
w = WorkspaceClient()

# Create a database instance
instance = w.database.create_database_instance(
    DatabaseInstance(
        name="my-database-instance",
        capacity="CU_1"
    )
)

print(f"Created database instance: {instance.name}")
print(f"Connection endpoint: {instance.read_write_dns}")

CLI

# Create a database instance
databricks database create-database-instance my-database-instance \
  --capacity CU_1

# Create with advanced options (using JSON for more complex parameters)
databricks database create-database-instance \
  --json '{
    "name": "my-database-instance",
    "capacity": "CU_2",
    "retention_window_in_days": 14
  }'

curl

创建数据库实例并指定保留窗口。

export PAT=<YOUR_PAT>
export INSTANCE_NAME="instance_name"

> curl -X POST --header "Authorization: Bearer ${DATABRICKS_TOKEN}" https://[your databricks workspace]/api/2.0/database/instances \
--data-binary @- << EOF
{
  "name": "$INSTANCE_NAME",
  "capacity": "CU_1",
  "retention_window_in_days": 14
}
EOF

高级设置

还可以通过编辑实例在创建期间或创建后配置这些功能:

功能 / 特点 Description
无服务器预算策略 为数据库实例选择预算策略,将无服务器使用情况和计费属性归因于特定预算。 还可以添加 自定义标记
实例大小 缩放工作负荷性能要求的计算资源(默认值为 2 CU)。
还原窗口 为时间点恢复设置保留时段(2-35 天,默认 7 天)。
高可用性 添加故障转移节点,确保生产工作负荷的业务连续性。
从父级创建 从现有数据库实例创建复制时写入克隆。

停止或启动实例

若要停止或启动数据库实例,必须对该实例具有 CAN MANAGE 权限。 若要停止或启动实例,请使用 Azure Databricks UI、API 调用、Python SDK 或 CLI。

UI

  1. 在工作区边栏中单击 “计算 ”。
  2. 单击 Lakebase Postgres 选项卡。
  3. 单击要停止或启动的数据库实例。
  4. 单击页面右上角的 “停止 ”或“ 开始 ”。

Python SDK

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.database import DatabaseInstance

# Initialize the Workspace client
w = WorkspaceClient()

# Stop a database instance
instance_name = "my-database-instance"
w.database.update_database_instance(
    name=instance_name,
    database_instance=DatabaseInstance(
        name=instance_name,
        stopped=True
    ),
    update_mask="*"
)
print(f"Stopped database instance: {instance_name}")

# Start a database instance
w.database.update_database_instance(
    name=instance_name,
    database_instance=DatabaseInstance(
        name=instance_name,
        stopped=False
    ),
    update_mask="*"
)
print(f"Started database instance: {instance_name}")

CLI

# Stop a database instance
databricks database update-database-instance my-database-instance \
  --json '{
    "stopped": true
  }'

# Start a database instance
databricks database update-database-instance my-database-instance \
  --json '{
    "stopped": false
  }'

curl

以下 API 调用停止数据库实例。

-X PATCH --header "Authorization: Bearer ${DATABRICKS_TOKEN}" https://$WORKSPACE/api/2.0/database/instances/$INSTANCE_NAME \
--data-binary @- << EOF
{
  "stopped": true
}
EOF

以下 API 调用启动数据库实例。

curl -X PATCH --header "Authorization: Bearer ${DATABRICKS_TOKEN}" https://$WORKSPACE/api/2.0/database/instances/$INSTANCE_NAME \
--data-binary @- << EOF
{
  "stopped": false
}
EOF

停止时的行为

数据库实例行为:

  • 保留数据。
  • 实例不能用于读取或写入操作。
  • 同步表不会处理读取操作。
  • Lakeflow Spark 声明性管道(LDP)不会检测已停止的实例,并可能会返回错误。
  • 在已停止实例上注册的目录不会在 UI 中显示架构详细信息。

功能限制:

  • 无法创建或删除DatabaseTablesDatabaseCatalogs
  • 可以删除或调整已停止实例的大小。 实例重启时,容量更改将生效。
  • 可以停止管道。

启动时的行为

  • 实例进入 STARTING 状态,并在准备就绪时变为 AVAILABLE 状态。

局限性

  • LDP 不会检测已停止的实例,并且可能会返回错误。
  • 在已停止实例上注册的目录不会在 UI 中显示架构详细信息。

删除实例

删除数据库实例时要谨慎,因为这样做会删除所有关联的数据。

您必须对数据库实例具有 CAN MANAGE 权限。 如果你不是表或目录的所有者,则必须自行重新分配所有权。 工作区管理员可以删除他们不拥有的数据库实例。

Databricks 建议在删除数据库实例之前删除所有关联的 Unity 目录、同步表和子实例。 否则,尝试查看目录或运行引用目录的 SQL 查询会导致错误。

UI

  1. 在工作区边栏中单击 “计算 ”。
  2. 单击 Lakebase Postgres 选项卡。
  3. 选择要删除的数据库实例。
  4. 单击“ 目录 ”选项卡可查看与数据库实例关联的数据库目录的完整列表。
  5. 对于每个数据库目录, 请删除所有同步表,包括位于托管目录中且未注册为数据库目录的表。
  6. 单击 “Kebab”菜单图标。>删除目录

Python SDK

from databricks.sdk import WorkspaceClient

# Initialize the Workspace client
w = WorkspaceClient()

# Delete a database instance
instance_name = "my-database-instance"
w.database.delete_database_instance(
    name=instance_name,
    purge=True  # Required to delete the instance
)
print(f"Deleted database instance: {instance_name}")

# Delete with force option (to delete child instances too)
w.database.delete_database_instance(
    name=instance_name,
    force=True,  # Delete child instances too
    purge=True
)

CLI

# Delete a database instance
databricks database delete-database-instance my-database-instance \
  --purge

# Delete with force option (to delete child instances too)
databricks database delete-database-instance my-database-instance \
  --json '{
    "force": true,
    "purge": true
  }'

curl

purge=true 必须指定以删除数据库实例。

curl -X DELETE --header "Authorization: Bearer ${DATABRICKS_TOKEN}" https://$WORKSPACE/api/2.0/database/instances/$INSTANCE_NAME?purge=true

更新数据库实例的无服务器预算策略

无服务器预算策略由应用于分配给策略的用户产生的任何无服务器计算活动的标记组成。 通过使用使用策略标记数据库实例,可以将计费和使用情况成本归咎于特定策略,从而更轻松地跟踪、管理和控制跨无服务器资源的支出。

使用 UI 更新数据库实例的预算策略:

  1. 在工作区边栏中单击 “计算 ”。
  2. 单击 Lakebase Postgres 选项卡。
  3. 选择要为其更新计费策略的数据库实例。
  4. 单击右上角的 “编辑 ”。
  5. 选择 无服务器预算策略
  6. 单击“ 保存”。

后续步骤

限制和要求

以下部分介绍托管数据库实例的限制和配置要求。 有关实例创建和使用的约束,请参阅 限制和注意事项

实例名称要求

  • 长度必须为 1 到 63 个字符。
  • 必须以字母开头。
  • 只能包含字母、数字和连字符。
  • 不能包含两个连续连字符。