创建和管理模式(数据库)

本文展示了如何在Unity Catalog中创建和管理模式(数据库)。模式包含表、视图和函数。在里面创建模式目录

需求

  • 你必须有使用目录而且创建模式数据权限在模式的父目录上。metastore管理员或目录的所有者都可以授予您这些特权。如果您是一个metastore管理员,您可以将这些特权授予自己。

  • 您的Databricks帐户必须在优质及以上计划

  • 你必须有一个统一目录metastore链接到工作区在这里执行模式创建。

  • 计算资源用于运行笔记本或Databricks SQL创建目录的数据库必须使用符合Unity catalog的访问模式。

创建一个模式

要创建模式(数据库),可以使用数据资源管理器或SQL命令。

  1. 登录到与metastore链接的工作空间。

  2. 点击数据图标数据

  3. 数据窗格中,单击要在其中创建模式的目录。

  4. 在详细信息窗格中,单击创建数据库

  5. 为模式命名,并添加有助于用户理解模式用途的注释。

  6. (可选)指定数据存放的位置管理表将存储在模式中。

    只有在不希望将此模式中的托管表存储在为metastore配置的默认根存储位置或为编目指定的存储位置(如果有的话)时,才在此处指定位置。看到创建一个Unity Catalog metastore

    指定的路径必须在外部位置配置中定义,并且必须具有创建管理存储外部位置上的特权。您还可以使用该路径的子路径。看到管理外部位置和存储凭证

  7. 点击创建

  8. 为您的目录分配权限。看到Unity Catalog特权和安全对象

  9. 点击保存

  1. 在笔记本或Databricks SQL编辑器中运行以下SQL命令。括号中的项目是可选的。你可以用任何一种模式数据库.替换占位符值:

    • < catalog_name >:模式的父目录的名称。

    • < schema_name >:模式的名称。

    • < location_path >:可选的。如果希望将此模式中的托管表存储在不同于编目或metastore存储根位置的位置,则提供存储位置路径。类型中必须定义此路径外部位置配置,你必须有创建管理存储外部位置配置上的特权。您可以使用外部位置配置中定义的路径或子路径(换句话说,“s3: / /部门/金融”s3: / /部门/金融/产品的).要求Databricks运行时11.3及以上。

    • < >的评论:可选描述或其他注释。

    • < property_name >< property_value >...:可选的。要为模式设置的Spark SQL属性和值。

    参数说明请参见创建模式

    使用目录<目录>;CREATE {DATABASE | SCHEMA} [IF NOT EXISTS]  [MANAGED LOCATION ''] [COMMENT < COMMENT >] [WITH DBPROPERTIES ()];

    可以选择省略使用目录语句和替换< schema_name >< catalog_name >。< schema_name >

  2. 为模式分配特权。看到Unity Catalog特权和安全对象

  1. 在笔记本上运行以下SQL命令。括号中的项目是可选的。你可以用任何一种模式数据库.替换占位符值:

    • < catalog_name >:模式的父目录的名称。

    • < schema_name >:模式的名称。

    • < location_path >:可选的。如果希望将此模式中的托管表存储在不同于编目或metastore存储根位置的位置,则提供存储位置路径。类型中必须定义此路径外部位置配置,你必须有创建管理存储外部位置配置上的特权。您可以使用外部位置配置中定义的路径或子路径(换句话说,“s3: / /部门/金融”s3: / /部门/金融/产品的).要求Databricks运行时11.3及以上。

    • < >的评论:可选注释。

    • < property_name >< property_value >...:要为模式设置的Spark SQL属性和值。

    有关参数说明和更多选项,请参见创建模式

    火花sql"使用目录<目录>"火花sql"CREATE {DATABASE | SCHEMA} [IF NOT EXISTS]  ""[MANAGED LOCATION ''] ""[COMMENT < COMMENT >] "[WITH DBPROPERTIES ()]"

    可以选择省略使用目录语句和替换< schema_name >< catalog_name >。< schema_name >

  2. 为模式分配特权。看到Unity Catalog特权和安全对象

  1. 在笔记本上运行以下SQL命令。括号中的项目是可选的。你可以用任何一种模式数据库.替换占位符值:

    • < catalog_name >:模式的父目录的名称。

    • < schema_name >:模式的名称。

    • < location_path >:可选的。如果希望将此模式中的托管表存储在不同于编目或metastore存储根位置的位置,则提供存储位置路径。类型中必须定义此路径外部位置配置,你必须有创建管理存储外部位置配置上的特权。您可以使用外部位置配置中定义的路径或子路径(换句话说,“s3: / /部门/金融”s3: / /部门/金融/产品的).要求Databricks运行时11.3及以上。

    • < >的评论:可选注释。

    • < property_name >< property_value >...:要为模式设置的Spark SQL属性和值。

    参数说明请参见创建模式

    图书馆SparkRsql"使用目录<目录>"sql粘贴"CREATE {DATABASE | SCHEMA} [IF NOT EXISTS]  ""[MANAGED LOCATION ''] ""[COMMENT < COMMENT >] "[WITH DBPROPERTIES ()]"9月""))

    可以选择省略使用目录语句和替换< schema_name >< catalog_name >。< schema_name >

  2. 为模式分配特权。看到Unity Catalog特权和安全对象

  1. 在笔记本上运行以下SQL命令。括号中的项目是可选的。你可以用任何一种模式数据库.替换占位符值:

    • < catalog_name >:模式的父目录的名称。

    • < schema_name >:模式的名称。

    • < location_path >:可选的。如果希望将此模式中的托管表存储在不同于编目或metastore存储根位置的位置,则提供存储位置路径。类型中必须定义此路径外部位置配置,你必须有创建管理存储外部位置配置上的特权。您可以使用外部位置配置中定义的路径或子路径(换句话说,“s3: / /部门/金融”s3: / /部门/金融/产品的).要求Databricks运行时11.3及以上。

    • < >的评论:可选注释。

    • < property_name >< property_value >...:要为模式设置的Spark SQL属性和值。

    参数说明请参见创建模式

    火花sql"使用目录<目录>"火花sql"CREATE {DATABASE | SCHEMA} [IF NOT EXISTS]  "+"[MANAGED LOCATION ''] "+"[COMMENT < COMMENT >] "+[WITH DBPROPERTIES ()]"

    可以选择省略使用目录语句和替换< schema_name >< catalog_name >。< schema_name >

  2. 为模式分配特权。看到Unity Catalog特权和安全对象

