CREATE TABLE LIKE

적용 대상:check marked yes Databricks SQL check marked yes Databricks 런타임

기존 테이블 또는 보기의 정의 및 메타데이터를 사용하여 테이블을 정의합니다.

Delta Lake는 Databricks SQL 및 Databricks Runtime 13.0 이상을 지원 CREATE TABLE LIKE 합니다. Databricks Runtime 13.0 이전에는 CREATE TABLE AS를 사용합니다.

구문

CREATE TABLE [ IF NOT EXISTS ] table_name LIKE source_table_name [table_clauses]

table_clauses
   { USING data_source |
     LOCATION path |
     TBLPROPERTIES clause |
     ROW FORMAT row_format |
     STORED AS file_format } [...]

row_format
   { SERDE serde_class [ WITH SERDEPROPERTIES (serde_key = serde_val [, ...] ) ] |
     { DELIMITED [ FIELDS TERMINATED BY fields_terminated_char [ ESCAPED BY escaped_char ] ]
       [ COLLECTION ITEMS TERMINATED BY collection_items_terminated_char ]
       [ MAP KEYS TERMINATED BY map_key_terminated_char ]
       [ LINES TERMINATED BY row_terminated_char ]
       [ NULL DEFINED AS null_char ] } }

property_key
  { identifier [. ...] | string_literal }

매개 변수

  • IF NOT EXISTS

    지정되면 table_name이 이미 존재하는 경우 문을 무시합니다.

  • table_name

    만들 테이블의 이름입니다. 이름에는 임시 사양이 포함되지 않아야 합니다. 이름이 정규화되지 않으면 테이블이 현재 스키마에 만들어집니다. table_name은 이미 존재하지 않아야 합니다.

  • source_table_name

    정의가 복사되는 테이블의 이름입니다. source_table_nametable_name 다 Hive 메타스토어에 있거나 둘 다 Unity 카탈로그에 있어야 합니다.

  • table_clauses

    필요에 따라 새 테이블에 대한 데이터 원본 형식, 위치 및 사용자 정의 속성을 지정합니다. 각 하위 절은 한 번만 지정할 수 있습니다.

    • LOCATION path

      분산 스토리지의 경로일 수 있는 테이블 데이터가 저장되는 디렉터리의 경로입니다. 위치를 지정하면 새 테이블은 외부 테이블이 됩니다. 위치를 지정하지 않으면 테이블은 관리형 테이블입니다.

      관리되는 테이블의 위치와 겹치는 위치에는 외부 테이블을 만들 수 없습니다.

    • TBLPROPERTIES

      선택적으로 하나 이상의 사용자 정의 속성을 설정합니다.

    • USING data_source

      테이블에 사용할 파일 형식입니다. data_source는 다음 중 하나여야 합니다.

      • TEXT
      • CSV
      • JSON
      • JDBC
      • PARQUET
      • DELTA

      테이블에 사용할 다음 추가 파일 형식은 Databricks Runtime에서 지원됩니다.

      • ORC
      • HIVE
      • LIBSVM
      • 사용자 지정 org.apache.spark.sql.sources.DataSourceRegister 구현의 정규화된 클래스 이름입니다.

      USING을 지정하지 않으면 원본 테이블의 형식이 상속됩니다.

      다음이 적용됩니다. Databricks Runtime

      HIVE는 Databricks Runtime에서 Hive SerDe 테이블을 만드는 데 지원됩니다. 대/소문자를 구분하지 않는 문자열 맵인 OPTIONS 절을 사용하여 Hive 관련 file_formatrow_format을 지정할 수 있습니다. option_keys는 다음과 같습니다.

      • FILEFORMAT
      • INPUTFORMAT
      • OUTPUTFORMAT
      • SERDE
      • FIELDDELIM
      • ESCAPEDELIM
      • MAPKEYDELIM
      • LINEDELIM
    • ROW FORMAT row_format

      적용 대상:check marked yes Databricks 런타임

      사용자 지정 SerDe를 지정하려면 SERDE로 설정하고 사용자 지정 SerDe 및 선택적 SerDe 속성의 정규화된 클래스 이름을 지정합니다. 네이티브 SerDe를 사용하려면 DELIMITED로 설정하고 구분 기호, 이스케이프 문자, null 문자 등을 지정합니다.

      • SERDEPROPERTIES

        SerDe 정의에 태그를 지정하는 데 사용되는 키-값 쌍의 목록입니다.

      • FIELDS TERMINATED BY

        열 구분 기호를 정의합니다.

      • ESCAPED BY

        이스케이프 메커니즘을 정의합니다.

      • COLLECTION ITEMS TERMINATED BY

        컬렉션 항목 구분 기호를 정의합니다.

      • MAP KEYS TERMINATED BY

        맵 키 구분 기호를 정의합니다.

      • LINES TERMINATED BY

        행 구분 기호를 정의합니다.

      • NULL DEFINED AS

        NULL에 특정 값을 정의합니다.

      • STORED AS

        테이블의 파일 형식입니다. 사용할 수 있는 형식에는 TEXTFILE, SEQUENCEFILE, RCFILE, ORC, PARQUET, AVRO가 있습니다. 또는 INPUTFORMATOUTPUTFORMAT을 통해 고유한 입력 및 출력 형식을 지정할 수 있습니다. TEXTFILE, SEQUENCEFILE, RCFILE 형식만 ROW FORMAT SERDE와 함께 사용할 수 있으며, TEXTFILE 형식만 ROW FORMAT DELIMITED와 함께 사용할 수 있습니다.

주의

데이터 원본 및 대상에 따라 테이블의 모든 속성이 전송될 수 있는 것은 아닙니다.

CREATE TABLE LIKE원본Delta Lake 테이블인 경우:

기능/속성 대상은 델타 테이블이 아닌 테이블입니다. 대상은 델타 테이블입니다.
설명
파티션 열
구성
테이블 제약 조건 해당 없음
델타 프로토콜 해당 없음

CREATE TABLE LIKE원본Delta Lake 테이블이 아닌 경우:

기능/속성 대상은 델타 테이블이 아닌 테이블입니다. 대상은 델타 테이블입니다.
설명
파티션 열
구성
테이블 제약 조건
델타 프로토콜 아니요(해당 세션의 현재 기본 프로토콜)

예제

-- Create table using a new location
> CREATE TABLE Student_Dupli LIKE Student LOCATION '/mnt/data_files';

-- Create table like using a data source
> CREATE TABLE Student_Dupli LIKE Student USING CSV LOCATION '/mnt/csv_files';