본문 바로가기

[HIVE] 테이블 만들기 :: CREATE TABLE

SQL/HIVE 2021. 1. 26.

반응형
-- 파티션이 있을 경우
CREATE TABLE IF NOT EXISTS DB.테이블 (
	열1 데이터타입
	, 열2 데이터타입
)
COMMENT 'message'
PARTITIONED BY (열3 데이터타입);
 
 
-- 파티션이 없을 경우
CREATE TABLE IF NOT EXISTS DB.테이블 (
	열1 데이터타입 
	, 열2 데이터타입
);


-- 조회하여 테이블 생성
CRESTE TABLE DB.테이블 as
SELECT * FROM db.table;

[ 생략가능한 옵션 ]

- IF NOT EXISTS : 지정한 위치(데이터베이스)에 해당 이름을 가진 테이블이 없다면 생성, 있으면 생성 x

- COMMENT : 코멘트/메시지 남기기

- PARTITIONED BY : 파티션 지정하기

 

 

1. 파티션이 있을 경우

PARTITIONED BY (열 데이터타입)

-- Example
-- dt | name | score | grade
CREATE TABLE IF NOT EXISTS kimheeji.TestTable (
    name STRING
    , score INT
    , grade STRING
    )
COMMENT 'message'
PARTITIONED BY (dt STRING);

- 파티션으로 나눌 열은 PARTITIONED BY에 따로 정의한다. 처음에 CREATE TABLE 이후에 정의 X

- 위 테이블은 dt | name | score | grade 로 열이 구성된다.

- dt로 파티션이 구분된다.

- IF NOT EXISTS 와 COMMENT 는 생략가능하다.

 

 

2. 파티션이 없을 경우

-- Example
-- dt | name | score | grade
CREATE TABLE IF NOT EXISTS kimheeji.TestTable (
	dt STRING
    , name STRING
    , score INT
    , grade STRING
    )

- 1번과 같지만 이번에는 파티션을 따로 지정해주지 않았다.

- 위 테이블은 dt | name | score | grade 로 열이 구성된다.

- IF NOT EXISTS 와 COMMENT 는 생략가능하다.

 

 

3. 데이터 조회결과로 테이블 만들기

-- 조회하여 테이블 생성
CRESTE TABLE DB.테이블 as
SELECT * FROM db.table;

- SELECT문으로 조회한 결과로 테이블을 만든다.

 

 

 

728x90

Comments