Condividi tramite


CREATE SCHEMA

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

Crea un schema (database) con il nome specificato. Se è già presente un 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 } [ , ... ] ) ] [...]

Parameters

  • schema_name

    Nome del schema da creare.

    Gli schemi creati nella hive_metastorecatalog possono contenere solo caratteri ASCII alfanumerici e caratteri di sottolineatura (INVALID_SCHEMA_OR_RELATION_NAME).

  • SE NON ESISTE

    Crea un schema con il nome specificato, se non esiste. Se esiste già un schema con lo stesso nome, non succederà nulla.

  • POSIZIONE schema_directory

    LOCATION non è supportato in Unity Catalog. Se desideri specificare un percorso di archiviazione per un schema in Unity Catalog, usa MANAGED LOCATION.

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

    Avviso

    Se un schema (database) viene registrato nel metastore Hive a livello di area di lavoro, l'eliminazione di tale schema tramite l'opzione CASCADE causa l'eliminazione ricorsiva di tutti i file in tale percorso schema, indipendentemente dal tipo di table (gestito o esterno).

    Se il schema viene registrato nel metastore Unity Catalog, i file gestiti di Unity Catalogtables vengono eliminati in modo ricorsivo. Tuttavia, i file per tables esterni 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 un schema in un metastore Hive in una posizione con dati esistenti. Non si dovrebbe creare nuovi tables esterni in una posizione gestita dagli schemi del metastore Hive o che contenga tablesgestito da Unity Catalog.

  • COMMENTo schema_comment

    Un valore STRING letterale. Descrizione del schema.

  • POSIZIONE GESTITA location_path

    MANAGED LOCATION è facoltativo e richiede Unity Catalog. Se si desidera specificare un percorso di archiviazione per un schema registrato nel metastore Hive a livello dell'area di lavoro o di terze parti, utilizzare LOCATION invece.

    location_path deve essere un valore STRING letterale. Specifica il percorso di una radice di archiviazione per il schema diverso dalla radice di archiviazione del catalogo del metastore. Questo percorso deve essere definito in una configurazione della posizione esterna ed è necessario avere il privilegio CREATE MANAGED STORAGE per la configurazione della posizione esterna. È possibile usare il percorso definito nella configurazione della posizione esterna 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.

    Vedi anche Lavorare con tables gestiti e Creare un metastore Unity Catalog.

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

    Le proprietà del schema nelle coppie chiave-valore.

  • OPTIONS

    Imposta le parameters specifiche del tipo di connessione necessarie per identificare il catalog nella connessione.

    • option

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

      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 costante BOOLEAN, STRING, INTEGER o DECIMAL. Il valore può anche essere una chiamata alla funzione SQL SECRET. Ad esempio, l'oggetto value per 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))