데이터 전처리: 데이터 포맷 – HDF5

ㅁ 데이터 포맷

1. HDF5

ㅇ 정의:
대용량의 수치 데이터 및 메타데이터를 계층적 구조로 저장하고 효율적으로 읽고 쓸 수 있는 파일 포맷 및 라이브러리. 주로 과학, 공학, 머신러닝 분야에서 사용됨.

ㅇ 특징:
– 계층적 그룹과 데이터셋 구조를 가짐 (파일 시스템처럼 트리 구조)
– 대규모 데이터의 부분 읽기/쓰기 지원 (슬라이싱, 청크 단위 접근)
– 다양한 데이터 타입 지원 및 메타데이터 함께 저장 가능
– 바이너리 포맷으로 저장되어 용량 효율성이 높음

ㅇ 적합한 경우:
– 이미지, 시뮬레이션 결과, 시계열 등 대규모 배열 데이터 저장
– 데이터셋이 너무 커서 메모리에 한 번에 적재하기 어려운 경우
– 데이터 구조와 메타데이터를 함께 관리해야 하는 경우

ㅇ 시험 함정:
– CSV처럼 텍스트 포맷이 아니라 바이너리 포맷임을 혼동
– JSON처럼 계층 구조를 지원하지만 텍스트 기반이 아님
– SQLite 등 데이터베이스와 달리 쿼리 언어를 직접 지원하지 않음

ㅇ 시험 대비 “패턴 보기” 예시:
O: “HDF5는 대규모 과학 데이터를 계층적으로 저장하는 바이너리 포맷이다.”
X: “HDF5는 CSV와 같이 사람이 읽기 쉬운 텍스트 포맷이다.”
O: “HDF5는 데이터와 메타데이터를 함께 저장할 수 있다.”
X: “HDF5는 SQL을 사용하여 데이터를 조회한다.”

ㅁ 추가 학습 내용

HDF5는 병렬 I/O를 지원하여 고성능 컴퓨팅(HPC) 환경에서 자주 사용된다. 데이터 압축 기능(gzip, SZIP 등)을 제공하여 저장 공간을 절약할 수 있다. 내부적으로 데이터를 청크(Chunk) 단위로 저장하여 부분 데이터 접근 성능을 향상시키며, 이는 대규모 딥러닝 학습 데이터셋 관리에 유리하다. HDF5 파일의 확장자는 .h5 또는 .hdf5를 사용한다. Python에서는 h5py, PyTables 등의 라이브러리를 통해 접근할 수 있다. 시험에서는 HDF5와 NetCDF, Parquet 등 다른 바이너리 포맷과의 차이점을 비교하는 문제가 자주 출제된다.

답글 남기기

Your email address will not be published. Required fields are marked *.

*
*