适用于:
Databricks SQL
Databricks Runtime 10.4 LTS 及更高版本
仅 Unity Catalog
将目录的所有权转移到新 主体,更改目录的托管存储位置,将标记应用于目录,启用或禁用目录的 预测优化 ,或设置已删除托管表的恢复期。
语法
ALTER CATALOG [ catalog_name ]
{ DEFAULT COLLATION default_collation_name |
[ SET ] OWNER TO principal
SET TAGS ( { tag_name = tag_value } [, ...] ) |
UNSET TAGS ( tag_name [, ...] ) |
{ ENABLE | DISABLE | INHERIT } PREDICTIVE OPTIMIZATION |
OPTIONS (option value [, ...] ) |
SET MANAGED LOCATION location |
[ SET ] RETAIN DROPPED TO number { HOUR | HOURS | DAY | DAYS | WEEK | WEEKS } }
参数
-
要更改的目录的名称。 如果未提供名称,则默认值为
hive_metastore。 DEFAULT COLLATION default_collation_name
适用于:
Databricks SQL
Databricks Runtime 17.1 及更高版本更改目录中定义的新架构的默认排序规则。 目录中现有架构和对象的默认排序规则不会更改。
[ SET ] OWNER TO 主体
将目录的所有权转移给
principal。适用于:
Databricks SQL
Databricks Runtime 11.3 LTS 及更高版本允许使用
SET作为可选关键字。SET TAGS ( { tag_name = tag_value } [, ...] )
将标记应用于目录。 需要具有
USE CATALOG权限才能将标记应用于目录。 请参阅 USE CATALOG。适用于:
Databricks SQL
Databricks Runtime 13.3 LTS 及更高版本取消设置标记 ( tag_name [, …] )
从目录中移除标记。 需要具有
USE CATALOG权限才能将标记应用于目录。适用于:
Databricks SQL
Databricks Runtime 13.3 LTS 及更高版本tag_name
文本
STRING。tag_name在目录中必须唯一。tag_value
文本
STRING。{ 启用 | 禁用 | 继承 } 预测优化
适用于:
Databricks SQL
Databricks Runtime 12.2 LTS 及更高版本将目录更改为所需的预测优化设置。 默认情况下,创建目录时,行为是从帐户
INHERIT。 默认情况下,在目录中创建的新对象将从目录继承设置。如果更改了目录,则行为将级联到所有架构及其对象,这些内容会继承预测优化。 架构中不继承预测优化的对象或显式
ENABLE或DISABLE预测优化的对象不受目录设置的影响。若要为目录设置预测优化,用户必须对目录具有
CREATE权限。Unity 目录中只有非 OpenSharing 托管目录才有资格进行预测优化。
选项
设置特定于目录的参数。 将现有选项列表替换为新的选项列表。
使用
OPTIONS为使用 Hive 元存储联合创建的外部目录设置authorized paths。SET 托管位置位置
适用于:
Databricks SQL
Databricks Runtime 18.1 及更高
Unity 目录”更改目录的托管存储位置。 在目录中创建的新托管表和托管卷使用更新的位置。 Databricks 不会移动现有对象。
位置
新托管存储位置的云存储路径。 它必须包含在外部位置内。
[ SET ] 保留删除到数字 { HOUR |HOURS |DAY |DAYS |WEEK |WEEKS }
适用于:
的 Databricks Runtime 17.3 及更高
”,仅限 Unity 目录重要
此功能目前以公共预览版提供。
设置目录中已删除的托管表的恢复期,在此期间可以使用命令恢复 UNDROP TABLE 已删除的表。 默认值为 7 天。 该值必须为 0 小时(若要禁用恢复),或介于 7-30 天(含)之间。
将恢复期设置为 0 意味着已删除的表无法使用恢复,
UNDROP数据文件将在 48 小时内从云存储中删除。如果在子架构上还设置了恢复期,则架构级设置优先于该架构中的表。 此设置仅适用于配置恢复期后删除的表。 恢复期结束后,托管表的数据文件将在 48 小时内从云存储中删除。
允许使用
SET作为可选关键字。 需要对目录拥有MANAGE特权或所有权。 另请参阅 “删除托管表”。
示例
-- Creates a catalog named `some_cat`.
> CREATE CATALOG some_cat;
-- Transfer ownership of the catalog to another user
> ALTER CATALOG some_cat OWNER TO `[email protected]`;
-- Applies three tags to the catalog named `test`.
> ALTER CATALOG test SET TAGS ('tag1' = 'val1', 'tag2' = 'val2', 'tag3' = 'val3');
-- Removes three tags from the catalog named `test`.
> ALTER CATALOG test UNSET TAGS ('tag1', 'tag2', 'tag3');
-- Change the default collation of a catalog to case sensitive unicode
> ALTER CATALOG test DEFAULT COLLATION UNICODE_CS;
-- Adds an authorized path to a foreign catalog created using :re[HMS] federation.
> ALTER CATALOG my_federated_catalog OPTIONS (authorized_paths 'path/to/dir1, path/to/dir2');
–– Enables predictive optimization for catalog main
> ALTER CATALOG main ENABLE PREDICTIVE OPTIMIZATION;
> DESCRIBE CATALOG EXTENDED main;
Key value
------------------------ ---------
< other rows of describe extended >
Predictive Optimization ENABLE
-- Sets catalog main to inherit setting from parent object (metastore)
> ALTER CATALOG main INHERIT PREDICTIVE OPTIMIZATION;
> DESCRIBE CATALOG EXTENDED main;
Key value
------------------------ ----------------------------------------
< other rows of describe extended >
Predictive Optimization ENABLE (inherited from METASTORE metastore_name)
-- Change the managed storage location of a catalog
> ALTER CATALOG my_catalog SET MANAGED LOCATION 's3://my-bucket/managed/';
-- Set a 30-day recovery period for dropped managed tables in a catalog
> ALTER CATALOG my_catalog RETAIN DROPPED TO 30 DAYS;
-- Set the recovery period to 0 (tables are not recoverable after drop)
> ALTER CATALOG my_catalog SET RETAIN DROPPED TO 0 DAYS;