Partilhar via


CRIAR ESQUEMA

Aplica-se a: Marque Sim Databricks SQL Marque Sim 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

  • schema_name

    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, use MANAGED LOCATION.

    schema_directory é um STRING 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ção spark.sql.warehouse.direstá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, use LOCATION em vez disso.

    location_path deve ser um STRING 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 o CREATE 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 BOOLEANexpressão , STRING, INTEGER, ou DECIMAL constante. O valor também pode ser uma chamada para a SECRET função SQL. Por exemplo, o value for password pode incluir secret('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))