SKAPA SCHEMA
Gäller för: Databricks SQL Databricks Runtime
Skapar ett schema (databas) med det angivna namnet. Om det redan finns ett schema med samma namn genereras ett undantag.
Syntax
CREATE SCHEMA [ IF NOT EXISTS ] schema_name
[ COMMENT schema_comment ]
[ LOCATION schema_directory | MANAGED LOCATION location_path ]
[ WITH DBPROPERTIES ( { property_name = property_value } [ , ... ] ) ]
Parametrar
-
Namnet på schemat som ska skapas.
Scheman som skapas i
hive_metastore
katalogen kan bara innehålla alfanumeriska ASCII-tecken och understreck (INVALID_SCHEMA_OR_RELATION_NAME). OM INTE FINNS
Skapar ett schema med det angivna namnet om det inte finns. Om det redan finns ett schema med samma namn händer ingenting.
PLATS
schema_directory
LOCATION
stöds inte i Unity Catalog. Om du vill ange en lagringsplats för ett schema i Unity Catalog använder duMANAGED LOCATION
.schema_directory
är enSTRING
literal. Sökvägen till filsystemet där det angivna schemat ska skapas. Om den angivna sökvägen inte finns i det underliggande filsystemet skapar du en katalog med sökvägen. Om platsen inte har angetts skapas schemat i standardlagerkatalogen, vars sökväg har konfigurerats av den statiska konfigurationenspark.sql.warehouse.dir
.Varning
Om ett schema (databas) har registrerats i hive-metaarkivet på arbetsytan, tar du bort schemat med hjälp av
CASCADE
alternativet så att alla filer på den schemaplatsen tas bort rekursivt, oavsett tabelltyp (hanterad eller extern).Om schemat är registrerat i ett Unity Catalog-metaarkiv tas filerna för hanterade Unity Catalog-tabeller bort rekursivt. Filerna för externa tabeller tas dock inte bort. Du måste hantera dessa filer direkt med hjälp av molnlagringsprovidern.
För att undvika oavsiktlig dataförlust bör du därför aldrig registrera ett schema i ett Hive-metaarkiv till en plats med befintliga data. Du bör inte heller skapa nya externa tabeller på en plats som hanteras av Hive-metaarkivscheman eller som innehåller hanterade Unity Catalog-tabeller.
KOMMENTAR
schema_comment
En
STRING
literal. Beskrivningen för schemat.HANTERAD PLATS
location_path
MANAGED LOCATION
är valfritt och kräver Unity Catalog. Om du vill ange en lagringsplats för ett schema som registrerats i ditt Hive- eller tredjepartsmetaarkiv på arbetsytan använder duLOCATION
i stället.location_path
måste vara enSTRING
literal. Anger sökvägen till en lagringsrotplats för schemat som skiljer sig från katalogens eller metaarkivets lagringsrotplats. Den här sökvägen måste definieras i en extern platskonfiguration och du måste ha behörighet för konfigurationenCREATE MANAGED STORAGE
av den externa platsen. Du kan använda sökvägen som definieras i konfigurationen av den externa platsen eller en undersökväg (med andra ord eller'abfss://container@storageaccount.dfs.core.windows.net/finance'
'abfss://container@storageaccount.dfs.core.windows.net/finance/product'
). Stöds i Databricks SQL eller i kluster som kör Databricks Runtime 11.3 LTS och senare.Se även Arbeta med hanterade tabeller och Skapa ett Unity Catalog-metaarkiv.
MED DBPROPERTIES ( { property_name = property_value } [ , ... ] )
Egenskaperna för schemat i nyckel/värde-par.
ALTERNATIV
Anger specifika parametrar av anslutningstyp som behövs för att identifiera katalogen vid anslutningen.
option
Alternativnyckeln. Nyckeln kan bestå av en eller flera identifierare avgränsade med en punkt eller en
STRING
literal.Alternativnycklar måste vara unika och skiftlägeskänsliga.
value
Värdet för alternativet. Värdet måste vara ett
BOOLEAN
,STRING
,INTEGER
ellerDECIMAL
konstant uttryck. Värdet kan också vara ett anrop tillSECRET
SQL-funktionen. Till exempelvalue
kan för bestå avsecret('secrets.r.us', 'postgresPassword')
i stället förpassword
att ange literallösenordet.
Exempel
-- 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))