REFRESH FOREIGN(CATALOG、SCHEMA 和 TABLE)

适用于:勾选“是” Databricks SQL 勾选“是” Databricks Runtime 13.3 LTS 及更高版本 勾选“是” 仅 Unity Catalog

刷新 Unity Catalog 中维护的元数据,目标可以是:

  • 外部目录及其安全对象,
  • 外部架构及其安全对象,或
  • 外表。

若要运行 REFRESH FOREIGN CATALOG,至少需要以下项之一:

  • 元存储管理员
  • 对目录具有 USE CATALOG 特权、对所有子架构具有 USE SCHEMA 特权,并对所有子表具有 SELECT 特权

若要运行 REFRESH FOREIGN SCHEMA,至少需要以下项之一:

  • 是元存储管理员
  • 是父目录的所有者
  • 对架构具有 MANAGEUSE SCHEMA 特权,对父目录具有 USE CATALOG 特权
  • 对父目录具有 USE CATALOG 特权,对架构具有 USE SCHEMA 特权,对所有子表具有 SELECT 特权

若要执行 REFRESH FOREIGN TABLE,至少需要以下项之一:

  • 是元存储管理员
  • 是父目录的所有者
  • 是父架构的所有者,并对父目录具有 USE CATALOG 特权
  • 对父架构具有 MANAGEUSE SCHEMA 特权,对父目录具有 USE CATALOG 特权
  • 分别对父目录和架构具有 USE CATALOGUSE SCHEMA 特权,对表具有 SELECT 特权

若要执行可选 RESOLVE DBFS LOCATION 子句来更新 Hive 元存储联合表的已解析 DBFS 位置,至少需要满足以下条件之一:

  • 是表所有者。
  • 对表具有 MANAGE 特权,并且对架构具有 USE SCHEMA 特权,对父目录具有 USE CATALOG 特权

语法

REFRESH FOREIGN
 { CATALOG foreign_catalog_name |
   SCHEMA foreign_schema_name [ RESOLVE DBFS LOCATION ] |
   TABLE foreign_table_name [ RESOLVE DBFS LOCATION ] }

参数

  • foreign_catalog_name

    标识要刷新的外部目录。

  • 外部架构名称

    标识要刷新的外部架构。

  • foreign_table_name

    标识要刷新的外表。 名称不得包含时态规范或选项规范

  • 解析 DBFS 位置

    如果外部表或架构已联合 Hive 元存储、存储在 DBFS 上,并且自上次访问该表以来已重新映射支持该表的 DBFS 装载点,则使用此选项更新解析的 DBFS 位置。

    你必须是 OWNER,或对表或架构具有 MANAGE 特权。 有关 Hive 元存储联合的详细信息,请参阅 Hive 元存储联合:启用 Unity 目录来管理 Hive 元存储中注册的表

    使用此选项执行 REFRESH FOREIGN SCHEMA 时,Unity Catalog 会更新架构的解析 DBFS 位置,并将解析级联到架构中的所有表。

示例

> REFRESH FOREIGN CATALOG some_catalog;

> REFRESH FOREIGN SCHEMA some_catalog.some_schema;

> REFRESH FOREIGN TABLE some_catalog.some_schema.some_table;

—- Resolves the DBFS location of the foreign table and updates it in Unity Catalog.
> REFRESH FOREIGN TABLE hms_fed_catalog.schema.table RESOLVE DBFS LOCATION;

-- Resolves the DBFS location of the foreign schema and all eligible foreign tables within the schema.
> REFRESH FOREIGN SCHEMA hms_fed_catalog.schema RESOLVE DBFS LOCATION;