CREATE SCHEMA
Se aplica a: Databricks SQL 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
-
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, useMANAGED LOCATION
.schema_directory
es un literal deSTRING
. 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 laspark.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, useLOCATION
en su lugar.location_path
debe ser un literal deSTRING
. 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 privilegioCREATE 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
oDECIMAL
. El valor también puede ser una llamada a la función SQLSECRET
. Por ejemplo, elvalue
parapassword
puede incluirsecret('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))