Hive는 관리 혹은 내부 테이블 (managed table)과 외부 테이블 (external table) 두 가지 유형의 테이블을 나누어서 사용합니다.
내부 테이블 (Internal or Managed Table)
관리형 테이블을 생성하면 파일이 기본 위치인 /user/hive/warehouse/databasename.db/tablename/
에 저장됩니다. 외부 테이블과는 다르게, 관리 테이블 또는 파티션이 삭제 (drop)되면 해당 테이블 또는 파티션과 연관된 데이터 및 메타 데이터가 삭제됩니다.
CREATE TABLE speech_db (
path_wav STRING,
uttr STRING,
sex INT
)
COMMENT 'table comment';
외부 테이블 (External Table)
외부 테이블(External Table)은 이미 HDFS에 존재하는 원본 데이터를 기반으로 테이블을 만들기 때문에 스키마만 정해주면 됩니다. 그래서 파일와 스키마를 따로 관리하기 좋습니다. 파일이 HDFS 상에 이미 있을 때 외부 테이블을 사용하고, 테이블이 삭제 되더라도 파일은 남아 있습니다.
CREATE EXTERNAL TABLE speech_db(
path_wav STRING,
uttr STRING,
sex INT
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '/file/path/some/where';
'ML Engineering > Hadoop and Hive' 카테고리의 다른 글
[Hive] 테이블 분할(partition) 과 버킷화(bucket) (0) | 2021.05.23 |
---|---|
[Hive] 파일 포맷 (Storage Formats) (0) | 2021.05.23 |
[Hive] Hive DDL Commands (0) | 2021.05.23 |
[Hive] Metastore, Datawarehouse (0) | 2021.05.23 |
[Hive] 데이터 유형 (Type) (0) | 2021.05.23 |