HDF5 데이터셋 (.hdf5)
The 표준HDF5(Hierarchical Data Format 5)는 대규모 다차원 배열을 위한 최고의 과학 데이터 관리 아키텍처로, 슈퍼컴퓨팅, 기후 모델링, 신경과학 및 머신러닝에서 광범위하게 사용됩니다.
HDF5을(를) CSV(으)로 변환
무료 브라우저 내 HDF5-CSV 변환기. 기기에서 파일을 즉시 변환하세요.
검사 및 메타데이터
운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 HDF5 파일을 식별합니다:
바이트 단위 헤더 시그니처 (매직 바이트)
운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 HDF5 파일을 식별합니다:
16진수 시그니처 (오프셋 0):
89 48 44 46 0D 0A 1A 0AASCII 표현: \x89HDF\r\n\x1a\n
표준화: The HDF Group Open Standard Specification
기술 사양
| 컨테이너 아키텍처 | Hierarchical filesystem-like binary container organizing data into Groups (folders) and Datasets (multi-dimensional arrays) with attributes |
| 압축 | Chunk-based compression filters: Gzip (Deflate), SZIP, Zstandard, Blosc, and LZF |
| 바이트 엔디안 | Declared in superblock (Little or Big-Endian) |
| 색 공간 | N/A (Multi-dimensional Numerical Arrays) |
| 채널 및 구조 | High-dimensional scientific arrays, compound data types, and variable-length strings |
| 최대 크기 | Practically unlimited (supports 64-bit coordinates and petabyte-scale datasets) |
| 투명도 | None |
| 스트리밍 및 프로그레시브 | Chunked storage enables partial hyper-slab slicing without loading full dataset into memory |
기술 비교 매트릭스: HDF5 대 경쟁사
| 기술적 속성 | HDF5 (현재) | NETCDF | FITS | ZARR |
|---|---|---|---|---|
| 계층 구조 | 완전한 POSIX 유사 파일 시스템 (그룹 및 데이터셋) | NetCDF-4는 내부적으로 HDF5 사용 | 고정 블록 배열 및 테이블 | 클라우드 네이티브 청크 디렉토리 포맷 |
| 데이터셋 슬라이싱 | 초고속 바이너리 하이퍼슬랩 읽기 | 빠른 하이퍼슬랩 읽기 | 직접 블록 인덱싱 | 클라우드 병렬 청크 페치 |
| 머신러닝 사용 | 모델 가중치의 표준 (Keras .h5) | AI에서 거의 사용되지 않음 | 없음 | AI 학습 데이터셋 사용 증가 중 |
| 주요 생태계 | NCSA, 슈퍼컴퓨팅, Python h5py | NOAA, 기상학, 해양학 | NASA, 천문학, 망원경 | 클라우드 네이티브 데이터 과학 |
일반적인 손상 모드 및 헥스 복구 가이드
Python h5py 오류: '파일을 열 수 없습니다 (파일 시그니처를 찾을 수 없음)'.
근본 원인: 파일 시작 부분의 8바이트 슈퍼블록이 손상되었습니다.
복구: File2File HDF5 툴을 사용하여 슈퍼블록 오프셋을 검사하거나 데이터셋을 복구하세요.
보안 분석 및 파서 공격 벡터
공식 libhdf5 라이브러리는 복잡한 B-트리와 힙 테이블을 파싱하며, 손상된 오프셋으로 인해 힙 오버플로우 취약점이 발생한 적이 있습니다.
알려진 공격 벡터
- B-트리 노드 인덱스 순회 중 발생하는 힙 버퍼 오버플로우 (예: CVE-2021-37501).
- 사용자 정의 압축 필터 파이프라인 플러그인의 범위를 벗어난 쓰기(Out-of-bounds write).
- 순환 그룹 연결 주기로 인한 서비스 거부.
방어적 모범 사례:
역사적 배경 및 주요 이력
주요 장점
- 파일 내 완전한 파일 시스템: 수페타바이트 규모의 복잡한 데이터셋을 디렉토리처럼 명명된 그룹과 데이터셋으로 구성합니다.
- 고성능 하이퍼슬랩 슬라이싱: 전체 파일을 읽지 않고도 방대한 100GB 5D 매트릭스에서 작은 2D 슬라이스를 읽을 수 있습니다.
- 최신 과학용 Python(h5py), MATLAB, R 및 고성능 MPI 병렬 슈퍼컴퓨터와의 깊은 통합.
기술적 제한 사항 및 단점
- 복잡한 사양으로 인해 공식 libhdf5 C 라이브러리 외에는 독립적인 파서 구현이 어렵습니다.
- 클래식 HDF5의 단일 라이터 잠금 제한으로 인해 동시 쓰기 워크플로우가 복잡해졌습니다.
- 손상된 슈퍼블록은 전체 계층 구조 트리에 대한 접근을 불가능하게 만들 수 있습니다.
흥미로운 기술적 상식
- HDF5 파일의 처음 8바이트 매직 바이트(\x89HDF\r\n\x1a\n)는 손상된 파일 전송을 감지하기 위해 PNG의 시그니처를 의도적으로 모방했습니다.
- NASA의 지구 관측 시스템(EOS)은 매일 수 페타바이트에 달하는 위성 기후 데이터를 HDF5 포맷으로 저장합니다.
- Keras 및 TensorFlow 같은 딥러닝 프레임워크가 신경망 가중치를 저장하기 위해 HDF5(.h5)를 널리 대중화했습니다.
자주 묻는 기술 질문
HDF5 파일이란 무엇인가요?
HDF5 파일은 대규모 과학적 배열, 테이블, 머신러닝 모델을 효율적으로 저장하도록 설계되어 단일 파일 내에 저장되는 완전한 파일 시스템과 같습니다.
.h5와 .hdf5의 차이점은 무엇인가요?
차이가 없습니다. .h5와 .hdf5는 동일한 계층형 데이터 형식 5(Hierarchical Data Format 5)에 대한 두 가지 다른 파일 확장자입니다.
HDF5 파일 내부를 어떻게 볼 수 있나요?
HDFView, Python h5py를 사용하거나 온라인에서 File2File.app을 사용하여 HDF5 파일 내의 그룹, 데이터셋, 메타데이터를 검사할 수 있습니다.