Compartir a través de


CREATE SCHEMA

Se aplica a: casilla marcada como Sí Databricks SQL casilla marcada como Sí Databricks Runtime

Crea un esquema (base de datos) con el nombre especificado. Si ya existe un esquema con el mismo nombre, se produce una excepción.

Sintaxis

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

Parámetros

  • schema_name

    Nombre del esquema que se va a crear.

    Los esquemas creados en el catálogo hive_metastore solo pueden contener caracteres ASCII alfanuméricos y caracteres de subrayado (INVALID_SCHEMA_OR_RELATION_NAME).

  • IF NOT EXISTS

    Crea un esquema con el nombre especificado si no existe. Si ya existe un esquema con el mismo nombre, no ocurrirá nada.

  • UBICACIÓN schema_directory

    No se LOCATION admite en Unity Catalog. Si desea especificar una ubicación de almacenamiento para un esquema en Unity Catalog, use MANAGED LOCATION.

    schema_directory es un literal de STRING. La ruta de acceso del sistema de archivos en el que se va a crear el esquema especificado. Si la ruta de acceso especificada no existe en el sistema de archivos subyacente, crea un directorio con la ruta de acceso. Si no se especifica la ubicación, el esquema se crea en el directorio de almacenamiento predeterminado, cuya ruta de acceso se configura con la spark.sql.warehouse.dir de configuración estática.

    Advertencia

    Si un esquema (base de datos) está registrado en el metastore de Hive de nivel de área de trabajo, quitar ese esquema con la opción CASCADE hace que todos los archivos de esa ubicación de esquema se eliminen de forma recursiva, independientemente del tipo de tabla (administrada o externa).

    Si el esquema se registra en un metastore de catálogos de Unity, los archivos de las tablas administradas por el catálogo de Unity se eliminan de forma recursiva. Sin embargo, los archivos de las tablas externas no se eliminan. Debe administrar esos archivos mediante el proveedor de almacenamiento en la nube directamente.

    Por lo tanto, para evitar la pérdida accidental de datos, nunca debe registrar un esquema de un metastore de Hive en una ubicación con datos existentes. Tampoco debe crear nuevas tablas externas en una ubicación administrada por esquemas de metastore de Hive o que contenga tablas administradas por el catálogo de Unity.

  • COMMENT schema_comment

    Un literal de STRING. Descripción del esquema.

  • UBICACIÓN ADMINISTRADA location_path

    MANAGED LOCATION es opcional y requiere Unity Catalog. Si desea especificar una ubicación de almacenamiento para un esquema registrado en el Hive de nivel de área de trabajo o en el metastore de terceros, use LOCATION en su lugar.

    location_path debe ser un literal de STRING. Especifica la ruta a una ubicación raíz de almacenamiento para el esquema que es diferente de la ubicación raíz de almacenamiento del metastore o del catálogo. Esta ruta de acceso debe definirse en una configuración de ubicación externa y debe tener el privilegio CREATE MANAGED STORAGE en dicha configuración. Puede usar la ruta de acceso definida en la configuración de ubicación externa o un subtrazado (es decir, 'abfss://container@storageaccount.dfs.core.windows.net/finance' o 'abfss://container@storageaccount.dfs.core.windows.net/finance/product'). Se admite en Databricks SQL o en clústeres que ejecuten Databricks Runtime 11.3 LTS y versiones posteriores.

    Consulte también Uso de tablas administradas y Creación de un metastore de Unity Catalog.

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

    Propiedades del esquema en pares clave-valor.

  • OPCIONES

    Establece parámetros específicos del tipo de conexión necesarios para identificar el catálogo en la conexión.

    • option

      Tecla de opción. La clave puede constar de uno o más identificadores separados por un punto o un literal de STRING.

      Las claves de opción deben ser únicas y distinguen mayúsculas de minúsculas.

    • value

      El valor para la opción. El valor debe ser una expresión constante BOOLEAN, STRING, INTEGER o DECIMAL. El valor también puede ser una llamada a la función SQL SECRET. Por ejemplo, el value para password puede incluir secret('secrets.r.us', 'postgresPassword') en lugar de escribir la contraseña literal.

Ejemplos

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