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
如果結構描述不存在,則建立具有指定名稱的結構描述。 如果具有相同名稱的結構描述已經存在,則不會發生任何動作。
位置
schema_directory
Unity 目錄中不支援
LOCATION
。 如果您要在 Unity 目錄中指定結構描述的儲存位置,請使用MANAGED LOCATION
。schema_directory
是STRING
常值。 要在其中建立指定結構描述之檔案系統的路徑。 如果基礎檔案系統中沒有指定的路徑,請建立具有路徑的目錄。 如果未指定位置,則會在預設倉儲目錄中建立結構描述,其路徑由靜態組態spark.sql.warehouse.dir
所設定。註解
schema_comment
STRING
常值。 結構描述的描述。管理的位置
location_path
MANAGED LOCATION
是選擇性的,並且需要 Unity 目錄。 如果您要為工作區層級 Hive 或第三方中繼存放區中註冊的結構描述指定儲存位置,請改用LOCATION
。location_path
必須是STRING
常值。 指定與目錄或中繼存放區儲存體根位置不同的結構描述之儲存體根位置的路徑。 此路徑必須在外部位置組態中定義,而且您必須具有外部位置組態的CREATE MANAGED STORAGE
權限。 您可以使用外部位置組態或子路徑中定義的路徑 (換句話說,'abfss://container@storageaccount.dfs.core.windows.net/finance'
或'abfss://container@storageaccount.dfs.core.windows.net/finance/product'
)。 在 Databricks SQL 或執行 Databricks Runtime 11.3 LTS 和更新版本之叢集上受支援。另請參閱使用受控資料表和建立 Unity 目錄中繼存放區。
WITH DBPROPERTIES ( { property_name = property_value } [, …] )
索引鍵/值組中結構描述的屬性。
OPTIONS
設定連線時識別目錄所需連線類型的特定參數。
option
Option 鍵。 該鍵可以包含一或多個以點分隔的識別碼,或是
STRING
常值。Option 鍵必須是唯一的,而且區分大小寫。
value
該選項的值。 該值必須是
BOOLEAN
、STRING
、INTEGER
或DECIMAL
常數運算式。 此值也可能是SECRET
SQL 函式的呼叫。 例如,password
的value
可能會包含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.windows.net/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))