SCHEMA MAKEN
Van toepassing op: Databricks SQL Databricks Runtime
Hiermee maakt u een schema (database) met de opgegeven naam. Als er al een schema met dezelfde naam bestaat, wordt er een uitzondering gegenereerd.
Syntaxis
CREATE SCHEMA [ IF NOT EXISTS ] schema_name
[ COMMENT schema_comment ]
[ LOCATION schema_directory | MANAGED LOCATION location_path ]
[ WITH DBPROPERTIES ( { property_name = property_value } [ , ... ] ) ]
Parameters
-
De naam van het schema dat moet worden gemaakt.
Schema's die in de
hive_metastore
catalogus zijn gemaakt, kunnen alleen alfanumerieke ASCII-tekens en onderstrepingstekens (INVALID_SCHEMA_OR_RELATION_NAME) bevatten. ALS DEZE NIET BESTAAT
Hiermee maakt u een schema met de opgegeven naam als het niet bestaat. Als er al een schema met dezelfde naam bestaat, gebeurt er niets.
PLAATS
schema_directory
LOCATION
wordt niet ondersteund in Unity Catalog. Als u een opslaglocatie wilt opgeven voor een schema in Unity Catalog, gebruikt uMANAGED LOCATION
.schema_directory
is eenSTRING
letterlijke. Het pad van het bestandssysteem waarin het opgegeven schema moet worden gemaakt. Als het opgegeven pad niet bestaat in het onderliggende bestandssysteem, maakt u een map met het pad. Als de locatie niet is opgegeven, wordt het schema gemaakt in de standaardmap van het magazijn, waarvan het pad is geconfigureerd door de statische configuratiespark.sql.warehouse.dir
.Waarschuwing
Als een schema (database) is geregistreerd in de Hive-metastore op werkruimteniveau, wordt dat schema verwijderd met behulp van de
CASCADE
optie, waardoor alle bestanden op die schemalocatie recursief worden verwijderd, ongeacht het tabeltype (beheerd of extern).Als het schema is geregistreerd bij een Unity Catalog-metastore, worden de bestanden voor beheerde tabellen in Unity Catalog recursief verwijderd. De bestanden voor externe tabellen worden echter niet verwijderd. U moet deze bestanden rechtstreeks beheren met behulp van de cloudopslagprovider.
Om onbedoeld gegevensverlies te voorkomen, moet u daarom nooit een schema registreren in een Hive-metastore op een locatie met bestaande gegevens. U moet ook geen nieuwe externe tabellen maken op een locatie die wordt beheerd door Hive-metastoreschema's of die beheerde tabellen van Unity Catalog bevatten.
COMMENTAAR
schema_comment
Een
STRING
letterlijke. De beschrijving voor het schema.BEHEERDE LOCATIE
location_path
MANAGED LOCATION
is optioneel en vereist Unity Catalog. Als u een opslaglocatie wilt opgeven voor een schema dat is geregistreerd in de Hive- of metastore van derden op werkruimteniveau, gebruiktLOCATION
u in plaats daarvan.location_path
moet eenSTRING
letterlijke naam zijn. Hiermee geeft u het pad naar een opslaghoofdlocatie voor het schema dat verschilt van de opslaghoofdlocatie van de catalogus of metastore. Dit pad moet worden gedefinieerd in een configuratie van een externe locatie en u moet deCREATE MANAGED STORAGE
bevoegdheid hebben voor de configuratie van de externe locatie. U kunt het pad gebruiken dat is gedefinieerd in de configuratie van de externe locatie of een subpad (met andere woorden,'abfss://container@storageaccount.dfs.core.windows.net/finance'
of'abfss://container@storageaccount.dfs.core.windows.net/finance/product'
). Ondersteund in Databricks SQL of in clusters met Databricks Runtime 11.3 LTS en hoger.Zie ook Werken met beheerde tabellen en Een Unity Catalog-metastore maken.
WITH DBPROPERTIES ( { property_name = property_value } [ , ... ] )
De eigenschappen voor het schema in sleutel-waardeparen.
OPTIES
Hiermee stelt u specifieke parameters voor het verbindingstype in die nodig zijn om de catalogus bij de verbinding te identificeren.
option
De optietoets. De sleutel kan bestaan uit een of meer id's , gescheiden door een punt of een
STRING
letterlijke aanduiding.Optietoetsen moeten uniek zijn en hoofdlettergevoelig zijn.
value
De waarde voor de optie. De waarde moet een
BOOLEAN
,STRING
ofINTEGER
DECIMAL
constante expressie zijn. De waarde kan ook een aanroep van deSECRET
SQL-functie zijn. De forpassword
kan bijvoorbeeldvalue
bestaansecret('secrets.r.us', 'postgresPassword')
uit het invoeren van het letterlijke wachtwoord.
Voorbeelden
-- 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))