Hive External Table 만들기

code_able·2023년 10월 21일
0
post-custom-banner

External Table

외부 테이블(External Table)은 이미 HDFS에 존재하는 원본 데이터를 기반으로 테이블을 만들기 때문에 스키마만 정해주면 됩니다. 그래서 파일와 스키마를 따로 관리하기 좋습니다. 파일이 HDFS 상에 이미 있을 때 외부 테이블을 사용하고, 테이블이 삭제 되더라도 파일은 남아 있습니다.

Serde

서데(SerDe, Serializer/Deserialaizer)는 하이브가 데이터를 해석하는 방법을 제공합니다. 하이브는 서데와 파일 포맷을 이용하여 데이터를 읽고, 쓸 수 있습니다.

하이브에서 제공하는 기본 Serde

  • Arvo
  • ORC
  • RegEx
  • Thrift
  • Parquet
  • CSV
  • JSON

STORED AS input/output format

Avro, ORC, Parquet 은 서데와 인풋, 아웃풋 포맷이 설정됩니다. 나머지는 기본 LazySimpleSerDe와 파일에 따른 인풋, 아웃풋 포맷이 설정1됩니다.

LOCATION

테이블에서 로드할 데이터의 저장 위치

TBLPROPERTIES

테이블 생성시 필요한 프로퍼티를 작성합니다.

DDL 예시

CREATE EXTERNAL TABLE `vams`(
  `country` string,
  `count` int)
ROW FORMAT SERDE
  'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
STORED AS INPUTFORMAT
  'org.apache.hadoop.hive.ql.io.SymlinkTextInputFormat'
OUTPUTFORMAT
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
  'dbfs:/FileStore/'
TBLPROPERTIES (
  'totalSize'='2335',
  'numRows'='240',
  'rawDataSize'='2095',
  'COLUMN_STATS_ACCURATE'='true',
  'numFiles'='1',
  'transient_lastDdlTime'='1418173653')
profile
할수 있다! code able
post-custom-banner

0개의 댓글