创建和管理架构(数据库)

本文介绍如何在 Unity Catalog 中创建和管理架构(数据库)。 架构包含表、视图、卷、模型和函数。 在目录中创建架构。

要求

  • 你必须具有链接到在其中执行架构创建的工作区的 Unity Catalog 元存储。

  • 必须对架构的父目录具有 USE CATALOGCREATE SCHEMA 数据权限。 元存储管理员或目录所有者都可以授予这些权限。 如果你是元存储管理员,则可以向自己授予这些权限。

  • 用于运行笔记本以创建架构的群集必须使用与 Unity Catalog 兼容的访问模式。 请参阅访问模式

    SQL 仓库始终支持 Unity Catalog。

创建架构

若要创建架构,可使用目录资源管理器或 SQL 命令。

目录资源管理器

  1. 登录到链接到元存储的工作区。
  2. 单击 目录图标目录”。
  3. 在左侧的“目录”窗格中,单击要在其中创建架构的目录。
  4. 在“详细信息”窗格中,单击“创建架构”
  5. 为架构命名并添加任何有助于用户了解架构用途的注释。
  6. (可选)指定托管存储位置。 需要对目标外部位置具有 CREATE MANAGED STORAGE 权限。 请参阅在 Unity Catalog 中指定托管存储位置
  7. 单击“创建”。
  8. 为目录分配权限。 请参阅 Unity Catalog 特权和安全对象
  9. 单击“保存”。

SQL

  1. 在笔记本或 Databricks SQL 编辑器中运行以下 SQL 命令。 括号中的项是可选的。 可以使用 SCHEMADATABASE。 替换占位符值替:

    • <catalog-name>:架构的父目录的名称。
    • <schema-name>:架构的名称。
    • <location-path>:可选。 需要其他特权。 请参阅在 Unity Catalog 中指定托管存储位置
    • <comment>:可选说明或其他注释。
    • <property-key> = <property-value> [ , ... ]:可选。 要为架构设置的 Spark SQL 属性和值。

    有关参数说明,请参阅 CREATE SCHEMA

    USE CATALOG <catalog>;
    CREATE { DATABASE | SCHEMA } [ IF NOT EXISTS ] <schema-name>
        [ MANAGED LOCATION '<location-path>' ]
        [ COMMENT <comment> ]
        [ WITH DBPROPERTIES ( <property-key = property_value [ , ... ]> ) ];
    

    你可以选择省略 USE CATALOG 语句并将 <schema-name> 替换为 <catalog-name>.<schema-name>

  2. 为架构分配权限。 请参阅 Unity Catalog 特权和安全对象

还可使用 Databricks Terraform 提供程序databrics_schema 创建架构。 可以使用 databricks_schemas 检索架构 ID 列表

删除架构

要删除架构,可以使用目录资源管理器或 SQL 命令。 若要删除某个架构,你必须是其所有者。

目录资源管理器

必须先删除架构中的所有表,然后才能将其删除。

  1. 登录到链接到元存储的工作区。
  2. 单击 目录图标目录”。
  3. 在“目录”窗格的左侧,单击要删除的架构
  4. 在“详细信息”窗格中,单击右上角的烤肉串菜单 Kebab 菜单,然后选择“删除”。
  5. 在“删除架构”对话框中,单击“删除”

SQL

在笔记本或 Databricks SQL 编辑器中运行以下 SQL 命令。 括号中的项是可选的。 请替换 <schema-name> 占位符。

有关参数说明,请参阅 DROP SCHEMA

如果使用不带 CASCADE 选项的 DROP SCHEMA,则必须先删除架构中的所有表,然后才能将其删除。

DROP SCHEMA [ IF EXISTS ] <schema-name> [ RESTRICT | CASCADE ]

例如,删除名为 inventory_schema 的架构及其表:

DROP SCHEMA inventory_schema CASCADE

后续步骤

现在,可以将表或卷添加到架构。 请参阅在 Unity Catalog 中创建表创建和使用卷