CREATE SCHEMA

Se aplica a:comprobar sí marcado Databricks SQL comprobar sí marcado 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 |
      DEFAULT COLLATION default_collation_name |
      { LOCATION schema_directory | MANAGED LOCATION location_path } |
      RETAIN DROPPED FOR number { HOUR | HOURS | DAY | DAYS | WEEK | WEEKS } |
      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).

  • SI NO EXISTE

    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.

  • COMENTARIO schema_comment

    Un literal de STRING. Descripción del esquema.

  • INTERCALACIÓN PREDETERMINADA nombre_intercalación_predeterminada

    Se aplica a:check marcado yes Databricks SQL check marcado yes Databricks Runtime 17.1 y versiones posteriores

    Opcionalmente, define la intercalación predeterminada para los objetos definidos en el esquema. Si no se especifica, la intercalación predeterminada se hereda del catálogo.

  • 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 subárbol de nivel de área de trabajo o metastore de terceros, use LOCATION en su lugar.

    location_path debe ser un literal de STRING. Especifica la ruta de acceso a una ubicación raíz de almacenamiento para el esquema que es diferente de la ubicación raíz del almacenamiento del catálogo o del metastore. 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 Tablas administradas del catálogo de Unity para Delta Lake y Apache Tutorial y Creación de un metastore de catálogo de Unity.

  • RETAIN DROPPED FOR number { HOUR | HORAS | DÍA | DÍAS | SEMANA | WEEKS }

    Se aplica a:check marcado como sí Databricks Runtime 17.3 y versiones posteriores marcados como sí Catálogo de Unity.

    Importante

    Esta característica está en versión preliminar pública.

    Opcionalmente, establece el período de recuperación para las tablas administradas eliminadas en el esquema, el período durante el que se pueden recuperar las tablas quitadas mediante el UNDROP TABLE comando . Si no se especifica, el esquema hereda el período de recuperación de su catálogo primario (valor predeterminado 7 días). El valor debe ser 0 horas (para deshabilitar la recuperación) o entre 7 y 30 días, ambos incluidos.

    Establecer el período de recuperación en 0 significa que las tablas eliminadas no se pueden recuperar mediante UNDROP y los archivos de datos se eliminan del almacenamiento en la nube en un plazo de 48 horas.

    El período de recuperación de nivel de esquema tiene prioridad sobre cualquier configuración de nivel de catálogo para las tablas del esquema. Esta configuración solo se aplica a las tablas eliminadas después de configurar el período de recuperación. Una vez finalizado el período de recuperación, los archivos de datos de las tablas administradas se eliminan del almacenamiento en la nube en un plazo de 48 horas.

    Consulte también Quitar una tabla administrada.

  • 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

      Valor de la opción. El valor debe ser una BOOLEANSTRING , INTEGER, DECIMALo . 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 `experimental` with a case insensitive unicode default collation
> CREATE SCHEMA experimental DEFAULT COLLATION UNICODE_CI;

-- 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';

-- Create a schema with a 14-day recovery period for dropped managed tables.
> CREATE SCHEMA customer_sc RETAIN DROPPED FOR 14 DAYS;

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