CREATE SCHEMA

Si applica a:segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime

Crea uno schema (database) con il nome specificato. Se esiste già uno schema con lo stesso nome, viene generata un'eccezione.

Sintassi

CREATE SCHEMA [ IF NOT EXISTS ] schema_name
    [ COMMENT schema_comment ]
    [ LOCATION schema_directory | MANAGED LOCATION location_path ]
    [ WITH DBPROPERTIES ( { property_name = property_value } [ , ... ] ) ]

Parametri

  • schema_name

    Nome dello schema da creare.

    Gli schemi creati nel hive_metastore catalogo possono contenere solo caratteri ASCII alfanumerici e caratteri di sottolineatura (INVALID_SCHEMA_OR_RELATION_NAME).

  • SE NON ESISTE

    Crea uno schema con il nome specificato, se non esiste. Se esiste già uno schema con lo stesso nome, non verrà eseguita alcuna operazione.

  • POSIZIONE schema_directory

    LOCATION non è supportato nel catalogo unity. Se si vuole specificare un percorso di archiviazione per uno schema in Unity Catalog, usare MANAGED LOCATION.

    schema_directory è un STRING valore letterale. Percorso del file system in cui deve essere creato lo schema specificato. Se il percorso specificato non esiste nel file system sottostante, crea una directory con il percorso. Se il percorso non viene specificato, lo schema viene creato nella directory del warehouse predefinita, il cui percorso è configurato dalla configurazione spark.sql.warehouse.dirstatica .

    Avviso

    Se uno schema (database) viene registrato nel metastore Hive a livello di area di lavoro, l'eliminazione dello schema tramite l'opzione determina l'eliminazione CASCADE ricorsiva di tutti i file nel percorso dello schema, indipendentemente dal tipo di tabella (gestito o esterno).

    Se lo schema viene registrato in un metastore del catalogo Unity, i file per le tabelle gestite di Unity Catalog vengono eliminati in modo ricorsivo. Tuttavia, i file per le tabelle esterne non vengono eliminati. È necessario gestire questi file usando direttamente il provider di archiviazione cloud.

    Pertanto, per evitare perdite accidentali di dati, è consigliabile non registrare mai uno schema in un metastore Hive in una posizione con dati esistenti. Né è consigliabile creare nuove tabelle esterne in una posizione gestita dagli schemi del metastore Hive o contenere tabelle gestite dal catalogo Unity.

  • schema_comment

    Valore STRING letterale. Descrizione dello schema.

  • POSIZIONE GESTITA location_path

    MANAGED LOCATION è facoltativo e richiede il catalogo unity. Se si vuole specificare un percorso di archiviazione per uno schema registrato nel metastore Hive o di terze parti a livello di area di lavoro, usare LOCATION invece .

    location_path deve essere un valore STRING letterale. Specifica il percorso di una radice di archiviazione per lo schema diverso dal percorso radice di archiviazione del catalogo o del metastore. Questo percorso deve essere definito in una configurazione del percorso esterno ed è necessario avere il CREATE MANAGED STORAGE privilegio per la configurazione della posizione esterna. È possibile usare il percorso definito nella configurazione del percorso esterno o un sottopercorso (in altre parole, 'abfss://container@storageaccount.dfs.core.windows.net/finance' o 'abfss://container@storageaccount.dfs.core.windows.net/finance/product'). Supportato in Databricks SQL o nei cluster che eseguono Databricks Runtime 11.3 LTS e versioni successive.

    Vedere anche Tabelle gestite e Creare un metastore del catalogo Unity.

  • WITH DBPROPERTIES ( { property_name = property_value } [ , ... ] )

    Proprietà dello schema nelle coppie chiave-valore.

  • OPTIONS

    Imposta i parametri specifici del tipo di connessione necessari per identificare il catalogo nella connessione.

    • option

      Tasto di opzione. La chiave può essere costituita da uno o più identificatori separati da un punto o da un STRING valore letterale.

      Le chiavi di opzione devono essere univoche e fanno distinzione tra maiuscole e minuscole.

    • value

      Valore per l'opzione. Il valore deve essere un'espressione BOOLEANcostante , STRINGINTEGER, o DECIMAL . Il valore può anche essere una chiamata alla SECRET funzione SQL. Ad esempio, l'oggetto value for password può includere secret('secrets.r.us', 'postgresPassword') anziché immettere la password letterale.

Esempi

-- 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))