적용 대상:
Databricks SQL
Databricks Runtime
기존 테이블의 정의 및 메타데이터를 사용하여 테이블을 정의합니다.
Delta Lake는 Databricks SQL 및 Databricks Runtime 13.3 LTS 이상을 지원 CREATE TABLE LIKE 합니다.
Databricks Runtime 12.2 LTS 이하에서 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 }
매개 변수
존재하지 않을 경우
지정되면
table_name이 이미 존재하는 경우 문을 무시합니다.-
만들 테이블의 이름입니다. 이름에는 임시 사양 또는 옵션 사양이 포함되어서는 안됩니다. 이름이 명시되지 않으면 테이블이 현재 스키마에 만들어집니다. table_name은 이미 존재하지 않아야 합니다.
-
정의가 복사되는 테이블의 이름입니다.
source_table_name및table_name둘 다 Hive 메타스토어에 있거나 둘 다 Unity 카탈로그에 있어야 합니다. table_clauses
필요에 따라 새 테이블에 대한 데이터 원본 형식, 위치 및 사용자 정의 속성을 지정합니다. 각 하위 절은 한 번만 지정할 수 있습니다.
위치 경로
테이블 데이터가 저장되는 디렉터리의 경로이며 분산 스토리지의 경로일 수 있습니다. 위치를 지정하면 새 테이블이
외부 테이블이 됩니다. 위치를 지정하지 않으면 테이블은 관리되는 테이블입니다. 관리되는 테이블의 위치와 겹치는 위치에는 외부 테이블을 만들 수 없습니다.
-
선택적으로 하나 이상의 사용자 정의 속성을 설정합니다.
데이터_소스 사용
테이블에 사용할 파일 형식입니다.
data_source는 다음 중 하나여야 합니다.TEXTCSVJSONJDBCPARQUETDELTA
테이블에 사용할 다음 추가 파일 형식은 Databricks 런타임에서 지원됩니다.
ORCHIVELIBSVM- 사용자 지정
org.apache.spark.sql.sources.DataSourceRegister구현의 정규화된 클래스 이름입니다.
USING지정하지 않으면 원본 테이블의 형식이 상속됩니다.다음이 적용됩니다. Databricks Runtime
HIVEDatabricks Runtime에서 Hive SerDe 테이블을 만드는 데 지원됩니다. 대/소문자를 구분하지 않는 문자열 맵인file_format절을 사용하여 Hive 관련row_format및OPTIONS을 지정할 수 있습니다.option_keys는 다음과 같습니다.FILEFORMATINPUTFORMATOUTPUTFORMATSERDEFIELDDELIMESCAPEDELIMMAPKEYDELIMLINEDELIM
행 형식 row_format
적용 대상:
Databricks 런타임사용자 지정 SerDe를 지정하기 위해, 매개변수를
SERDE으로 설정한 후 사용자 지정 SerDe와 선택적 SerDe 속성의 완전한 클래스 이름을 명시합니다. 네이티브 SerDe를 사용하려면DELIMITED으로 설정하고 구분 기호, 이스케이프 문자, 널 문자 등을 지정합니다.SERDEPROPERTIES
SerDe 정의에 태그를 지정하는 데 사용되는 키-값 쌍 목록입니다.
종료한 필드
열 구분 기호를 정의합니다.
에 의해 이스케이프
이스케이프 메커니즘을 정의합니다.
종결된 컬렉션 항목
컬렉션 항목 구분 기호를 정의합니다.
맵 키가 종료됨
맵 키 구분 기호를 정의합니다.
줄 구분 기호
행 구분 기호를 정의합니다.
NULL로 정의됨
NULL에 특정 값을 정의합니다.AS로 저장됨
테이블의 파일 형식입니다. 사용할 수 있는 형식에는
TEXTFILE,SEQUENCEFILE,RCFILE,ORC,PARQUET,AVRO가 있습니다. 또는INPUTFORMAT및OUTPUTFORMAT을 통해 고유한 입력 및 출력 형식을 지정할 수 있습니다.TEXTFILE,SEQUENCEFILE,RCFILE형식만ROW FORMAT SERDE와 함께 사용할 수 있으며,TEXTFILE형식만ROW FORMAT DELIMITED와 함께 사용할 수 있습니다.
주의
데이터 원본 및 대상에 따라 테이블의 모든 속성이 전송될 수 있는 것은 아닙니다.
CREATE TABLE LIKE Delta Lake 테이블인 경우 .
| 기능/속성 | 대상은 델타 테이블이 아닌 테이블입니다. | 대상은 델타 테이블입니다. |
|---|---|---|
| COMMENT | 예 | 예 |
| 열 | 예 | 예 |
| 파티션 열 | 예 | 예 |
| 구성 | 예 | 예 |
| 테이블 제약 조건 | 해당 없음 | 예 |
| 델타 프로토콜 | 해당 없음 | 예 |
CREATE TABLE LIKE
원본이 Delta Lake 테이블이 아닌 경우:
| 기능/속성 | 대상은 델타 테이블이 아닌 테이블입니다. | 대상은 델타 테이블입니다. |
|---|---|---|
| COMMENT | 예 | 예 |
| 열 | 예 | 예 |
| 파티션 열 | 예 | 예 |
| 구성 | 예 | 예 |
| 테이블 제약 조건 | 예 | 예 |
| 델타 프로토콜 | 아니요(해당 세션의 현재 기본 프로토콜) | 예 |
예제
-- Create table using a new location
> CREATE TABLE Student_Dupli LIKE Student LOCATION '/path/to/data_files';
-- Create table like using a data source
> CREATE TABLE Student_Dupli LIKE Student USING CSV LOCATION '/path/to/csv_files';