[Computer Science] 데이터 포맷의 특징을 비교해보았습니다

[Computer Science] 데이터 포맷의 특징을 비교해보았습니다


Data CS

CSV

  • 간단한 데이터 교환이나 스프레드시트 형식의 데이터 저장 목적

  • 행 기반 저장 포맷
  • 장점
    • 간단함: 형식이 매우 단순해 사람이 쉽게 읽고 작성 가능
    • 호환성: 대부분 스프레드시트 프로그램과 데이터베이스 시스템에서 쉽게 열고 저장 가능
    • 텍스트 형식: 플랫폼에 독립적이며 다양한 프로그래밍 언어에서 쉽게 처리 가능
  • 단점
    • 데이터 타입 정보 없음: 모든 값이 문자열로 저장되므로, 숫자나 날짜 등 다른 데이터 타입 정보를 포함하지 않음 -구조적 제한: 계층적이거나 복잡한 데이터 구조를 표현하기 어려움
    • 데이터 무결성 문제: 구분자가 데이터 값에 포함될 경우 무결성이 깨질 수 있음

Parquet

  • 하둡 생태계에서 많이 사용되는 포맷
  • 컬럼 기반 저장 포맷으로, 읽기가 빠르고 압축률이 좋음
  • 바이너리로 저장됨

컬럼 기반 저장 포맷

특징

  • 컬럼 기반 저장
  • 스키마 포함: 데이터 파일에 스키마 정보를 포함해 타입과 구조를 명확히 함
  • 고압축률: 동일한 컬럼 내 데이터 중복성을 활용해 높은 압축률 달성
  • 컬럼 단위 접근: 쿼리 시 필요한 컬럼만 읽어들임으로써 디스크 I/O를 최소화
  • 높은 쿼리 성능
    • 필요한 특정 컬럼만 읽어들여 속도가 빠름
    • 디스크 I/O 효율성
    • 병렬 처리 최적화
  • 빠른 집계 연산 (SUM, AVG 등)
  • 스키마와 메타데이터 포함으로 데이터 무결성 유지 및 빠른 스캔 및 필터링
  • 쓰기 성능 저하
    • 행 기반 포맷에 비해 실시간 쓰기 성능이 떨어짐
    • 데이터 삽입 및 갱신 작업이 비효율적

JSON

  • 반정형 (Semi-Structured) 데이터 포맷
  • 데이터를 구조화된 객체 또는 배열 형태로 저장
  • 트리 구조를 갖는 계층적 데이터 모델을 따름
  • 장점
    • 가독성: 사람이 쉽게 읽고 이해할 수 있음
    • 유연성: 다양한 데이터 구조를 지원하며, 계층적 데이터를 표현 가능
    • 호환성: 대부분의 프로그래밍 언어와 호환되며, 웹 애플리케이션에서 널리 사용됨
  • 단점
    • 데이터 크기: 텍스트 기반 포맷으로, 같은 데이터를 이진 포맷으로 저장할 때보다 크기가 클 수 있음
    • 파싱 성능: JSON 데이터를 파싱하는 과정이 이진 포맷에 비해 느릴 수 있음
    • 타입 유효성 검사 없음: JSON 자체는 데이터 타입을 명확하게 검증하지 않으므로, 데이터 무결성을 유지하기 어려울 수 있음
특징CSVParquetJSON
저장 형식텍스트바이너리텍스트
데이터 타입 정보없음있음부분적
압축 효율낮음높음중간
읽기 성능빠름매우 빠름중간
쓰기 성능빠름느림중간
구조적 데이터지원 부족컬럼 기반, 복잡한 데이터 표현 가능계층적 데이터 표현 가능
스키마 유효성 검사없음있음없음
데이터 일관성낮음높음중간
전송 효율성낮음 (큰 파일 크기)높음 (작은 파일 크기)중간
사용 사례간단한 데이터 교환 및 공유대규모 데이터 분석 및 처리웹 애플리케이션 데이터 전송
© 2024 Seungwon Bae 🇰🇷