CREATE SCHEMA
적용 대상: Databricks SQL
Databricks Runtime
지정된 이름의 스키마(데이터베이스)를 만듭니다. 이름이 같은 스키마가 이미 있는 경우 예외가 throw됩니다.
구문
CREATE SCHEMA [ IF NOT EXISTS ] schema_name
[ COMMENT schema_comment |
{ LOCATION schema_directory | MANAGED LOCATION location_path } |
WITH DBPROPERTIES ( { property_name = property_value } [ , ... ] ) ] [...]
매개 변수
-
만들 스키마의 이름입니다.
hive_metastore
카탈로그에서 만든 스키마는 영숫자 ASCII 문자와 밑줄(INVALID_SCHEMA_OR_RELATION_NAME)만 포함할 수 있습니다. IF NOT EXISTS
지정된 이름의 스키마가 없는 경우 스키마를 만듭니다. 이름이 같은 스키마가 이미 있는 경우 아무 작업도 수행되지 않습니다.
LOCATION
schema_directory
LOCATION
Unity 카탈로그에서 지원되지 않습니다. Unity 카탈로그에서 스키마의 스토리지 위치를 지정하려면MANAGED LOCATION
사용합니다.schema_directory
는STRING
리터럴입니다. 지정된 스키마를 만들 파일 시스템의 경로입니다. 지정된 경로가 기본 파일 시스템에 존재하지 않는 경우 해당 경로가 있는 디렉터리를 만듭니다. 위치를 지정하지 않으면 기본 웨어하우스 디렉터리에 스키마가 만들어집니다. 이 디렉터리의 경로는 정적 구성spark.sql.warehouse.dir
의해 구성됩니다.Warning
스키마(데이터베이스)가 작업 영역 수준 Hive 메타스토어에 등록된 경우
CASCADE
옵션을 사용하여 해당 스키마를 삭제하면 테이블 형식(관리형 또는 외부)에 관계없이 해당 스키마 위치의 모든 파일이 재귀적으로 삭제됩니다.스키마가 Unity 카탈로그 메타스토어에 등록되면 Unity 카탈로그 관리 테이블 파일이 재귀적으로 삭제됩니다. 그러나
외부 테이블에 대한 파일은 삭제되지 않습니다. 클라우드 스토리지 공급자를 사용하여 해당 파일을 직접 관리해야 합니다. 따라서 실수로 인한 데이터 손실을 방지하기 위해 Hive 메타스토어의 스키마를 기존 데이터가 있는 위치에 등록해서는 안 됩니다. Hive 메타스토어 스키마 또는 Unity 카탈로그 관리 테이블을 포함하는 위치에 새 외부 테이블을 만들 수도 없습니다.
메모
schema_comment
STRING
리터럴입니다. 스키마에 대한 설명입니다.관리되는 위치
location_path
MANAGED LOCATION
선택 사항이며 Unity 카탈로그가 필요합니다. 작업 영역 수준 Hive 또는 타사 메타스토어에 등록된 스키마의 스토리지 위치를 지정하려면 대신LOCATION
사용합니다.location_path
는STRING
리터럴이어야 합니다. 카탈로그 또는 메타스토어의 스토리지 루트 위치와 다른 스키마의 스토리지 루트 위치 경로를 지정합니다. 이 경로는 외부 위치 구성에서 정의되어야 하며 외부 위치 구성에 대한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 } [ , … ] )
키-값 쌍에 대한 스키마 속성입니다.
OPTIONS
연결에서 카탈로그를 식별하는 데 필요한 연결 유형별 매개 변수를 설정합니다.
예제
-- 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))