CREATE SCHEMA
Aplica-se a: Databricks SQL Databricks Runtime
Cria um schema (banco de dados) com o nome especificado. Se já existir um schema com o mesmo nome, será lançada uma exceção.
Sintaxe
CREATE SCHEMA [ IF NOT EXISTS ] schema_name
[ COMMENT schema_comment |
{ LOCATION schema_directory | MANAGED LOCATION location_path } |
WITH DBPROPERTIES ( { property_name = property_value } [ , ... ] ) ] [...]
Parameters
-
O nome do schema a ser criado.
Os esquemas criados no
hive_metastore
catalog só podem conter caracteres ASCII alfanuméricos e sublinhados (INVALID_SCHEMA_OR_RELATION_NAME). SE NÃO EXISTIR
Cria um schema com o nome dado, caso não exista. Se já existir um schema com o mesmo nome, nada acontecerá.
LOCALIZAÇÃO
schema_directory
LOCATION
não é suportado no Unity Catalog. Se você quiser especificar um local de armazenamento para um schema no Unity Catalog, useMANAGED LOCATION
.schema_directory
é umSTRING
literal. O caminho do sistema de arquivos no qual o schema especificado deve ser criado. Se o caminho especificado não existir no sistema de arquivos subjacente, criará um diretório com o caminho. Se o local não for especificado, o schema será criado no diretório de depósito padrão, cujo caminho é configurado pela configuração estáticaspark.sql.warehouse.dir
.Aviso
Se um schema (banco de dados) estiver registrado em seu metastore do Hive no nível do espaço de trabalho, descartar esse schema usando a opção
CASCADE
fará com que todos os arquivos nesse local schema sejam excluídos recursivamente, independentemente do tipo de table (gerenciado ou externo).Se o schema estiver registrado em um metastore do Unity Catalog, os arquivos do Unity Cataloggerenciados tables serão excluídos recursivamente. No entanto, os arquivos para tables externos não são eliminados. Você deve gerenciar esses arquivos usando o provedor de armazenamento em nuvem diretamente.
Portanto, para evitar a perda acidental de dados, você nunca deve registrar um schema em um metastore do Hive em um local com dados existentes. Também não se deve criar novos tables externos em um local gerenciado por esquemas de metastore do Hive ou contendo Unity Catalog gerenciado tables.
COMENTAR
schema_comment
Um
STRING
literal. A descrição para o schema.LOCALIZAÇÃO GERIDA
location_path
MANAGED LOCATION
é opcional e requer Unity Catalog. Se quiseres especificar um local de armazenamento para um schema registado no Hive ao nível do espaço de trabalho ou num metastore de terceiros, usaLOCATION
em alternativa.location_path
deve ser umSTRING
literal. Especifica um caminho para uma localização raiz de armazenamento para o schema que é diferente da localização raiz de armazenamento do catalogou do metastore. Esse caminho deve ser definido em uma configuração de local externo e você deve ter oCREATE MANAGED STORAGE
privilégio na configuração de local externo. Você pode usar o caminho definido na configuração do local externo ou um subcaminho (em outras palavras,'abfss://container@storageaccount.dfs.core.windows.net/finance'
ou'abfss://container@storageaccount.dfs.core.windows.net/finance/product'
). Suportado em Databricks SQL ou em clusters que executam o Databricks Runtime 11.3 LTS e superior.Consulte também Trabalhar com tables gerenciados e Criar um metastore Unity Catalog.
COM DBPROPERTIES ( { property_name = property_value } [ , ... ] )
As propriedades do schema em pares chave-valor.
OPÇÕES
Define parameters específicas do tipo de conexão necessárias para identificar o catalog na conexão.
option
A tecla de opção. A chave pode consistir em um ou mais identificadores separados por um ponto ou um
STRING
literal.As teclas de opção devem ser exclusivas e diferenciam maiúsculas de minúsculas.
value
O valor da opção. O valor deve ser uma
BOOLEAN
expressão ,STRING
,INTEGER
, ouDECIMAL
constante. O valor também pode ser uma chamada para aSECRET
função SQL. Por exemplo, ovalue
forpassword
pode incluirsecret('secrets.r.us', 'postgresPassword')
em vez de digitar a senha literal.
Exemplos
-- 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))