方法创建模式Databricks Terraform提供商而且databricks_schema.可以使用检索模式id列表databricks_schemas

下一个步骤

现在你可以向模式中添加表

删除模式

要删除(或删除)模式(数据库),可以使用Data Explorer或SQL命令。

在删除模式之前,必须删除模式中的所有表。

  1. 登录到与metastore链接的工作空间。

  2. 点击数据图标数据

  3. 数据窗格的左侧,单击要删除的模式(数据库)。

  4. 在详细信息窗格中,单击右上角的三点菜单,选择删除

  5. 删除数据库对话框中,单击删除

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

参数说明请参见删除模式

如果你使用下降模式没有级联选项,则必须先删除模式中的所有表,然后才能删除它。

下降模式如果存在<schema_name>限制|级联

例如,删除名为inventory_schema以及它的表格:

下降模式inventory_schema级联

在笔记本中运行以下SQL命令。括号中的项目是可选的。替换占位符< schema_name >

参数说明请参见删除模式

如果你使用下降模式没有级联选项,则必须先删除模式中的所有表,然后才能删除它。

火花sql"DROP SCHEMA [IF EXISTS]  [RESTRICT | CASCADE]"

例如,删除名为inventory_schema以及它的表格:

火花sql“DROP SCHEMA inventory_schema CASCADE”

在笔记本中运行以下SQL命令。括号中的项目是可选的。替换占位符< schema_name >

参数说明请参见删除模式

如果你使用下降模式没有级联选项,则必须先删除模式中的所有表,然后才能删除它。

图书馆SparkRsql"DROP SCHEMA [IF EXISTS]  [RESTRICT | CASCADE]"

例如,删除名为inventory_schema以及它的表格:

图书馆SparkRsql“DROP SCHEMA inventory_schema CASCADE”

在笔记本中运行以下SQL命令。括号中的项目是可选的。替换占位符< schema_name >

参数说明请参见删除模式

如果你使用下降模式没有级联选项,则必须先删除模式中的所有表,然后才能删除它。

火花sql"(DROP SCHEMA [IF EXISTS]  [RESTRICT | CASCADE]"

例如,删除名为inventory_schema以及它的表格:

火花sql“DROP SCHEMA inventory_schema CASCADE”