SKAPA SCHEMA

Gäller för:markerad ja Databricks SQL markerad ja 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

  • schema_name

    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 du MANAGED LOCATION.

    schema_directory är en STRING 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 konfigurationen spark.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.

  • 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 du LOCATION i stället.

    location_path måste vara en STRING 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 konfigurationen CREATE 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 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, INTEGEReller DECIMAL konstant uttryck. Värdet kan också vara ett anrop till SECRET SQL-funktionen. Till exempel value kan för bestå av secret('secrets.r.us', 'postgresPassword') i stället för password 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))