SÉMA LÉTREHOZÁSA
A következőkre vonatkozik: Databricks SQL Databricks Runtime
Létrehoz egy sémát (adatbázist) a megadott névvel. Ha már létezik ugyanazzal a névvel rendelkező séma, a rendszer kivételt jelez.
Syntax
CREATE SCHEMA [ IF NOT EXISTS ] schema_name
[ COMMENT schema_comment ]
[ LOCATION schema_directory | MANAGED LOCATION location_path ]
[ WITH DBPROPERTIES ( { property_name = property_value } [ , ... ] ) ]
Paraméterek
-
A létrehozandó séma neve.
A katalógusban
hive_metastore
létrehozott sémák csak alfanumerikus ASCII-karaktereket és aláhúzásjeleket (INVALID_SCHEMA_OR_RELATION_NAME) tartalmazhatnak. HA NEM LÉTEZIK
Létrehoz egy sémát a megadott névvel, ha az nem létezik. Ha már létezik ilyen nevű séma, semmi sem fog történni.
HELY
schema_directory
LOCATION
a Unity Catalog nem támogatja. Ha egy séma tárolási helyét szeretné megadni a Unity Catalogban, használja a következőtMANAGED LOCATION
: .schema_directory
STRING
egy literál. Annak a fájlrendszernek az elérési útja, amelyben a megadott sémát létre kell hozni. Ha a megadott elérési út nem létezik a mögöttes fájlrendszerben, létrehoz egy könyvtárat az elérési úttal. Ha a hely nincs megadva, a séma az alapértelmezett raktárkönyvtárban jön létre, amelynek elérési útját a statikus konfigurációspark.sql.warehouse.dir
konfigurálja.Figyelmeztetés
Ha egy séma (adatbázis) regisztrálva van a munkaterületszintű Hive-metaadattárban, a séma beállítással történő elvetése esetén a
CASCADE
sémahelyen lévő összes fájl rekurzív módon törlődik, függetlenül a tábla típusától (felügyelt vagy külső).Ha a séma egy Unity Catalog-metaadattárban van regisztrálva, a Unity Catalog által felügyelt táblák fájljai rekurzív módon törlődnek. A külső táblák fájljai azonban nem törlődnek. Ezeket a fájlokat közvetlenül a felhőtárhely-szolgáltatóval kell kezelnie.
Ezért a véletlen adatvesztés elkerülése érdekében soha ne regisztráljon sémát hive-metaadattárban meglévő adatokkal rendelkező helyre. Ne hozzon létre új külső táblákat a Hive metaadattár-sémái által kezelt vagy a Unity Catalog által felügyelt táblákat tartalmazó helyen.
MEGJEGYZÉS
schema_comment
Egy
STRING
literál. A séma leírása.FELÜGYELT HELY
location_path
MANAGED LOCATION
nem kötelező, és unitykatalógusra van szükség. Ha meg szeretné adni a munkaterületszintű Hive-ben vagy külső féltől származó metaadattárban regisztrált sémák tárolási helyét, használjaLOCATION
helyette.location_path
literálnak kell lennieSTRING
. Megadja a séma tárolási gyökérhelyének elérési útját, amely eltér a katalógus vagy a metaadattár tárológyökerének helyétől. Ezt az elérési utat egy külső helykonfigurációban kell meghatározni, és rendelkeznie kell aCREATE MANAGED STORAGE
külső hely konfigurációjára vonatkozó jogosultsággal. Használhatja a külső hely konfigurációjában definiált elérési utat vagy egy segédútvonalat (más szóval,'abfss://container@storageaccount.dfs.core.windows.net/finance'
vagy'abfss://container@storageaccount.dfs.core.windows.net/finance/product'
). A Databricks SQL-ben vagy a Databricks Runtime 11.3 LTS-t és újabb verziót futtató fürtökön támogatott.Lásd még : Felügyelt táblák használata és Unity-katalógus metaadattára létrehozása.
A DBPROPERTIES ( { property_name = property_value } [ , ... ] )
A séma tulajdonságai kulcs-érték párokban.
BEÁLLÍTÁSOK
Beállítja a kapcsolattípus-specifikus paramétereket, amelyek szükségesek a katalógus azonosításához a kapcsolaton.
option
A beállításkulcs. A kulcs egy vagy több, ponttal vagy
STRING
literálokkal elválasztott azonosítóból állhat.A beállításkulcsnak egyedinek kell lennie, és megkülönbözteti a kis- és nagybetűket.
value
A beállítás értéke. Az értéknek egy
BOOLEAN
,STRING
,INTEGER
vagyDECIMAL
állandó kifejezésnek kell lennie. Az érték lehet az SQL-függvény hívásaSECRET
is. Előfordulhat például, hogy avalue
forpassword
szósecret('secrets.r.us', 'postgresPassword')
nem a literális jelszót adja meg.
Példák
-- 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))