Partilhar via


CREATE SCHEMA

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

  • schema_name

    O nome do schema a ser criado.

    Os esquemas criados no hive_metastorecatalog 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, use MANAGED LOCATION.

    schema_directory é um STRING 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ática spark.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, usa LOCATION em alternativa.

    location_path deve ser um STRING 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 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 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 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))