CRIAR ESQUEMA
Aplica-se a: Databricks SQL Databricks Runtime
Cria um esquema (banco de dados) com o nome especificado. Se já existir um esquema com o mesmo nome, uma exceção será lançada.
Sintaxe
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
-
O nome do esquema a ser criado.
Os esquemas criados no
hive_metastore
catálogo só podem conter caracteres ASCII alfanuméricos e sublinhados (INVALID_SCHEMA_OR_RELATION_NAME). SE NÃO EXISTIR
Cria um esquema com o nome próprio, se ele não existir. Se já existir um esquema com o mesmo nome, nada acontecerá.
LOCALIZAÇÃO
schema_directory
LOCATION
não é suportado no Unity Catalog. Se desejar especificar um local de armazenamento para um esquema no Unity Catalog, useMANAGED LOCATION
.schema_directory
é umSTRING
literal. O caminho do sistema de arquivos no qual o esquema 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 esquema será criado no diretório de depósito padrão, cujo caminho é configurado pela configuraçãospark.sql.warehouse.dir
estática.Aviso
Se um esquema (banco de dados) estiver registrado no metastore do Hive no nível do espaço de trabalho, descartar esse esquema usando a
CASCADE
opção fará com que todos os arquivos nesse local do esquema sejam excluídos recursivamente, independentemente do tipo de tabela (gerenciada ou externa).Se o esquema estiver registrado em um metastore do Unity Catalog, os arquivos das tabelas gerenciadas do Unity Catalog serão excluídos recursivamente. No entanto, os arquivos para tabelas externas não são excluídos. 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 esquema em um metastore do Hive em um local com dados existentes. Também não deve criar novas tabelas externas em um local gerenciado por esquemas de metastore do Hive ou contendo tabelas gerenciadas do Unity Catalog.
COMENTAR
schema_comment
Um
STRING
literal. A descrição do esquema.LOCALIZAÇÃO GERIDA
location_path
MANAGED LOCATION
é opcional e requer o Catálogo Unity. Se você quiser especificar um local de armazenamento para um esquema registrado no Hive no nível do espaço de trabalho ou no metastore de terceiros, useLOCATION
em vez disso.location_path
deve ser umSTRING
literal. Especifica o caminho para um local raiz de armazenamento para o esquema que é diferente do local raiz de armazenamento do catálogo ou 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 tabelas gerenciadas e Criar um metastore do Catálogo Unity.
COM DBPROPERTIES ( { property_name = property_value } [ , ... ] )
As propriedades do esquema em pares chave-valor.
OPÇÕES
Define os parâmetros específicos do tipo de conexão necessários para identificar o catálogo 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))