CREATE CATALOG

适用于:check marked yes Databricks SQL check marked yes Databricks Runtime 10.3 及更高版本 check marked yes 仅限 Unity Catalog

创建具有指定名称的目录。 如果已存在同名目录,会引发异常。

创建 FOREIGN 目录时,系统将使用身份验证用户可见的所有架构及其表填充该目录。

语法

CREATE CATALOG [ IF NOT EXISTS ] catalog_name
    [ USING SHARE provider_name . share_name ]
    [ MANAGED LOCATION 'location_path' ]
    [ COMMENT comment ]

CREATE FOREIGN CATALOG [ IF NOT EXISTS ] catalog_name
    USING CONNECTION connection_name
    [ COMMENT comment ]
    OPTIONS ( { option_name = option_value } [ , ... ] )

参数

  • FOREIGN

    适用于:check marked yes Databricks SQL check marked yes Databricks Runtime 13.1 及更高版本

    指定从 CONNECTION 导入目录。

  • IF NOT EXISTS

    创建具有给定名称的目录(如果不存在)。 如果已存在同名目录,则不会执行任何操作。

  • catalog_name

    要创建的目录的名称。

  • USING SHARE provider_name.share_name

    (可选)指定该目录基于 Delta Sharing 共享

  • MANAGED LOCATION 'location_path'

    (可选)指定目录的托管存储位置路径,该位置不同于元存储的根存储位置。 必须在外部位置配置中定义此路径,并且必须对外部位置配置具有 CREATE MANAGED STORAGE 权限。 可以使用在该外部位置配置中定义的路径,也可以使用子路径(即 'abfss://container@storageaccount.dfs.core.chinacloudapi.cn/finance''abfss://container@storageaccount.dfs.core.chinacloudapi.cn/finance/product')。 在 Databricks SQL 中或运行 Databricks Runtime 11.3 LTS 及更高版本的群集上受支持。

    另请参阅托管表创建 Unity Catalog 元存储

  • USING CONNECTION connection_name

    指定源目录所在的连接。

  • comment

    可选的 STRING 文本。 目录的描述。

  • OPTIONS

    设置在连接处标识目录所需的特定于连接类型的参数。

    • option

      选项键。 该键可以由一个或多个以点分隔的标识符STRING文本组成。

      选项键必须唯一,且区分大小写。

    • value

      选项的值。 该值必须是 BOOLEANSTRINGINTEGERDECIMAL 常量表达式。 该值也可以是对 SECRET SQL 函数的调用。 例如,passwordvalue 可以包含 secret('secrets.r.us', 'postgresPassword') 而不是输入文本密码。

示例

-- Create catalog `customer_cat`. This throws exception if catalog with name customer_cat
-- already exists.
> CREATE CATALOG customer_cat;

-- Create catalog `customer_cat` only if catalog with same name doesn't exist.
> CREATE CATALOG IF NOT EXISTS customer_cat;

-- Create catalog `customer_cat` only if catalog with same name doesn't exist, with a comment.
> CREATE CATALOG IF NOT EXISTS customer_cat COMMENT 'This is customer catalog';

-- Create a catalog from a Delta Sharing share.
> CREATE CATALOG customer_cat USING SHARE cdc.vaccinedata;

-- Create a catalog with a different managed storage location than the metastore's.
> CREATE CATALOG customer_cat MANAGED LOCATION 'abfss://container@storageaccount.dfs.core.chinacloudapi.cn/finance';

-- Create a foreign catalog linked to postgresdb at postgresql_connection
> CREATE FOREIGN CATALOG postgresql_catalog
     USING CONNECTION postgresql_connection
     OPTIONS (database 'postgresdb');