CREATE SCHEMA
适用于: Databricks SQL Databricks Runtime
创建具有指定名称的架构(数据库)。 如果已存在同名架构,则会引发异常。
语法
CREATE SCHEMA [ IF NOT EXISTS ] schema_name
[ COMMENT schema_comment ]
[ LOCATION schema_directory | MANAGED LOCATION location_path ]
[ WITH DBPROPERTIES ( { property_name = property_value } [ , ... ] ) ]
参数
-
要创建的架构的名称。
hive_metastore
目录中创建的架构只能包含字母数字 ASCII 字符和下划线 (INVALID_SCHEMA_OR_RELATION_NAME)。 IF NOT EXISTS
创建具有给定名称的架构(如果不存在)。 如果已存在同名架构,则不会执行任何操作。
LOCATION
schema_directory
Unity Catalog 不支持
LOCATION
。 如果要在 Unity Catalog 中指定架构的存储位置,请使用MANAGED LOCATION
。schema_directory
是STRING
文本。 要在其中创建指定架构的文件系统的路径。 如果基础文件系统中不存在指定的路径,则使用该路径创建一个目录。 如果未指定位置,则在默认仓库目录中创建架构,其路径由静态配置spark.sql.warehouse.dir
进行配置。schema_comment
STRING
文本。 架构说明。MANAGED LOCATION
location_path
MANAGED LOCATION
是可选的,需要 Unity Catalog。 如果要为在工作区级别 Hive 或第三方元存储中注册的架构指定存储位置,请改用LOCATION
。location_path
必须是STRING
文本。 指定架构的存储根位置路径,该位置不同于目录的或元存储的存储根位置。 必须在外部位置配置中定义此路径,并且必须对外部位置配置具有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 及更高版本的群集上受支持。WITH DBPROPERTIES ( { property_name = property_value } [ , … ] )
以键值对形式表示的架构属性。
OPTIONS
设置在连接处标识目录所需的特定于连接类型的参数。
option
选项键。 该键可以由一个或多个以点分隔的标识符或
STRING
文本组成。选项键必须唯一且区分大小写。
value
选项的值。 该值必须是
BOOLEAN
、STRING
、INTEGER
或DECIMAL
常量表达式。 该值也可以是对SECRET
SQL 函数的调用。 例如,value
的password
可以包含secret('secrets.r.us', 'postgresPassword')
而不是输入文本密码。
示例
-- Create schema `customer_sc`. This throws exception if schema with name customer_sc
-- already exists.
> CREATE SCHEMA customer_sc;
-- Create schema `customer_sc` only if schema with same name doesn't exist.
> CREATE SCHEMA IF NOT EXISTS customer_sc;
-- Create schema `customer_sc` only if schema with same name doesn't exist with
-- `Comments`,`Specific Location` and `Database properties`. LOCATION is not supported in Unity Catalog.
> CREATE SCHEMA IF NOT EXISTS customer_sc COMMENT 'This is customer schema' LOCATION '/samplepath'
WITH DBPROPERTIES (ID=001, Name='John');
-- Create schema with a different managed storage location than the metastore's. MANAGED LOCATION is supported only in Unity Catalog.
> CREATE SCHEMA customer_sc MANAGED LOCATION 'abfss://container@storageaccount.dfs.core.chinacloudapi.cn/finance';
-- Verify that properties are set.
> DESCRIBE SCHEMA EXTENDED customer_sc;
database_description_item database_description_value
------------------------- --------------------------
Database Name customer_sc
Description This is customer schema
Location hdfs://hacluster/samplepath
Properties ((ID,001), (Name,John))