-
[Hive] Hive Query Table 관련 sql 정리(create, drop, truncate table) - options(if not exists, file format)데이터 엔지니어링/Hive 2022. 10. 6. 20:57반응형
Managed or Internal table
- create table 시에 아무 옵션을 주지 않으면 기본적으로 internal 또는 managed table로 생성이 된다.
- internal table은 drop table을 하게 되면 안에 있는 데이터도 같이 삭제 된다.
CREATE [INTERNAL or MANAGED] TABLE default.person( pid INT, name STRING, age INT, address STRING );
External table
- external table은 location에 설정된 파일이 삭제 되지 않는다.
- external을 설정하지 않으면 default로 internal or managed table로 설정 된다.
CREATE EXTERNAL TABLE default.person( pid INT, name STRING, age INT, address STRING ) STORED AS PARQUET;
Temporary table
- temporary를 설정하면 yarn이나, Tez등의 세션에서만 존재하는 테이블로 생성되고
- 세션이 끊기거나 종료되면 삭제 된다.
CREATE TEMPORARY default.person( pid INT, name STRING, age INT, address STRING ) PARTITIONED BY (year int, month int, day int) STORED AS PARQUET;
Create Select as
CREATE TABLE default.person2 AS SELECT pid, name, age, address from default.person
drop table
drop table default.person
truncate table
truncate table default.person;
FileFormat
-- CREATE TABLE WITH File Format CREATE TABLE default.person( pid INT, name STRING, age INT, address STRING ) STORED AS [ORC, PARQUET, TEXTFILE, AVRO, JSON, etc ...]; -- transactional true를 주게 되면 STORED AS File Format은 ORC만 가능 CREATE TABLE default.person( pid INT, name STRING, age INT, address STRING ) STORED AS ORC TBLPROPERTIES('transactional'='true'); -- CREATE TABLE WITH parquet -- parquet 파일은 꼭 Schema의 datatype을 맞춰야 한다. CREATE TABLE if not exsits default.person( pid INT, name STRING, age INT, address STRING ) PARTITIONED BY (year int, month int, day int) STORED AS PARQUET;
If not Exists
- if not exists 옵션을 주게 되면 person테이블이 있는지 없는지 확인 하여 있으면 생성하지 않고 없으면 생성하게 된다.
- 보통 에러 없이 처리 하고 싶을 때 이 옵션을 사용하게 된다.
CREATE TABLE if not exsits default.person( pid INT, name STRING, age INT, address STRING ) STORED AS ORC;
참고문헌
반응형'데이터 엔지니어링 > Hive' 카테고리의 다른 글
[Hive]Create table Location 알아보기 (0) 2022.10.06 [Hive] Hive query - Bucketing table 알아보기 (0) 2022.10.06 [Hive] 테이블 생성(create table, view table, internal or external table 차이점, aws s3로 location 설정하는 법, 파일 포맷 설정하는 법) (0) 2022.09.19 [Hive]HQL-데이터베이스 알아보기(DB 생성, 수정, 삭제 ) (0) 2022.09.18 [HIVE]Hive란 2부 - 서비스들 설명 (0) 2022.09.18