CREATE SCHEMA
Platí pro: Databricks SQL
Databricks Runtime
Vytvoří schéma (databázi) se zadaným názvem. Pokud schéma se stejným názvem již existuje, vyvolá se výjimka.
Syntaxe
CREATE SCHEMA [ IF NOT EXISTS ] schema_name
[ COMMENT schema_comment |
{ LOCATION schema_directory | MANAGED LOCATION location_path } |
WITH DBPROPERTIES ( { property_name = property_value } [ , ... ] ) ] [...]
Parametry
-
Název schématu, které se má vytvořit.
Schémata vytvořená v katalogu
hive_metastore
mohou obsahovat pouze alfanumerické znaky a podtržítka ASCII (INVALID_SCHEMA_OR_RELATION_NAME). POKUD NEEXISTUJE
Vytvoří schéma s daným názvem, pokud neexistuje. Pokud schéma se stejným názvem již existuje, nic se nestane.
UMÍSTĚNÍ
schema_directory
LOCATION
není v katalogu Unity podporována. Pokud chcete zadat umístění úložiště pro schéma v Katalogu Unity, použijteMANAGED LOCATION
.schema_directory
STRING
je literál. Cesta systému souborů, ve kterém se má vytvořit zadané schéma. Pokud zadaná cesta v základním systému souborů neexistuje, vytvoří adresář s cestou. Pokud umístění není zadané, schéma se vytvoří ve výchozím adresáři skladu, jehož cesta je nakonfigurována statickou konfiguracíspark.sql.warehouse.dir
.Upozorňující
Pokud je ve vašem metastoru Hive na úrovni pracovního prostoru zaregistrované schéma (databáze), odstranění tohoto schématu pomocí možnosti
CASCADE
způsobí, že se všechny soubory v tomto umístění schématu odstraní rekurzivně bez ohledu na typ tabulky (spravovaný nebo externí).Pokud je schéma zaregistrované v metastoru katalogu Unity, odstraní se soubory katalogu Unity spravovaných tabulek rekurzivně. Soubory pro externí tabulky nejsou ale odstraněny. Tyto soubory musíte spravovat přímo pomocí poskytovatele cloudového úložiště.
Abyste se vyhnuli náhodné ztrátě dat, neměli byste nikdy registrovat schéma v metastoru Hive do umístění s existujícími daty. Neměli byste také vytvářet nové externí tabulky v umístěních spravovaných schématy metastore Hive nebo v místech obsahujících tabulky spravované Unity Catalog.
KOMENTÁŘ
schema_comment
Literál
STRING
. Popis schématu.SPRAVOVANÉ UMÍSTĚNÍ
location_path
MANAGED LOCATION
je nepovinný a vyžaduje katalog Unity. Pokud chcete zadat umístění úložiště pro schéma zaregistrované ve vašem metastore na úrovni pracovního prostoru nebo metastoru třetí strany, použijte místo tohoLOCATION
.location_path
musí býtSTRING
literál. Určuje cestu k kořenovému umístění úložiště pro schéma, které se liší od kořenového umístění úložiště katalogu nebo metastoru. Tato cesta musí být definována v konfiguraci externího umístění a musíte mítCREATE MANAGED STORAGE
oprávnění ke konfiguraci externího umístění. Můžete použít cestu definovanou v konfiguraci externího umístění nebo dílčí cestu (jinými slovy,'abfss://container@storageaccount.dfs.core.windows.net/finance'
nebo'abfss://container@storageaccount.dfs.core.windows.net/finance/product'
). Podporuje se v Databricks SQL nebo v clusterech s Modulem Databricks Runtime 11.3 LTS a novějším.Viz také Práce se spravovanými tabulkami a Vytvoření metastoru katalogu Unity.
WITH DBPROPERTIES ( { property_name = property_value } [ , ... ] )
Vlastnosti schématu ve dvojicích klíč-hodnota.
OPTIONS
Nastaví parametry specifické pro typ připojení potřebné k identifikaci katalogu v připojení.
option
Klávesa option. Klíč se může skládat z jednoho nebo více identifikátorů oddělených tečkou nebo literálem
STRING
.Klávesy možností musí být jedinečné a rozlišují malá a velká písmena.
value
Hodnota pro možnost. Hodnota musí být výraz
BOOLEAN
,STRING
,INTEGER
neboDECIMAL
konstanta. Hodnota může být také volánímSECRET
funkce SQL. For může napříkladvalue
password
obsahovatsecret('secrets.r.us', 'postgresPassword')
rozdíl od zadávání literálového hesla.
Příklady
-- 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))