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 特权

Syntax

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

Parameters

Examples

> 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;

局限性

对于 Delta 表, 都不会刷新表架构和属性键值映射(分别指< c2>列字段 和 属性字段)。 为此,请运行 REFRESH FOREIGN TABLE