适用于:
Databricks SQL
Databricks Runtime 13.3 LTS 及更高版本
仅 Unity Catalog
刷新 Unity Catalog 中维护的元数据,目标可以是:
- 外部目录及其安全对象,
- 外部架构及其安全对象,或
- 外部表。
若要运行 REFRESH FOREIGN CATALOG,至少需要以下项之一:
- 元存储管理员
- 对目录具有
USE CATALOG特权、对所有子架构具有USE SCHEMA特权,并对所有子表具有SELECT特权
若要运行 REFRESH FOREIGN SCHEMA,至少需要以下项之一:
- 元存储管理员
- 父目录的所有者
- 对架构具有
MANAGE和USE SCHEMA特权,对父目录具有USE CATALOG特权 - 对父目录具有
USE CATALOG特权,对架构具有USE SCHEMA特权,对所有子表具有SELECT特权
若要执行 REFRESH FOREIGN TABLE,至少需要以下项之一:
- 元存储管理员
- 父目录的所有者
- 父架构的所有者,并对父目录具有
USE CATALOG特权 - 对父架构具有
MANAGE和USE SCHEMA特权,对父目录具有USE CATALOG特权 - 分别对父目录和架构具有
USE CATALOG和USE 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
-
标识要刷新的外部目录。
-
标识要刷新的外部架构。
-
标识要刷新的外表。 名称不得包含时态规范或选项规范。
解析 DBFS 位置
如果外部表或架构已联合 Hive 元存储、存储在 DBFS 上,并且自上次访问该表以来已重新映射支持该表的 DBFS 装载点,则使用此选项更新解析的 DBFS 位置。
你必须是
OWNER,或对表或架构具有MANAGE特权。 有关 Hive 元存储联合的详细信息,请参阅 Hive 元存储联合:启用 Unity 目录来管理 Hive 元存储中注册的表。使用此选项执行
REFRESH FOREIGN SCHEMA时,Unity Catalog 会更新架构的解析 DBFS 位置,并将解析级联到架构中的所有表。
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 表,REFRESH FOREIGN TABLE。