管理默认目录

本文介绍默认的 Unity Catalog 目录、解释如何决定使用哪个目录作为默认目录以及演示如何更改默认目录。

Unity Catalog 中的默认目录是什么?

为为 Unity Catalog 启用的每个工作区配置默认目录。 默认目录支持在不指定目录的情况下执行数据操作。 如果在执行数据操作时省略顶级目录名称,则会采用默认目录。

工作区管理员可以使用管理员设置 UI 查看或切换默认目录。 还可以使用 Spark 配置为群集设置默认目录。

将按以下顺序为目录运行不指定目录的命令(例如 GRANT CREATE TABLE ON SCHEMA myschema TO mygroup):

  1. 是使用 USE CATALOG 语句还是 JDBC 设置为会话设置目录?
  2. 是否在群集上设置了 Spark 配置 spark.databricks.sql.initial.catalog.namespace
  3. 是否为群集设置了工作区默认目录?

启用 Unity Catalog 时的默认目录配置

最初为工作区配置的默认目录取决于为 Unity Catalog 启用工作区时的方式:

  • 对于自动为 Unity Catalog 启用的某些工作区,工作区目录被设置为默认目录。 请参阅 Unity Catalog 的自动启用
  • 对于所有其他工作区,hive_metastore 目录被设置为默认目录。

如果要从 Hive 元存储转换为现有工作区中的 Unity Catalog,通常有必要使用 hive_metastore 作为默认目录,以避免影响引用 Hive 元存储的现有代码。

更改默认目录

工作区管理员可以更改工作区的默认目录。 有权创建或编辑计算资源的任何人都可以为计算资源设置不同的默认目录。

警告

更改默认目录可能会中断依赖默认目录的现有数据操作。

为工作区配置一个不同的默认目录:

  1. 以工作区管理员身份登录到工作区。
  2. 单击工作区顶部栏中的用户名,从下拉列表中选择“管理员设置”。
  3. 单击“高级” 选项卡。
  4. 在“工作区的默认目录”行上,输入目录名称,然后单击“保存”。

重启 SQL 仓库和群集,使更改生效。 所有新的和重启的 SQL 仓库和群集都将使用此目录作为工作区的默认目录。

还可以通过在群集上设置以下 Spark 配置来替代特定群集的默认目录。 此方法不适用于 SQL 仓库:

spark.databricks.sql.initial.catalog.name

有关说明,请参阅 Spark 配置

查看当前默认目录

要获取工作区的当前默认目录,可在笔记本或 SQL 编辑器查询中使用 SQL 语句。 工作区管理员可使用管理员设置 UI 获取默认目录。

管理员设置

  1. 以工作区管理员身份登录到工作区。
  2. 单击工作区顶部栏中的用户名,从下拉列表中选择“管理员设置”。
  3. 单击“高级” 选项卡。
  4. 在“工作区的默认目录”行上查看目录名称。

SQL

在 SQL 仓库上或与 Unity Catalog 兼容的群集上运行的笔记本中或 SQL 编辑器查询中运行以下命令。 只要会话上未设置任何 USE CATALOG 语句或 JDBC 设置且没有为群集设置 spark.databricks.sql.initial.catalog.namespace 配置,就会返回工作区默认目录。

SELECT current_catalog();