Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: Databricks SQL
Databricks Runtime
Создает схему (базу данных) с указанным именем. Если схема с тем же именем уже существует, создается исключение.
Синтаксис
CREATE SCHEMA [ IF NOT EXISTS ] schema_name
[ COMMENT schema_comment |
{ LOCATION schema_directory | MANAGED LOCATION location_path } |
WITH DBPROPERTIES ( { property_name = property_value } [ , ... ] ) ] [...]
Параметры
-
Имя создаваемой схемы.
Схемы, созданные в каталоге
hive_metastore
, могут содержать только буквенно-цифровые символы ASCII и символы подчеркивания (INVALID_SCHEMA_OR_RELATION_NAME). ЕСЛИ НЕ СУЩЕСТВУЕТ
Создает схему с заданным именем, если она не существует. Если схема с тем же именем уже существует, ничего не произойдет.
МЕСТОПОЛОЖЕНИЕ
schema_directory
LOCATION
не поддерживается в каталоге Unity. Если вы хотите указать расположение хранилища для схемы в каталоге Unity, используйтеMANAGED LOCATION
.schema_directory
STRING
— это литерал. Путь к файловой системе, в которой должна быть создана указанная схема. Если указанный путь не существует в файловой системе, создается каталог с этим путем. Если расположение не указано, схема создается в каталоге хранилища по умолчанию, путь которого настраивается статической конфигурациейspark.sql.warehouse.dir
.Предупреждение
Если в хранилище метаданных Hive уровня рабочей области зарегистрирована схема (база данных), удаление схемы с помощью параметра
CASCADE
приводит к удалению всех файлов в этом расположении схемы рекурсивно независимо от типа таблицы (управляемого или внешнего).Если схема зарегистрирована в метахранилище каталога Unity, файлы управляемых таблиц каталога Unity удаляются рекурсивно. Однако файлы для внешних таблиц не удаляются. Эти файлы необходимо управлять напрямую с помощью поставщика облачных хранилищ.
Таким образом, чтобы избежать случайной потери данных, никогда не следует регистрировать схему в хранилище метаданных Hive на месте, где уже существуют данные. Не следует создавать новые внешние таблицы в местоположении, управляемом метаданными Hive, или содержащем управляемые таблицы Unity Catalog.
КОММЕНТАРИЙ
schema_comment
Литерал
STRING
. Описание схемы.УПРАВЛЯЕМОЕ РАСПОЛОЖЕНИЕ
location_path
MANAGED LOCATION
является необязательным, если используется Unity Catalog. Если вы хотите указать расположение хранилища для схемы, зарегистрированной на уровне рабочей области Hive или стороннего хранилища метаданных, используйте вместо этогоLOCATION
.location_path
должен быть литераломSTRING
. Указывает путь к корневому расположению хранилища для схемы, отличной от корневого расположения каталога или хранилища метаданных. Этот путь должен быть определен в конфигурации внешнего расположения, и у вас должнаCREATE MANAGED STORAGE
быть привилегия в конфигурации внешнего расположения. Можно использовать путь, определенный в конфигурации внешнего расположения или подпате (другими словами,'abfss://[email protected]/finance'
или'abfss://[email protected]/finance/product'
). Поддерживается в Databricks SQL или в кластерах под управлением Databricks Runtime 11.3 LTS и более поздних версий.См. также управляемые таблицы каталога Unity в Azure Databricks для Delta Lake и Apache Iceberg исоздание хранилища метаданных каталога Unity.
WITH DBPROPERTIES ( { property_name = property_value } [ , ... ] )
Свойства схемы, представленные в виде пар "ключ-значение".
ПАРАМЕТРЫ
Задает параметры конкретного типа подключения, необходимые для идентификации каталога в соединении.
option
Ключ параметра. Ключ может состоять из одного или нескольких идентификаторов, разделенных точкой или
STRING
литералом.Ключи параметров должны быть уникальными и чувствительны к регистру.
value
Значение параметра. Значение должно быть выражением
BOOLEAN
,STRING
INTEGER
илиDECIMAL
константой. Это значение также может быть вызовомSECRET
функции SQL. Например, этоvalue
password
может бытьsecret('secrets.r.us', 'postgresPassword')
в отличие от ввода литерального пароля.
Примеры
-- 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://[email protected]/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))