CREATE TABLE LIKE
적용 대상: Databricks SQL Databricks Runtime
기존 table 또는 뷰의 정의 및 메타데이터를 사용하여 table을 정의하는 데 사용합니다.
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 }
Parameters
IF NOT EXISTS
지정되면
table_name
이 이미 존재하는 경우 문을 무시합니다.-
생성할 table의 이름입니다. 이름에는 임시 사양 또는 옵션 사양이 포함되어서는 안됩니다. 이름이 정규화되지 않으면 table가 현재 schema에서 생성됩니다. table_name은 이미 존재하지 않아야 합니다.
-
정의가 복사된 table의 이름입니다.
source_table_name
및table_name
은 둘 다 Hive 메타스토어에 있거나 Unity Catalog에 있어야 합니다. table_clauses
필요에 따라 새 table대한 데이터 원본 형식, 위치 및 사용자 정의 속성을 지정합니다. 각 하위 절은 한 번만 지정할 수 있습니다.
LOCATION path
디렉터리 wheretable 데이터의 경로는 저장되며, 이는 분산 스토리지의 경로일 수 있습니다. 위치를 지정하면 새 table외부 table됩니다. 위치를 지정하지 않으면 table은 관리되는 table입니다.
관리되는 tables위치와 겹치는 위치에는 외부 tables 만들 수 없습니다.
-
선택적으로 하나 이상의 사용자 정의 속성을 설정합니다.
USING data_source
table에 사용할 파일 형식입니다.
data_source
는 다음 중 하나여야 합니다.TEXT
CSV
JSON
JDBC
PARQUET
DELTA
다음과 같은 추가 파일 형식은 Databricks 런타임에서 table 사용을 지원합니다.
ORC
HIVE
LIBSVM
- 사용자 지정
org.apache.spark.sql.sources.DataSourceRegister
구현의 정규화된 클래스 이름입니다.
USING
지정하지 않으면 원본 table 형식이 상속됩니다.다음이 적용됩니다. Databricks Runtime
HIVE
Databricks Runtime에서 Hive SerDe table 만드는 데 지원됩니다. 대/소문자를 구분하지 않는 문자열 맵인file_format
절을 사용하여 Hive 관련row_format
및OPTIONS
을 지정할 수 있습니다.option_keys
는 다음과 같습니다.FILEFORMAT
INPUTFORMAT
OUTPUTFORMAT
SERDE
FIELDDELIM
ESCAPEDELIM
MAPKEYDELIM
LINEDELIM
ROW FORMAT row_format
적용 대상: Databricks 런타임
사용자 지정 SerDe를 지정하려면, set에서
SERDE
까지 수행하고, 사용자 지정 SerDe 및 선택적 SerDe 속성의 완전한 클래스 이름을 지정하십시오. 네이티브 SerDe를 사용하려면 set에서DELIMITED
으로 이동하여 구분 기호, 이스케이프 문자, null 문자 등을 지정하십시오.SERDEPROPERTIES
SerDe 정의에 태그를 지정하기 위해 사용되는 키-값 쌍의 list.
FIELDS TERMINATED BY
column 구분 기호를 정의합니다.
ESCAPED BY
이스케이프 메커니즘을 정의합니다.
COLLECTION ITEMS TERMINATED BY
컬렉션 항목 구분 기호를 정의합니다.
MAP KEYS TERMINATED BY
맵 키 구분 기호를 정의합니다.
LINES TERMINATED BY
행 구분 기호를 정의합니다.
NULL DEFINED AS
NULL
에 특정 값을 정의합니다.STORED AS
table파일 형식입니다. 사용할 수 있는 형식에는
TEXTFILE
,SEQUENCEFILE
,RCFILE
,ORC
,PARQUET
,AVRO
가 있습니다. 또는INPUTFORMAT
및OUTPUTFORMAT
을 통해 고유한 입력 및 출력 형식을 지정할 수 있습니다.TEXTFILE
,SEQUENCEFILE
,RCFILE
형식만ROW FORMAT SERDE
와 함께 사용할 수 있으며,TEXTFILE
형식만ROW FORMAT DELIMITED
와 함께 사용할 수 있습니다.
주의
데이터 원본 및 대상에 따라 tables 모든 속성이 전송될 수 있는 것은 아닙니다.
CREATE TABLE LIKE
원본이(가) Delta Lake Table일 때:
기능/속성 | 대상이 델타가 아닌 Table | 대상은 델타 Table |
---|---|---|
COMMENT | 예 | 예 |
Columns | 예 | 예 |
Partition columns | 예 | 예 |
구성 | 예 | 예 |
Table Constraint | 해당 없음 | 예 |
델타 프로토콜 | 해당 없음 | 예 |
Delta Lake Table이 아닌 원본의 경우 CREATE TABLE LIKE
.
기능/속성 | 대상이 델타가 아닌 Table | 대상은 델타 Table |
---|---|---|
COMMENT | 예 | 예 |
Columns | 예 | 예 |
Partition columns | 예 | 예 |
구성 | 예 | 예 |
Table Constraint | 예 | 예 |
델타 프로토콜 | 아니요(해당 세션의 현재 기본 프로토콜) | 예 |
예제
-- 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';