다음을 통해 공유


CREATE SCHEMA

적용 대상:예로 표시된 확인 Databricks SQL 예로 표시된 확인 Databricks Runtime

지정된 이름의 schema(데이터베이스)를 만듭니다. 같은 이름의 schema가 이미 존재하는 경우, 예외가 발생됩니다.

구문

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

    만들려는 schema의 이름입니다.

    hive_metastore catalog에서 생성된 스키마는 영숫자와 밑줄만 포함할 수 있습니다 (INVALID_SCHEMA_OR_RELATION_NAME).

  • IF NOT EXISTS

    지정된 이름의 schema이 존재하지 않는 경우, 생성합니다. 이름이 같은 schema 이미 있는 경우 아무 일도 발생하지 않습니다.

  • LOCATION schema_directory

    LOCATION은 Unity Catalog에서 지원되지 않습니다. MANAGED LOCATION을 사용하여 Unity Catalog에서 schema의 스토리지 위치를 지정하세요.

    schema_directorySTRING 리터럴입니다. 지정된 schema가 생성될 파일 시스템 경로입니다. 지정된 경로가 기본 파일 시스템에 존재하지 않는 경우 해당 경로가 있는 디렉터리를 만듭니다. 위치가 지정되지 않으면 schema가 기본 웨어하우스 디렉터리에서 생성됩니다. 이 디렉터리의 경로는 정적 구성 spark.sql.warehouse.dir에 의해 설정됩니다.

    Warning

    schema(데이터베이스)가 작업 영역 수준 Hive 메타스토어에 등록된 경우 CASCADE 옵션을 사용하여 해당 schema 삭제하면 table 형식(관리형 또는 외부)에 관계없이 해당 schema 위치의 모든 파일이 재귀적으로 삭제됩니다.

    schema이 Unity Catalog 메타스토어에 등록되어 있으면, Unity Catalog의 관리하에 있는 tables의 파일이 재귀적으로 삭제됩니다. 그러나 외부 의 tables 파일은 삭제되지 않습니다. 클라우드 스토리지 공급자를 사용하여 해당 파일을 직접 관리해야 합니다.

    따라서 실수로 인한 데이터 손실을 방지하기 위해 Hive 메타스토어의 schema 기존 데이터가 있는 위치에 등록해서는 안 됩니다. Hive 메타스토어 스키마로 관리되는 위치나 Unity Catalog에서 관리되는 tables를 포함한 위치에 새 외부 tables를 만들지 않아야 합니다.

  • 메모 schema_comment

    STRING 리터럴입니다. schema에 대한 설명입니다.

  • 관리되는 위치 location_path

    MANAGED LOCATION 선택 사항이며 Unity Catalog필요합니다. 작업 영역 수준 Hive 또는 타사 메타스토어에 등록된 schema의 스토리지 위치를 지정하려면, LOCATION을 사용하십시오.

    location_pathSTRING 리터럴이어야 합니다. catalog또는 메타스토어의 스토리지 루트 위치와 다른 schema 스토리지 루트 위치의 경로를 지정합니다. 이 경로는 외부 위치 구성에서 정의되어야 하며 외부 위치 구성에 대한 CREATE MANAGED STORAGE 권한이 있어야 합니다. 외부 위치 구성에 정의된 경로 또는 하위 경로(즉, 'abfss://container@storageaccount.dfs.core.windows.net/finance' 또는 'abfss://container@storageaccount.dfs.core.windows.net/finance/product')를 사용할 수 있습니다. Databricks SQL 또는 Databricks Runtime 11.3 LTS 이상을 실행하는 클러스터에서 지원됩니다.

    관리되는 작업 및 Unity 메타스토어만들기 참조하세요.

  • WITH DBPROPERTIES ( { property_name = property_value } [ , … ] )

    키-값 쌍에서 schema에 대한 속성입니다.

  • OPTIONS

    연결에서 catalog을 식별하기 위해 필요한 연결 유형에 따른 parameters을 설정합니다.

    • option

      옵션 키입니다. 키는 점 또는 리터럴로 구분된 하나 이상의 STRING로 구성될 수 있습니다.

      옵션 키는 고유해야 하며 대/소문자를 구분해야 합니다.

    • value

      옵션의 값입니다. 값은 BOOLEAN, STRING, INTEGER 또는 DECIMAL 상수 식이어야 합니다. 값은 SECRET SQL 함수에 대한 호출일 수도 있습니다. 예를 들어 valuepassword는 리터럴 비밀번호를 입력하는 것과 반대로 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://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))