Sdílet prostřednictvím


CREATE SCHEMA

Platí pro:zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano 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

  • schema_name

    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žijte MANAGED 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 toho LOCATION.

    location_path musí být STRING 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ít CREATE 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, INTEGERnebo DECIMAL konstanta. Hodnota může být také voláním SECRET funkce SQL. For může například valuepassword obsahovat secret('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))