Parquet Avro ORC 모두 바이너리 형태이다
1. Parquet
- 칼럼 중심의 데이터 파일 형식이라 칼럼 단위로 압축하기 때문에 압축률이 높아진다.
- 일부 칼럼 선택해서 가져가면 I/O가 많이 줄어든다. 따라서 읽기가 많은 테이블에 적합하다.
2. Avro
- row 기반으로, 데이터 스키마는 json이지만 데이터는 바이너리로 저장된다. 스키마가 json이기 때문에 사람이 읽을 수 있다.
- 데이터 직렬화 기능을 제공한다(Kafka, Nifi에서 많이 사용된다). CSV, XML, JSON 형식은 사람이 읽기는 쉽지만, 데이터 공간 효율성 및 파싱하는데 시간이 오래걸려서 Avro가 효과적이다.
* 직렬화란 자바 시스템 내에서 사용하는 객체 혹은 데이터를 자바시스템 외에서도 사용할 수 있도록 byte 형태로 데이터를 변환하는 개념이다.
3.ORC
- 칼럼 중심 데이터 파일형식이고, hive에 최적화 되어있다.
어떤 파일 형식을 써야할까?
1. 쓰기가 많은 작업 : row 기반 저장 방식은 데이터를 순서대로(serialize) 저장하기 때문에 쓰고, 전체 칼럼을 한 번에 엑세스할 때 효과적이다. 반면 column based는 데이터 저장 시, 한 칼럼의 데이터를 먼저 저장한 후 다음 칼럼의 데이터를 저장한다.
2. 읽기가 많은 작업 : 특정 칼럼만 조회하는 경우가 많다면 칼럼 중심 데이터 파일 형식을 사용하는 것이 효과적이다.
3. 압축률 : IoT 데이터 처럼 대량의 데이터 같은 경우 높은 압축률이 필요하다.
4. ORC와 Parquet의 차이점을 압축률과 데이터 조회 성능 관점에서 비교했을 때, file System을 만들고 공간 효율성 측면에서는 ORC가 더 높은 성능을 보였다. 반면, 데이터 조회 성능에 있어서는 Parquet가 더 나은 성능을 보인다.
Reference
https://medium.com/@dhareshwarganesh/benchmarking-parquet-vs-orc-d52c39849aef
Benchmarking PARQUET vs ORC
In this article, we conduct few experiments on Parquet and ORC file system and conclude the advantages and disadvantages over each other.
medium.com
'빅데이터 > 그 외' 카테고리의 다른 글
kerberos 예제 (0) | 2023.01.22 |
---|---|
[빅데이터] LOCK & Sqoop 이슈 - ORA-01555 (0) | 2022.08.30 |
[빅데이터] Impala & Hive & Sqoop 겪은 이슈들 (1) (0) | 2022.08.02 |
[빅데이터] Impala & Hive & Sqoop (0) | 2022.08.02 |