728x90
1. ORC (Optimized Row Columnar)
create table orc_table (
col1 string,
col2 string,
col3 int
)
STORED AS ORC
;
- 특징:
- Hadoop에서 최적화된 컬럼 기반 저장 포맷.
- 데이터를 컬럼 단위로 저장해 쿼리 성능이 빠름.
- Zlib과 Snappy와 같은 고압축 지원.
- Hive 전용 포맷으로 다른 시스템과의 호환성이 낮음.
- 장점:
- 압축률이 높고, 읽기 성능이 뛰어남.
- 복잡한 분석 쿼리에서 최적화된 성능 제공.
- 단점:
- 데이터 적재 전에 포맷 변환이 필요하며, LOAD DATA 명령어를 지원하지 않음.
2. Parquet
CREATE TABLE parquet_table (
col1 STRING,
col2 STRING,
col3 INT
)
STORED AS PARQUET;
- 특징:
- Hadoop에서 최적화된 컬럼 기반 저장 포맷.
- 데이터를 컬럼 단위로 저장해 쿼리 성능이 빠름.
- Zlib과 Snappy와 같은 고압축 지원.
- Hive 전용 포맷으로 다른 시스템과의 호환성이 낮음.
- 장점:
- 압축률이 높고, 읽기 성능이 뛰어남.
- 복잡한 분석 쿼리에서 최적화된 성능 제공.
- 단점:
- 데이터 적재 전에 포맷 변환이 필요하며, LOAD DATA 명령어를 지원하지 않음.
!! STORED AS PARQUET는 내부적으로 올바른 InputFormat 및 OutputFormat 클래스를 자동으로 설정합니다.
3. CSV (Textfile)
CREATE TABLE csv_table (
col1 STRING,
col2 STRING,
col3 INT
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
CREATE TABLE csv_table_partitioned (
col1 STRING,
col2 STRING,
col3 INT
)
PARTITIONED BY (part_col STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
- 특징:
- 텍스트 기반 포맷으로 간단하고 가독성이 좋음.
- Hadoop에서 기본적으로 지원되며, 별도 라이브러리가 필요하지 않음.
- 대량 데이터 처리에서는 비효율적(압축 없음, 스키마 없음).
- 장점:
- 데이터 적재와 읽기가 매우 간단하며, LOAD DATA 명령어 사용 가능.
- 단점:
- 데이터 스키마를 보장하지 않으며, 크기가 크고 느림.
4. Avro
create table avro_table (
col1 string,
col2 string,
col3 int
)
STORED AS AVRO
;
- 특징:
- 행 기반 포맷으로 스키마를 데이터와 함께 저장.
- JSON 기반으로 직렬화/역직렬화가 쉬움.
- Hive 외에 Kafka, Spark 등 다양한 환경에서 사용.
- 장점:
- 스키마 변경에 유연하며, 스키마와 데이터를 함께 관리 가능.
- 다양한 언어와 도구에서 지원됨.
- 단점:
- 스키마 저장으로 인해 데이터 크기가 커질 수 있음.
- LOAD DATA를 지원하지 않음.
'Data Engineering > Hadoop' 카테고리의 다른 글
| Hive Tez 실행 오류 (DIGEST-MD5: No common protection layer between client and server at ) (0) | 2024.10.17 |
|---|---|
| [Trouble Shooting] Hadoop Install - 다른계정으로 하둡 실행했을 때. (0) | 2024.04.23 |
| 용어 ) Split brain (0) | 2024.03.18 |
| [Trouble Shooting] failed on connection exception: java.net.ConnectException: Connection refused // HA failover 실패 (0) | 2024.03.18 |
| Hadoop 설치 ) 환경설 (0) | 2024.03.15 |